PIB do turismo no Brasil: estimativas pelo método do quociente de participação do turismo

Material complementar do artigo publicado na Revista Turismo em Análise (v. 34, 2023).

Author
Affiliation

Glauber Eduardo de Oliveira Santos

Universidade de São Paulo

Published

April 30, 2024

O objetivo deste estudo é estimar as dimensões econômicas do turismo no Brasil. O trabalho se apoiou sobretudo em dados da Pesquisa de Orçamentos Familiares 2017-2018 do IBGE e adotou uma estratégia de estimação baseada no cômputo de Quocientes de Participação do Turismo (QPT), que correspondem à participação das despesas relacionadas às viagens turísticas no total de despesas das famílias com cada categoria de produtos. Esses quocientes foram aplicados sobre os dados do Sistema de Contas Nacionais do IBGE, assegurando a compatibilidade das estimativas com a contabilidade nacional oficial.

Este projeto trata dados de diferentes fontes, incluindo duas bases de dados relativamente grandes (POF e RAIS). Desta forma, o processamento de algumas partes do código pode ser um pouco demorado, a depender da capacidade do computador utilizado. O projeto contém 2 pastas:

  1. dados-originais: dados metodológicos e estatísticos desenvolvidos por este projeto fora do código de programação. Os métodos de criação desses estão detalhados no artigo publicado na RTA.

  2. dados-brutos: bases de dados baixadas de diferentes endereços da internet e arquivos descomprimidos. Essa pasta não é disponibilizada no projeto, sendo criada e carregada por meio do código de programação, permitindo plena reprodutivibilidade do projeto.

Configurações iniciais

Neste projeto, são utilizadas as seguintes bibliotecas:

  1. tidyverse: várias funções para tratamento de dados

  2. data.table: armazenamento e tratamento de dados tabulares

  3. utils: importação de dados online

  4. archive: descompressão de arquivos

  5. readxl: importação de dados de planilhas Excel

  6. scales: formatação dos números das tabelas finais

  7. janitor: adicionar totais às tabelas finais

  8. knitr: formatação de tabelas

Se necessário instalar alguma das bases, rodar a linha correspondente do chunk a seguir.

#install.packages("tidyverse")
#install.packages("data.table")
#install.packages("utils")
#install.packages("archive")
#install.packages("readxl")
#install.packages("scales")
#install.packages("janitor")
#install.packages("knitr")

Em seguida, carregar as bibliotecas

Criar a pasta dados-brutos para receber os arquivos a serem baixados e descomprimidos. Como esses arquivos são grandes e públicos, eles não são disponibilizados no repositório. Ao invés disso, a programação cria a pasta e baixa os arquivos dos repositórios institucionais na internet. Vamos também inibir a apresentação de números em formato científico.

dir.create("dados-brutos")
Warning in dir.create("dados-brutos"): 'dados-brutos' já existe
options(scipen=999)

Download e descompressão inicial de dados

Dados de fontes externas

Esta seção faz download e descomprime os dados de fontes externas à pesquisa que serão utilizados na elaboração de estimativas. Começamos com a importação e descompressão das Tabela de Recursos e Usos do IBGE referentes a 2018. Essa fonte será a base de referência de estatísticas acerca da economia brasileira.

url <- "https://ftp.ibge.gov.br/Contas_Nacionais/Sistema_de_Contas_Nacionais/2021/tabelas_xls/tabelas_de_recursos_e_usos/nivel_68_2010_2021_xls.zip"

download.file(url, "dados-brutos/tru.zip")
unzip("dados-brutos/tru.zip", "68_tab1_2018.xls", exdir = "dados-brutos")
unzip("dados-brutos/tru.zip", "68_tab2_2018.xls", exdir = "dados-brutos")
unzip("dados-brutos/tru.zip", "68_tab3_2018.xls", exdir = "dados-brutos")

Em seguida, importamos e descomprimimos os microdados da Pesquisa de Orçamentos Familiares (POF) 2017-2018 do IBGE. Essa será a principal fonte de dados para diferenciação do consumo turístico e não turístico, servindo de base para o cálculo dos Quocientes de Participação do Turismo (QPT).

url <- "https://ftp.ibge.gov.br/Orcamentos_Familiares/Pesquisa_de_Orcamentos_Familiares_2017_2018/Microdados/Dados_20230713.zip"

download.file(url, "dados-brutos/pof.zip")
unzip("dados-brutos/pof.zip", "DESPESA_INDIVIDUAL.txt", exdir = "dados-brutos")

Importamos também os microdados de estabelecimentos da RAIS 2018.

url <- "ftp://ftp.mtps.gov.br/pdet/microdados/RAIS/2018/RAIS_ESTAB_PUB.7z"

download.file(url, "dados-brutos/rais.7z", mode="wb")
archive_extract("dados-brutos/rais.7z", dir="dados-brutos/")

Outra fonte de dados é a Pesquisa Anual de Serviços (PAS) do IBGE referente a 2018.

url <- "https://ftp.ibge.gov.br/Comercio_e_Servicos/Pesquisa_Anual_de_Servicos/pas2018/xls/tabelas_2018_xls_20230529.zip"

download.file(url, "dados-brutos/pas.zip")
unzip("dados-brutos/pas.zip", "Tabela 26.xlsx", exdir = "dados-brutos")

Importação de dados

Uma vez disponíveis, os arquivos de dados são importados para o ambiente de trabalho do R. Os dados relevantes são salvos como objetos para processamento.

Pesquisa de Orçamentos Familiares

A importação dos microdados da POF 2017-2018 demanda um processamento maior do que outras partes deste código e pode demorar vários minutos, a depender do computador utilizado.

C.POF <- read.fwf("dados-brutos/DESPESA_INDIVIDUAL.txt",
                  widths = c(2,4,1,9,2,1,2,2,2,7,2,10,2,2,1,1,1,12,10,1,2,14,14,10),
                  na.strings=c(" "),
                  col.names = c("UF", "ESTRATO_POF", "TIPO_SITUACAO_REG", "COD_UPA",                                 "NUM_DOM", "NUM_UC", "COD_INFORMANTE", "QUADRO", 
                                "SEQ", "V9001", "V9002", "V8000", "V9010", "V9011", 
                                "V9012", "V4104", "V4105", "DEFLATOR", 
                                "V8000_DEFLA", "COD_IMPUT_VALOR", 
                                "FATOR_ANUALIZACAO", "PESO", "PESO_FINAL", 
                                "RENDA_TOTAL"),
                  dec=".")
kable(head(C.POF))
UF ESTRATO_POF TIPO_SITUACAO_REG COD_UPA NUM_DOM NUM_UC COD_INFORMANTE QUADRO SEQ V9001 V9002 V8000 V9010 V9011 V9012 V4104 V4105 DEFLATOR V8000_DEFLA COD_IMPUT_VALOR FATOR_ANUALIZACAO PESO PESO_FINAL RENDA_TOTAL
11 1103 1 110005400 1 1 2 22 0 2200101 1 7 NA NA NA NA NA 1.000000 7.00 0 52 272.8067 372.9845 11254.75
11 1103 1 110005400 1 1 1 23 13 2301401 1 100 NA NA NA NA NA 1.050646 105.06 0 52 272.8067 372.9845 11254.75
11 1103 1 110005400 1 1 1 24 0 2400101 1 25 NA NA NA NA NA 1.013176 25.33 0 52 272.8067 372.9845 11254.75
11 1103 1 110005400 1 1 2 24 0 2400101 1 25 NA NA NA NA NA 1.013176 25.33 0 52 272.8067 372.9845 11254.75
11 1103 1 110005400 1 1 1 24 18 2401901 1 6 NA NA NA NA NA 1.021505 6.13 0 52 272.8067 372.9845 11254.75
11 1103 1 110005400 1 1 2 24 27 2402801 1 20 NA NA NA NA NA 1.009240 20.18 0 52 272.8067 372.9845 11254.75

Tabela de Recursos e Usos

Começamos com importação dos dados das TRU. Neste primeiro chunk, é importada a tabela de produção da TRU1. São salvos os códigos dos produtos (P.i), os nomes dos produtos (P.nomes), os códigos (A.j) e nomes das atividades econômicas (A.nomes), bem como o valor da produção dos produtos (VP.i), das atividades (VP.j) e total (VP).

VP.TRU1 <- read_xls("dados-brutos/68_tab1_2018.xls", sheet = "producao",
                    skip = 3, .name_repair = "unique_quiet")
P.i <- VP.TRU1[2:129, 1][[1]]
P.nomes <- VP.TRU1[2:129, 2][[1]]
A.j <- str_sub(names(VP.TRU1)[3:70], 1, 4)
A.nomes <- str_sub(names(VP.TRU1)[3:70], 6)
VP.i <- VP.TRU1[2:129, 71][[1]]
VP.j <- as.vector(t(VP.TRU1[131, 3:70]))
VP <- VP.TRU1[131, 71][[1]]

rm(VP.TRU1)
print(paste("VP =", VP))
[1] "VP = 12010010"

Os nomes de alguns produtos e atividades econômicas relevantes para o turismo são redefinidos por simplicidade e para indicar com mais clareza os elementos específicos de cada categoria. Por exemplo, a categoria de produtos “Atividades de televisão, rádio, cinema e gravação/edição de som e imagem” envolve uma série de produtos, dos quais apenas o cinema consta na lista de serviços consumidos regularmente por turistas na POF 2017-2018. Sendo assim, a categoria é renomeada como “Cinema”.

A.nomes <- recode(A.nomes,
                  "Refino de petróleo e coquerias"="Combustível veicular",
                  "Armazenamento, atividades auxiliares dos transportes e correio"="Estacionamentos e pedágios",
                  "Alojamento"="Hotéis e similares",
                  "Alimentação"="Serviços de alimentação",
                  "Atividades de televisão, rádio, cinema e  gravação/edição de som e imagem"="Cinema",
                  "Atividades imobiliárias"="Aluguel de imóveis",
                  "Aluguéis não-imobiliários e gestão de ativos de propriedade intelectual"="Aluguel de veículos",
                  "Outras atividades administrativas e serviços complementares"="Agenciamento de viagens",
                  "Atividades artísticas, criativas e de espetáculos"="Artes, cultura, esporte e recreação")

P.nomes <- recode(P.nomes,
                  "Gasoálcool"="Combustível veicular",
                  "Transporte terrestre de passageiros"="Transporte terrestre",
                  "Armazenamento e serviços auxiliares aos transportes"="Estacionamentos e pedágios",
                  "Serviços de alojamento em hotéis e similares"="Hotéis e similares",
                  "Serviços  de alimentação"="Serviços de alimentação",
                  "Serviços cinematográficos, música, rádio e televisão"="Cinema",
                  "Aluguel efetivo e serviços imobiliários"="Aluguel de imóveis",
                  "Aluguéis não-imob. e gestão de ativos de propriedade intelectual"="Aluguel de veículos",
                  "Outros serviços administrativos"="Agenciamento de viagens",
                  "Serviços de artes, cultura, esporte e recreação"="Artes, cultura, esporte e recreação")

Da TRU1, também é importada a tabela de importações, da qual é extraída a variável de mesmo nome. As importações são detalhadas por produto (M.i).

M.TRU1 <- read_xls("dados-brutos/68_tab1_2018.xls", sheet = "importacao",
                   skip = 3, .name_repair = "unique_quiet")
M.i <- as.vector(t(M.TRU1[2:129, 3]))
M <- M.TRU1[131, 3][[1]]

rm(M.TRU1)
print(paste("M =", M))
[1] "M = 997474"

Em seguida, da TRU1 é importada a tabela de oferta, sendo salvo o valor total dos impostos sobre produtos (IP), bem como os vetores, por produto, da demanda total (DT.i), margem do comércio (MGC.i), margem do transporte (MGT.i). Dessa tabela são obtidos também os valores específicos dos principais impostos sobre os produtos (IP.ik).

O.TRU1 <- read_xls("dados-brutos/68_tab1_2018.xls", sheet = "oferta",
                   skip = 3, .name_repair = "unique_quiet")
DT.i <- O.TRU1[2:129, 3][[1]]
MGC.i <- O.TRU1[2:129, 4][[1]]
MGT.i <- O.TRU1[2:129, 5][[1]]
IP.ik <- as.matrix(O.TRU1[2:129, 6:9])
IP <- O.TRU1[131, 10][[1]]

rm(O.TRU1)
print(paste("IP =", IP))
[1] "IP = 992991"

A tabela de consumo intermediário é importada da TRU2. Dessa tabela é salva a matriz do consumo intermediário por produto e atividade econômica (Ci.ij), bem como os totais por produto (CI.i) e por atividade (CI.j), além do consumo intermediário total (CI).

CI.TRU2 <- read_xls("dados-brutos/68_tab2_2018.xls", sheet = "CI",
                    skip = 3, .name_repair = "unique_quiet")
CI.ij <- data.matrix(CI.TRU2[2:129, 3:70])
CI.i <- CI.TRU2[2:129, 71][[1]]
CI.j <- as.vector(t(CI.TRU2[131, 3:70]))
CI <- CI.TRU2[131, 71][[1]]

rm(CI.TRU2)
print(paste("CI =", CI))
[1] "CI = 5998860"

Da TRU2 também é utilizada a tabela de demanda, da qual são obtidos os dados do consumo das famílias por atividade (C.i) e total (C), das exportações por atividade (X.i) e total (X), bem como a demanda final total (DF).

DF.TRU2 <- read_xls("dados-brutos/68_tab2_2018.xls", sheet = "demanda",
                    skip = 3, .name_repair = "unique_quiet")
C.i <- (DF.TRU2[2:129, 6])[[1]]
C <- DF.TRU2[131, 6][[1]]
X.i <- (DF.TRU2[2:129, 3])[[1]]
X <- DF.TRU2[131, 3][[1]]
DF <- DF.TRU2[131, 9][[1]]

rm(DF.TRU2)
print(paste("C =", C))
[1] "C = 4423548"
print(paste("X =", X))
[1] "X = 1025056"
print(paste("DF =", DF))
[1] "DF = 8001615"

Da TRU3, é importada a tabela do valor agregado. Desta é obtidas a matriz de componentes do valor agregado por atividade econômica (VAB.jm), bem como o valor agregado total por atividade (VAB.j) e o valor agregado total da economia (VAB). A última linha da matriz de componentes traz o número de empregos. Essa informação é transformada de unidades para milhares neste chunk para melhor apresentação dos resultados.

VAB.TRU3 <- read_xls("dados-brutos/68_tab2_2018.xls", sheet = "VA",
                     skip = 3, .name_repair = "unique_quiet")
VAB.nomes <- VAB.TRU3[2:15, 1][[1]]
VAB.jm <- data.matrix(VAB.TRU3[2:15, 2:69])
VAB.jm[14,] <- VAB.jm[14,]/1000 # empregos em milhares
VAB.j <- as.vector(t(VAB.TRU3[2, 2:69]))
VAB <- VAB.TRU3[2, 70][[1]]

rm(VAB.TRU3)
print(paste("VAB =", VAB))
[1] "VAB = 6011150"

Pesquisa Anual de Serviços

A Tabela 26 da Pesquisa Anual de Serviços (PAS) do IBGE informa a receita operacional líquida do total das empresas de agenciamento de viagens do país. Essa informação é salva como um objeto para ser utilizada na estimativa da demanda por serviços dessa categoria.

pas26 <- read_xlsx("dados-brutos/Tabela 26.xlsx", sheet = "Tab26a",
                   skip = 5, .name_repair = "unique_quiet")
pas26 <- data.table(pas26)
pas26 <- pas26[, c(1,8)]
names(pas26) <- c("variavel", "valor")
D.agencias <- pas26[variavel=="1 - Receita operacional líquida", valor]/1000

rm(pas26)
print(paste("D.agencias =", D.agencias))
[1] "D.agencias = 11378.474"

Dados originais da pesquisa

Diferentes métodos de estimação da demanda turística são utilizados neste projeto. Os métodos são registrados em uma tabela especial elaborada para este fim.

tipo.estimacao <- fread("dados-originais/tipo.estimacao.csv")
kable(tipo.estimacao)
tru.cod C CI X M
19912 A
49002 A
50001 A
51001 A D H H
52801 B
55001 A E H H
56001 A F H H
59801 B
68001 B
77001 B
78802 C G
90801 A
Total

As despesas turísticas foram registradas na POF em categorias de produtos especialmente desenhadas para aquela pesquisa. Uma vez que o tradutor oficial de códigos da POF 2017-2018 para o SCN ainda não havia sido divulgado pelo IBGE, esse processo de classificação partiu do tradutor POF-SCN elaborado pelo IBGE para a POF 2009. Os produtos da POF 2017-2018 que não constavam na POF 2009, seja por serem novos ou por terem sido especificados de forma mais detalhada, foram classificados a partir do tradutor de categorias da CNAE 2.0 para o SCN. No tradutor elaborado, duas categorias de despesas turísticas da POF não foram associadas a nenhuma categoria do SCN: agregado (conjunto indivisível de produtos) e taxa alfandegária.

tradutor.PT.i <- fread("dados-originais/tradutor.PT.i.csv", encoding = "UTF-8")
tradutor.PT.i <- tradutor.PT.i[!is.na(tru.cod)]
kable(head(tradutor.PT.i))
V9001 descricao.produto tru.cod tru.desc produto.intermediacao produto.intermediacao.internacional produto.intermediacao.49002 produto.intermediacao.50001 produto.intermediacao.51001 produto.intermediacao.55001 produto.intermediacao.56001 produto.intermediacao.90801
4101501 COMBUSTIVEL DE VEICULO 19912 Gasoálcool NA NA NA NA NA NA NA NA
4101801 EXCURSAO (EXCETO ESCOLAR) 78802 Outros serviços administrativos NA NA NA NA NA NA NA NA
4102701 PACOTE TURISTICO NACIONAL (TRANSPORTE, HOSPEDAGEM, ALIMENTACAO E DIVERSAO) 78802 Outros serviços administrativos 1 NA 1 1 1 1 1 1
4102801 PACOTE TURISTICO NACIONAL (TRANSPORTE, HOSPEDAGEM E ALIMENTACAO) 78802 Outros serviços administrativos 1 NA 1 1 1 1 1 NA
4102901 PACOTE TURISTICO NACIONAL (TRANSPORTE, HOSPEDAGEM E DIVERSAO) 78802 Outros serviços administrativos 1 NA 1 1 1 1 NA 1
4103001 PACOTE TURISTICO NACIONAL (TRANSPORTE E HOSPEDAGEM) 78802 Outros serviços administrativos 1 NA 1 1 1 1 NA NA

Por fim, o terceiro e último arquivo com dados originais desta pesquisa traz duas informações pontuais: a participação das famílias na demanda total das empresas de agenciamento de viagens no Brasil (FENACTUR) e a participação do transporte de passageiros na receita total das companhias aéreas no país (ANAC).

dados.pontuais <- fread("dados-originais/dados.pontuais.csv", encoding = "UTF-8")

participacao.familias.D.agencias <- 
  dados.pontuais[variavel=="participacao.familias.D.agencias", valor]

participacao.passageiros.receita.ciasaereas <- 
  dados.pontuais[variavel=="participacao.passageiros.receita.ciasaereas", valor]

rm(dados.pontuais)

Tabulação de dados da POF

Nesta seção, são tabuladas as informações da POF a fim de computar os Quocientes de Participação do Turismo (QPTs). O processo começa com a elaboração de uma informação específica oriunda dos microdados da RAIS: a proporção de empregados em hotéis no total de empregados em serviços de alojamento.

rais <- 
  fread("dados-brutos/RAIS_ESTAB_PUB.txt", encoding = "Latin-1",
        select = c("CNAE 2.0 Classe", "Qtd Vínculos Ativos", "CNAE 2.0 Subclasse"))

names(rais) <- c("cnae", "vinculos", "cnaesub")
rais <- rais[(cnae==55108 | cnae==55906)]
rais <- rais[, .(vinculos=sum(vinculos)), by=.(cnaesub)]

participacao.hoteis.alojamento <- 
  rais[cnaesub==5510801, vinculos]/sum(rais$vinculos)

rm(rais)
print(paste("participacao.hoteis.alojamento =", 
            percent(participacao.hoteis.alojamento, accuracy=0.01)))

Em seguida, o banco de dados da POF é carregado e tratado. Os itens de despesa das famílias são classificados segundo os códigos do SCN a partir do uso do tradutor discutido anteriormente. As despesas em produtos não consumidos por turistas são eliminadas do banco. As despesas nas categorias remanescentes são classificadas em turísticas (realizadas durante ou em razão de viagens turísticas, sendo registradas no Quadro 41 da POF, aqui assinaladas por “CT.i.POF”) e não turísticas (não realizadas durante ou em razão de viagens turísticas, sendo registradas em outros quadros da POF, aqui assinaladas por “CR.i.POF”. Por fim, o valor das despesas registradas é multiplicado pelo peso amostral da POF para que os resultados sejam representativos de toda a população brasileira.

C.POF <- data.table(C.POF)
C.POF <- left_join(C.POF, tradutor.PT.i[, .(V9001, tru.cod)], by = "V9001")
C.POF <- C.POF[(!is.na(tru.cod))]
C.POF$turismo <- ifelse(C.POF$QUADRO==41, "CT.i.POF", "CR.i.POF")
C.POF$valor.peso <- C.POF$V8000_DEFLA*C.POF$FATOR_ANUALIZACAO*C.POF$PESO_FINAL

As despesas das famílias registradas pela POF são agregadas por código do SCN e pela natureza turística ou não turística. Os valores são registrados em milhões de reais,

CT.i.POF <- C.POF[, .(C=sum(valor.peso)/1000000), by = .(tru.cod, turismo)]
CT.i.POF <- dcast(CT.i.POF, tru.cod ~ turismo, value.var = "C")
CT.i.POF[is.na(CR.i.POF)]$CR.i.POF <- 0

kable(CT.i.POF)
tru.cod CR.i.POF CT.i.POF
19912 139232.13107 12020.03870
49002 44497.24107 7642.74009
50001 215.26968 369.73791
51001 349.52852 13364.49125
52801 2634.44913 1359.42243
55001 220.08109 10775.02145
56001 153209.67171 20700.73335
59801 4814.56158 56.74882
68001 0.00000 623.77939
77001 77.26078 713.82627
78802 0.00000 14083.49982
90801 11349.40561 1053.25670

Os dados da POF são ainda utilizados para calcular a proporção das despesas turísticas com alimentação em relação às despesas com alojamento. Essa proporção será utilizada para estimar o consumo intermediário turístico com serviços de alimentação.

pof.D.alojalim <- C.POF[((tru.cod==55001 | tru.cod==56001) & QUADRO==41)]

pof.D.alojalim <- 
  dcast(pof.D.alojalim, COD_UPA + NUM_DOM + NUM_UC + COD_INFORMANTE ~ tru.cod,
        fun.aggregate = sum,  value.var = "valor.peso")

pof.D.alojalim <- colSums(pof.D.alojalim[`55001`>0, .(`55001`, `56001`)])
prop.despesa.alim.aloj <- pof.D.alojalim[2] / pof.D.alojalim[1]

print(paste("prop.despesa.alim.aloj =", 
            percent(prop.despesa.alim.aloj, accuracy=0.01)))
[1] "prop.despesa.alim.aloj = 59.13%"

Consumo de serviços de agenciamento de viagens

Embora a POF apresente dados bastante detalhados das despesas turísticas das famílias, as informações sobre os gastos com agenciamento de viagens não são diretamente compatíveis com as estatísticas da oferta. Ocorre que grande parte dos gastos realizados em agências de viagens não constituem receitas das agências, mas apenas intermediação de serviços turísticos. Sendo assim, torna-se necessário diferenciar os valores dos serviços das agências daqueles correspondentes aos serviços turísticos intermediados. Tal diferenciação foi feita a partir da conciliação de dados de oferta e demanda.

Inicialmente, o valor da demanda total das agências de viagens no Brasil informado pela PAS (D.agencias) foi desagregado entre as parcelas devidas à demanda final das famílias (DF.agencias) e a demanda que corresponde ao consumo intermediário das empresas (CI.agencias). A diferença entre essa estimativa da demanda final das famílias e a despesa total das famílias em agências de viagens registrada pela POF constituiu nossa estimativa do valor dos serviços turísticos intermediados pelas agências para as famílias (DF.intermediado.agencias).

DF.agencias <- D.agencias * participacao.familias.D.agencias
CI.agencias <- D.agencias - DF.agencias
DF.intermediado.agencias <- CT.i.POF[tru.cod==78802, CT.i.POF] - DF.agencias
print(paste("valor dos serviços turísticos intermediados pelas agências para as famílias =", VP))
[1] "valor dos serviços turísticos intermediados pelas agências para as famílias = 12010010"

A distribuição do valor total dos serviços nacionais intermediados entre as categorias de serviços seguiu a descrição dos pacotes turísticos registrados pela POF. Essa lista consta no tradutor de produtos (tradutor.PI.i). A lista foi diferenciada para viagens nacionais e internacionais.

lista.produtos.intermediacao <- tradutor.PT.i[produto.intermediacao==1, V9001]

lista.produtos.intermediacao.internacional <- 
  tradutor.PT.i[produto.intermediacao.internacional==1, V9001]

lista.produtos.intermediacao.nacional <- 
  tradutor.PT.i[(produto.intermediacao==1 & 
                   is.na(produto.intermediacao.internacional)), V9001]

Os gasto totais com serviços intermediados foram distribuídos por categoria de produto segundo as proporções de gastos com cada categoria nas viagens sem serviços intermediados.

DF.produtos.intermediacao <- 
  C.POF[V9001 %in% lista.produtos.intermediacao, sum(valor.peso)]
DF.produtos.intermediacao.internacional <- 
  C.POF[V9001 %in% lista.produtos.intermediacao.internacional, sum(valor.peso)]
prop.DF.produtos.intermediacao.internacional <- 
  DF.produtos.intermediacao.internacional / DF.produtos.intermediacao
DF.intermediado.agencias.nacional <- 
  DF.intermediado.agencias * (1 - prop.DF.produtos.intermediacao.internacional)
distribuicao.intermediacao <- 
  C.POF[V9001 %in% lista.produtos.intermediacao.nacional, 
        .(valor.peso=sum(valor.peso)), by = .(V9001)]
distribuicao.intermediacao <- 
  left_join(distribuicao.intermediacao, 
            tradutor.PT.i[V9001 %in% lista.produtos.intermediacao.nacional, 
                          c(1, 7:12)], by = "V9001")
distribuicao.intermediacao <- 
  melt(distribuicao.intermediacao, id.vars = c("V9001", "valor.peso"))
distribuicao.intermediacao$tru.cod <- 
  as.integer(str_remove(distribuicao.intermediacao$variable, 
                        "produto.intermediacao."))
distribuicao.intermediacao <- 
  left_join(distribuicao.intermediacao, 
            CT.i.POF, by = "tru.cod")
distribuicao.intermediacao$CT.i.POF <- 
  ifelse(is.na(distribuicao.intermediacao$value), 0, 
         distribuicao.intermediacao$CT.i.POF)
distribuicao.intermediacao <- 
  dcast(distribuicao.intermediacao, V9001 + valor.peso ~ tru.cod, 
        value.var = "CT.i.POF")
distribuicao.intermediacao$CT.i.POF <- 
  rowSums(distribuicao.intermediacao[, -c(1:2)])
distribuicao.intermediacao <- 
  melt(distribuicao.intermediacao, id.vars = c("V9001", "valor.peso", "CT.i.POF"))
distribuicao.intermediacao$prop <- 
  distribuicao.intermediacao$value / distribuicao.intermediacao$CT.i.POF
distribuicao.intermediacao$valor.peso <- 
  distribuicao.intermediacao$prop * distribuicao.intermediacao$valor.peso
distribuicao.intermediacao <- 
  distribuicao.intermediacao[, .(distribuicao.intermediacao=sum(valor.peso)), 
                             by = "variable"]
distribuicao.intermediacao$variable <- 
  as.character(distribuicao.intermediacao$variable)
distribuicao.intermediacao$distribuicao.intermediacao <- 
  distribuicao.intermediacao$distribuicao.intermediacao / 
  distribuicao.intermediacao[, sum(distribuicao.intermediacao)]
distribuicao.intermediacao$distribuicao.intermediacao <- 
  distribuicao.intermediacao$distribuicao.intermediacao * 
  DF.intermediado.agencias.nacional

rm(C.POF)

O valor estimado dos serviços nacionais de terceiros intermediados pelas agências foi adicionado à despesa explicitamente declarada na POF com cada categoria de produtos turísticos. As despesas com serviços hoteleiros intermediados pelas agências, por exemplo, foram somadas às despesas com serviços hoteleiros não intermediados.

CT.i.POF$tru.cod <- as.character(CT.i.POF$tru.cod)
CT.i.POF <- 
  left_join(CT.i.POF, distribuicao.intermediacao, by = c("tru.cod" = "variable"))
CT.i.POF[is.na(distribuicao.intermediacao)]$distribuicao.intermediacao <- 0
CT.i.POF$CT.i.POF <- CT.i.POF$CT.i.POF + CT.i.POF$distribuicao.intermediacao

Quocientes de Participação do Turismo (QPT)

Os Quocientes de Participação do Turismo (QPT) correspondem à proporção dos gastos turísticos com determinada categoria de produtos em relação ao total de gastos com essa categoria (incluindo gastos turísticos e não turísticos). O QPT dos serviços de alimentação, por exemplo, é igual ao total de gastos turísticos das famílias com serviços de alimentação durante viagens turísticas dividido pelo total de gastos com serviços de alimentação (durante e fora das viagens turísticas). Esses coeficientes foram calculados a partir dos dados registrados pela POF e ajustados pelas estimativas do consumo de serviços intermediados por agências de viagens.

CT.i.POF$QPT.i <- CT.i.POF$CT.i.POF / (CT.i.POF$CR.i.POF + CT.i.POF$CT.i.POF)
CT.i.POF <- left_join(data.table(tru.cod=P.i), CT.i.POF, by="tru.cod")
QPT.i <- as.vector(CT.i.POF$QPT.i)
QPT.i[is.na(QPT.i)] <- 0

Os QPT compõem a Tabela 1 do artigo.

Tabela 1

Tabela1 <- data.table(
  Produto=P.nomes,
  `Quociente de Participação do Turismo (QPT)`=
    percent(QPT.i, accuracy=1))[QPT.i>0]
kable(Tabela1)
Produto Quociente de Participação do Turismo (QPT)
Combustível veicular 8%
Transporte terrestre 16%
Transporte aquaviário 65%
Transporte aéreo 98%
Estacionamentos e pedágios 34%
Hotéis e similares 98%
Serviços de alimentação 13%
Cinema 1%
Aluguel de imóveis 100%
Aluguel de veículos 90%
Agenciamento de viagens 100%
Artes, cultura, esporte e recreação 9%

Estimativas da demanda turística

A demanda turística total foi estimada por meio de 8 estratégias diferentes. A principal estratégia (A) consiste na aplicação dos QPT sobre os dados do consumo das famílias apresentados nas TRU.

CT.i.tipoa <- C.i * QPT.i

A estratégia B consiste na adoção direta das estimativas obtidas a partir da POF, sem conciliação com os dados de oferta oriundos das TRU.

CT.i.tipob <- as.vector(CT.i.POF$CT.i.POF)
CT.i.tipob[is.na(CT.i.tipob)] <- 0

A estratégia C corresponde à adoção da estimativa da demanda final das famílias por serviços das agências de viagens (não os serviços intermediados, mas sim o próprio serviço de intermediação) obtida anteriormente a partir da combinação dos dados da PAS e da POF (DF.agencias). Desta forma, o consumo turístico das famílias foi estimado para cada categoria de produtos (CT.i) conforme as diferentes estratégias adotadas.

tipo.estimacao <- left_join(data.table(tru.cod=P.i), tipo.estimacao, by="tru.cod")

CT.i <- ifelse(tipo.estimacao$C=="A", CT.i.tipoa,
               ifelse(tipo.estimacao$C=="B", CT.i.tipob,
                      ifelse(tipo.estimacao$C=="C", DF.agencias, 0)))

O consumo intermediário turístico por categoria de produto (CIT.i) foi estimado a partir de quatro estratégias diferentes. A estratégia D consiste na aplicação da participação do transporte de passageiros na receita total das companhias aéreas sobre o valor do consumo intermediário de transporte aéreo registrado nas TRU. A estratégia E corresponde à aplicação da proporção dos empregados em hotéis no total de empregados em serviços de alojamento sobre o valor do consumo intermediário de alojamento registrado nas TRU. A estratégia F é a aplicação da proporção entre gastos com alimentação e com alojamento observada nas viagens das famílias sobre o valor do consumo intermediário de alojamento registrado nas TRU. Por fim, a estratégia G é adotar a estimativa do consumo intermediário de serviços de agenciamento de viagens elaborada anteriormente (CI.agencias).

CIT.i <- 
  ifelse(tipo.estimacao$CI=="D", CI.i * participacao.passageiros.receita.ciasaereas,
         ifelse(tipo.estimacao$CI=="E", CI.i * participacao.hoteis.alojamento,
                ifelse(tipo.estimacao$CI=="F", CI.i[101] * 
                         participacao.hoteis.alojamento * prop.despesa.alim.aloj,
                       ifelse(tipo.estimacao$CI=="G", CI.agencias, 0))))

Os dados originais das TRU foram adotados com estimativas das exportações e importações turísticas para os serviços de transporte aéreo, hotéis e similares, e serviços de alimentação.

XT.i <- ifelse(tipo.estimacao$X=="H", X.i, 0)
MT.i <- ifelse(tipo.estimacao$X=="H", M.i, 0)

A soma do consumo turístico das famílias (CF.i) com as exportações turísticas (XT.i) forma a demanda final turística (DFT.i). Esta, somada ao consumo intermediário turístico (CIT.i) constitui a demanda turística total (DTT.i).

DFT.i <- CT.i + XT.i
DTT.i <- DFT.i + CIT.i
DTT <- sum(DTT.i, na.rm=T)
print(paste("DTT =", DTT))
[1] "DTT = 197504.300715247"

Outros agregados macroeconômicos

A partir das estimativas da demanda turística elaboradas anteriormente, foram calculados os demais agregados macroeconômicos. Essas estimativas seguiram o pressuposto da proporcionalidade, assumindo que a estrutura da economia pode ser representada por equações lineares. Logo, a proporção entre a demanda turística total e a demanda total da economia para cada categoria de produtos (PROPT.i) foi aplicada sobre os demais agregados macroeconômicos para estimar o valor desses que é devido ao turismo. Essa lógica foi aplicada à estimativa das margens do comércio e transporte, bem como dos impostos sobre produtos.

PROPT.i <- DTT.i / DT.i

MGCT.i <- MGC.i * PROPT.i
MGCT <- sum(MGCT.i, na.rm=T)

MGTT.i <- MGT.i * PROPT.i
MGTT <- sum(MGTT.i, na.rm=T)

IPT.ik <- IP.ik * PROPT.i
IPT.i <- rowSums(IPT.ik)
IPT <- sum(IPT.ik, na.rm=T)

print(paste("IPT =", IPT))
[1] "IPT = 15705.8404203276"

O valor da produção turística por categoria de produtos corresponde à demanda total subtraída das margens do comércio e transporte, dos impostos sobre produtos, e das importações.

VPT.i <- DTT.i - MGCT.i - MGTT.i - IPT.i - MT.i
VPT <- sum(VPT.i, na.rm=T)
print(paste("VPT =", VPT))
[1] "VPT = 134180.212427454"

Este trabalho assume o pressuposto de identidade entre produtos e atividades turísticas. A justificativa disto é detalhada no artigo publicado na RTA. Desta forma, o valor da produção de cada categoria de produto conduz diretamente à estimativa do valor da produção por atividade.

VPT.j <- data.table(tru.cod=floor(
  as.numeric(P.i)/10), VPT.i)[, .(VPT=sum(VPT.i, na.rm=T)), by=tru.cod][, VPT]

A estrutura de consumo intermediário das atividades econômicas adotada para a estimação do consumo intermediário da produção turística (CIPT). Logo, a proporção entre o valor do consumo intermediário e o valor da produçaõ de cada atividade econômica é aplicada sobre o valor da produção turística para se chegar ao CIPT.

CIPT.j <- (CI.j / VP.j) * VPT.j
CIPT <- sum(CIPT.j, na.rm=T)
print(paste("CIPT =", CIPT))
[1] "CIPT = 79866.6369827125"

O valor adicionado bruto das atividades turísticas (VABT.j) é a diferença entre o valor da produção turística (VPT.j) e o valor do consumo intermediário da produção turística (CIPT.j).

VABT.j <- VPT.j - CIPT.j
VABT <- VPT - CIPT
print(paste("VABT =", VABT))
[1] "VABT = 54313.5754447416"

A participação dos compomentes do total do valor adicionado foi utilizada para estimar a parcela devida ao turismo em cada elemento.

VAB.prop <- t(t(VAB.jm) / VAB.j)
VABT.jm <- t(VABT.j * t(VAB.prop))
VABT.m <- rowSums(VABT.jm)

Por fim, o PIB direto do turismo (PIBDT) é calculado pelas óticas da oferta e da produção. Na primeira pespectiva, o PIBDT é igual à demanda turística total menos o consumo intermediário da produção turística, das margens do comércio e transporte e das importações turísticas. Na perspectiva da produção, o PIBDT equivale ao valor da produção turística, somado aos impostos sobre produtos, menos o consumo intermediário da produção turística. A comparação dos valores calculados por ambas as óticas confirma a consistência da estimativa.

MT <- sum(MT.i, na.rm=T)

PIBDT.Oferta <- DTT - CIPT - MGCT - MGTT - MT 
PIBDT.Producao <- VPT + IPT - CIPT
print(paste("PIBDT =", PIBDT.Oferta, "==", PIBDT.Producao))
[1] "PIBDT = 70019.4158650692 == 70019.4158650692"

A participação do turismo no consumo das famílias, no valor da produção e no PIB foi calculada.

CT <- sum(CT.i, na.rm=T)
print(paste("CT / C =", percent(CT / C, accuracy = 0.01)))
[1] "CT / C = 2.30%"
print(paste("VPT / VP=", percent(VPT / VP, accuracy = 0.01)))
[1] "VPT / VP= 1.12%"
PIB <- VP - CI + IP
print(paste("PIBDT / PIB =", percent(PIBDT.Oferta / PIB, accuracy=0.01)))
[1] "PIBDT / PIB = 1.00%"

Tabelas finais

Tabela 2

Tabela2 <- data.table(`Categoria de produtos`=P.nomes, 
                      `Consumo turístico das famílias (CT)`=CT.i, 
                      `Exportação turística (XT)`=XT.i, 
                      `Demanda turística final (DTF)`=DFT.i, 
                      `Consumo intermediário turístico (CIT)`=CIT.i, 
                      `Demanda turística total (DT)`=DTT.i)[!is.na(DTT.i)] %>% 
  adorn_totals("row") %>% format(digits=2, big.mark = ".", decimal.mark = ",")

kable(Tabela2)
Categoria de produtos Consumo turístico das famílias (CT) Exportação turística (XT) Demanda turística final (DTF) Consumo intermediário turístico (CIT) Demanda turística total (DT)
Combustível veicular 12.263 0 12.263 0 12.263
Transporte terrestre 15.461 0 15.461 0 15.461
Transporte aquaviário 1.392 0 1.392 0 1.392
Transporte aéreo 12.476 7.914 20.390 28.212 48.601
Estacionamentos e pedágios 1.359 0 1.359 0 1.359
Hotéis e similares 13.283 7.092 20.375 26.547 46.921
Serviços de alimentação 34.939 5.081 40.020 15.696 55.716
Cinema 57 0 57 0 57
Aluguel de imóveis 624 0 624 0 624
Aluguel de veículos 714 0 714 0 714
Agenciamento de viagens 6.372 0 6.372 5.007 11.378
Artes, cultura, esporte e recreação 3.018 0 3.018 0 3.018
Total 101.957 20.087 122.044 75.460 197.504

Tabela 3

Tabela3 <- 
  data.table(
    `Categoria de produtos`=P.nomes,
    `Oferta total (O)`=DT.i,
    `Oferta turística total (OT)`=DTT.i,
    `Participação da oferta turística na oferta total (OT/O)`=
      percent((DTT.i / DT.i), accuracy=0.1))[`Oferta turística total (OT)`>0] %>%
  adorn_totals("row") %>% 
  format(digits=2, big.mark = ".", decimal.mark = ",")

kable(Tabela3)
Categoria de produtos Oferta total (O) Oferta turística total (OT) Participação da oferta turística na oferta total (OT/O)
Combustível veicular 176.497 12.263 6.9%
Transporte terrestre 116.288 15.461 13.3%
Transporte aquaviário 33.195 1.392 4.2%
Transporte aéreo 54.406 48.601 89.3%
Estacionamentos e pedágios 127.776 1.359 1.1%
Hotéis e similares 53.579 46.921 87.6%
Serviços de alimentação 325.012 55.716 17.1%
Cinema 46.185 57 0.1%
Aluguel de imóveis 247.602 624 0.3%
Aluguel de veículos 131.963 714 0.5%
Agenciamento de viagens 164.380 11.378 6.9%
Artes, cultura, esporte e recreação 52.012 3.018 5.8%
Total 1.528.895 197.504 -

Tabela 4

Tabela4 <- 
  cbind(data.table(`Categoria de produtos`=P.nomes,
                   `Oferta turística (OT)`=DTT.i,
                   `Margem do comércio sobre o turismo (MGCT)`=MGCT.i,
                   `Margem do transporte sobre o turismo (MGTT)`=MGTT.i,
                   `Imposto de importação sobre o turismo`=IPT.ik[,1],
                   `IPI sobre o turismo`=IPT.ik[,2],
                   `ICMS sobre o turismo`=IPT.ik[,3],
                   `Outros impostos menos subsídios sobre o turismo`=IPT.ik[,4],
                   `Total de impostos líquidos de subsídios sobre o turismo (IPT)`=IPT.i,
                   `Valor total da produção turística (VPT)`=VPT.i,
                   `Importação turística (MT)`=MT.i)[`Oferta turística (OT)`>0],
        CIPT.j[CIPT.j>0]) %>%
  adorn_totals("row") %>% 
  format(digits=1, big.mark = ".", decimal.mark = ",")

kable(Tabela4)
Categoria de produtos Oferta turística (OT) Margem do comércio sobre o turismo (MGCT) Margem do transporte sobre o turismo (MGTT) Imposto de importação sobre o turismo IPI sobre o turismo ICMS sobre o turismo Outros impostos menos subsídios sobre o turismo Total de impostos líquidos de subsídios sobre o turismo (IPT) Valor total da produção turística (VPT) Importação turística (MT) V2
Combustível veicular 12.263 2.232 89 0,000 0 2.674 0 2.674 7.269 0 6.581
Transporte terrestre 15.461 0 0 0,000 0 1.266 45 1.312 14.150 0 8.288
Transporte aquaviário 1.392 0 -99 0,000 0 10 151 161 1.329 0 748
Transporte aéreo 48.601 0 0 0,000 0 329 1.509 1.838 38.713 8.051 30.113
Estacionamentos e pedágios 1.359 0 0 0,000 0 0 71 71 1.289 0 552
Hotéis e similares 46.921 0 0 0,000 0 0 3.252 3.252 22.140 21.529 10.330
Serviços de alimentação 55.716 0 0 0,000 0 4.480 758 5.238 34.662 15.816 18.327
Cinema 57 0 0 0,009 0 0 2 2 55 0 33
Aluguel de imóveis 624 0 0 0,000 0 0 3 3 621 0 50
Aluguel de veículos 714 0 0 0,000 0 0 58 58 656 0 248
Agenciamento de viagens 11.378 0 0 0,000 0 0 685 685 10.694 0 3.475
Artes, cultura, esporte e recreação 3.018 0 0 0,348 0 0 414 414 2.604 0 1.121
Total 197.504 2.232 -10 0,357 0 8.759 6.947 15.706 134.180 45.396 79.867

Tabela 5

Tabela5 <- data.table(Operação=VAB.nomes, `Valor (R$ milhões)`=VABT.m) %>%
  format(digits=1, big.mark = ".", decimal.mark = ",")

kable(Tabela5)
Operação Valor (R$ milhões)
Valor adicionado bruto ( PIB ) 54.314
Remunerações 32.843
Salários 27.175
Contribuições sociais efetivas 5.668
Previdência oficial /FGTS 5.510
Previdência privada 158
Contribuições sociais imputadas 0
Excedente operacional bruto e rendimento misto bruto 20.050
Rendimento misto bruto 8.788
Excedente operacional bruto (EOB) 11.262
Outros impostos sobre a produção 1.507
Outros subsídios à produção -86
Valor da produção 134.180
Fator trabalho (ocupações) 1.509

Tabela 6

Tabela6 <- 
  data.table(`Atividade turística`=A.nomes,
             `Valor Adicionado Bruto Direto do Turismo (VABDT / R$ milhões)`=VABT.j,
             `Ocupações (milhares)`=VABT.jm[14,])[`Ocupações (milhares)`>0] %>% 
  format(digits = 1, big.mark = ".", decimal.mark = ",")

kable(Tabela6)
Atividade turística Valor Adicionado Bruto Direto do Turismo (VABDT / R$ milhões) Ocupações (milhares)
Combustível veicular 688 0,4
Transporte terrestre 5.862 144,6
Transporte aquaviário 581 3,0
Transporte aéreo 8.600 52,3
Estacionamentos e pedágios 737 7,5
Hotéis e similares 11.810 349,5
Serviços de alimentação 16.335 703,7
Cinema 21 0,2
Aluguel de imóveis 571 0,5
Aluguel de veículos 408 4,0
Agenciamento de viagens 7.218 170,7
Artes, cultura, esporte e recreação 1.483 72,4