Indicadores de Localização e Especialização

Para calcular os indicadores da aula de hoje vamos precisar de dados com alta desagregação. Quanto maior a desagregação, mais precisos serão os indicadores. No entanto, é importante lembrar do dilema das escalas.

Hoje, vamos trabalhar com dados da Relação Anual de Informações Sociais (RAIS). São dados gerados a partir de declarações de empregadores.

Apesar da base de dados contar apenas com o número de trabalhadores formais é a melhor referência que temos no Brasil para calcular indicadores de localização e especialização.

Atentando para as seguintes distorções:

  1. Superestima a participação da indústria, uma vez que o emprego na industria é predominantemente formal.

  2. Subestima setor de serviços e comércio, uma vez que há muita informalidade nesses setores.

  3. Podem haver distorções em termos de declaração - registro de trabalhador na cede da empresa, enquanto trabalhador exerce suas funções em outro local.

Dados da RAIS podem ser obtidos por:

É possível baixar os microdados diretamento para o R. Exige uma máquina com uma boa memória RAM ( > 8Gb). Também é preciso ter um ID de projeto no google cloud, uma vez que parte da manipulação dos dados é feita em nuvem.

Infelizmente, para trabalhar com dados do CAGED a melhor forma atualmente é recorrer aos microdados.

Definindo diretório, carregando pacotes e importando dados

Pacotes

Supondo que todos os pacotes foram previamente instalados. Por enquanto vamos utilizar os mesmos da aula anterior.

Diretório e leitura de dados

setwd("C:/Métodos Regional/Material Aula 2") #Define o diretório

Dados <- read_excel("Dados_Aula2.xlsx") #Lê o arquivo em excel

Participação Relativa

Participações relativas $ (P_r) $ são os indicadores mais simples que podem ser construídos. Em nosso contexto é uma comparação de uma observação local em relação a uma referência global. Por exemplo:

\[ P_r = (E_i/E_r)*100 \]

Em que: \(E_i\) é o emprego na região \(i\), \(E_r\) é o total do emprego na região de referência \(r\).

Nossos dados:

Dados municipais de vínculos de emprego formal para 5569 municípios, classificados entre 25 subsetores do IBGE. O ideal é usar uma desagregação setorial maior, mas a título de exemplo vamos seguir com a classificação de subsetores.

Dados de 2022.

Vamos selecionar um dos estados da federação como região de referência para calcular:

  • A participação do emprego do município no total do emprego do estado - PrMEs
Dados_UF <- Dados |> filter(Sigla=="SP") #Criando um novo dataframe para os dados do estado

Dados_UF$Empt_Mun <- rowSums(Dados_UF[,4:28]) #Criando uma coluna de total por município

Empt_UF <- sum(Dados_UF$Empt_Mun) #Criando um objeto para armazenar o total do número de empregos em SP

Dados_UF$PrMEs <- (Dados_UF$Empt_Mun/Empt_UF)*100 #Participação relativa
  • A participação do emprego de cada setor no total do emprego de cada município.

    Um indicador básico da estrutura produtiva do município

# Calculando a participação relativa por linha

# A função `as.data.frame` me garante que o resultado da função `prop.table`, que calcula as proporções, retorne como resultado um objeto do tipo dataframe. 

# A funçaõ `prop.table` (base do R), só aceita entrada de matrizes, por isso usei a função as.matrix para conversão das colunas numéricas em uma matriz. 

Dados_Prop_l <- as.data.frame(prop.table(as.matrix(Dados_UF[,4:28]), 1)*100)

#Por último, usando a função `bind_cols` recoloquei as colunas que identificam os municípios

Dados_Prop_l <- bind_cols(Dados_UF[,1:3],Dados_Prop_l)
  • A participação de cada município no emprego de cada setor

    Um indicador de concentração de atividade econômica

# Calculando a participação relativa por coluna

#Para calcular por coluna, basta mudar o segundo argumento da função `prop.table` de 1 para 2

Dados_Prop_c <- as.data.frame(prop.table(as.matrix(Dados_UF[,4:28]), 2)*100)

Dados_Prop_c <- bind_cols(Dados_UF[,1:3],Dados_Prop_c)
Dados_Prop_l |> filter(Município=="CAMPINAS")
## # A tibble: 1 × 28
##   Código_6 Sigla Município `Extrativa Mineral` `Prod. Mineral Não Metálico`
##      <dbl> <chr> <chr>                   <dbl>                        <dbl>
## 1   350950 SP    CAMPINAS               0.0912                        0.190
## # ℹ 23 more variables: `Indústria Metalúrgica` <dbl>,
## #   `Indústria Mecânica` <dbl>, `Elétrico e Comunic` <dbl>,
## #   `Material de Transporte` <dbl>, `Madeira e Mobiliário` <dbl>,
## #   `Papel e Gráf` <dbl>, `Borracha, Fumo, Couros` <dbl>,
## #   `Indústria Química` <dbl>, `Indústria Têxtil` <dbl>,
## #   `Indústria Calçados` <dbl>, `Alimentos e Bebidas` <dbl>,
## #   `Serviço Utilidade Pública` <dbl>, `Construção Civil` <dbl>, …

Visualizando resultados

Vou transformar os dados para um formato de painel para facilitar a elaboração de gráficos.

#Usando a função `gather` consigo escolher que variáveis serão mantidas e quais serão agregadas em uma nova variável

Dados_Prop_c <- Dados_Prop_c |> gather(Setor, Prop, -c(Código_6, Sigla, Município))

Dados_Prop_l <- Dados_Prop_l |> gather(Setor, Prop, -c(Código_6, Sigla, Município))

Se você não escolheu o estado de São Paulo como exemplo, escolha outras cidades no filtro.

Dados_Prop_c |> filter(Município %in% c("SAO PAULO", "CAMPINAS", "GUARULHOS", "OSASCO") & Setor %in% c("Indústria Metalúrgica","Indústria Química", "Indústria Mecânica")) |> 
  ggplot() +
  geom_col(aes(y=Prop, x=Setor, color=Município, fill=Município)) + #fill é um argumento de preenchimento de cor, color define apenas as cores das bordas
  theme_minimal()+
  scale_color_gdocs() + scale_fill_gdocs()

Dados_Prop_l |> 
  filter(Município %in% c("SAO PAULO", "CAMPINAS", "GUARULHOS", "OSASCO")) |>
  ggplot(aes(x=Prop, y=reorder(Setor,-Prop), color=Município, fill=Município)) +
  geom_col() +
  facet_wrap(facets = "Município")+ #Desagrupa colunas em um conjunto de gráficos
  theme_minimal()+
  scale_color_gdocs() + scale_fill_gdocs()+
  labs(x="", y="")

#Também usei a função `reorder` para ordenar os dados da menor proporção para a maior
rm(Dados_Prop_c, Dados_Prop_l)

Quociente Locacional, ou indicador de vantagem comparativa revelada

O quociente locacional é um dos indicadores mais difundidos e utilizados em toda literatura econômica regional. É uma medida relativa que compara duas proporções.

Foi utilizado em outros contextos, usando dados de comércio internacional para estudar especialização produtiva de países (Balassa). Logo foi aplicado a contextos regionais (North, Hoover). Também recebe a denominação de vantagem comparativa revelada (RCA), índice de Hoover, índice de Balassa, entre outras.

É a base para o cálculo do índice de complexidade econômica proposto por Hidalgo e Hausmann.

Podemos definir o índice como:

\[ Q_i= (E_{ij}/E_{tj})/(E_{it}/E_{tt}) \]

Onde:

-   $E_{ij}$ é o número de vínculos de emprego formal do setor $i$ na região $j$.

-   $E_{it}$ é o total do emprego do setor $i$ na região de referência $t$ (emprego total do setor).

-   $E_{tj}$ é o emprego total da região $j$.

-   $E_{tt}$ é o emprego total da região de referência.

Interpretação

Estamos comparando a proporção do emprego do setor \(i\) na região \(j\), com a proporção do setor \(i\) na região de referência. Caso o resultado seja maior que 1, dizemos que a região \(j\) acumulou vantagens no setor \(i\) ao longo do tempo.

Para o cálculo vamos utilizar as funções do pacote EconGeo desenvolvido pelo professor Pierre-Alexandre Balland (Utrech). Ver documentação e introdução ao pacote em:

Balland, P.A. (2017) Economic Geography in R: Introduction to the EconGeo Package, Papers in Evolutionary Economic Geography, 17 (09): 1-75 
#install.packages("EconGeo")  

library(EconGeo)
## 
## Please cite EconGeo in publications as:
##  Balland, P.A. (2017) Economic Geography in R: Introduction to the EconGeo Package, Papers in Evolutionary Economic Geography, 17 (09): 1-75

A função para calcular o quociente locacional é:

 QL <- as.data.frame(location_quotient(Dados_UF[,4:28]))
 
 QL <- bind_cols(Dados_UF[,1:3], QL)

Também posemos utilizar a versão binária do índice, que informa apenas se a região possui ou não uma especialização em determinado setor.

QL_b <- as.data.frame(location_quotient(Dados_UF[,4:28], binary = T))
 
QL_b <- bind_cols(Dados_UF[,1:3], QL_b)

Visualizando resultados - Mapas coropláeticos simples

Importanto Geometria - Shapefile

Finalmente, vamos nos dedicar a importar os insumos necessários para criar um mapa coroplético. O primeiro deles é a geometria

Shapefile

“Um shapefile é um formato de armazenamento de dados de vetor desenvolvido pela empresa Esri para armazenar a posição, a forma e os atributos de feições geográficas.”

Para nossos propósitos, vamos utilizar o pacote geobrdesenvolvido para carregar shapes diretamente no ambiente R.

Uf <- read_municipality(showProgress = F, year = 2010, code_muni = "SP") #Há vários argumentos possíveis, mas vamos utilizar o padrão
## Using year/date 2010
plot(st_geometry(Uf)) #Geometria vazia

Unindo Dados ao Shapefile

Assim como fizemos anteriormente, podemos unir nosso dataframe com o objeto “Uf” a partir de uma coluna comum como referência.

Primeiro precisamos selecionar os dados de que semestre queremos plotar.

#Precisamos criar no shapefile uma coluna de código com 6 dígitos

Uf <- Uf |> mutate(Código_6 =substr(code_muni, 1, 6)) #Agora temos uma coluna de referência para fazer a união do dataframe

Uf$Código_6 <- as.numeric(Uf$Código_6) # É importante que as variáveis estejam identificadas como do mesmo tipo. Aqui estou convertendo a variável código


Uf_QL <- Uf |> left_join(QL, by="Código_6")
Uf_QL_b <- Uf |> left_join(QL_b, by="Código_6")

Nosso primeiro mapa

A partir da biblioteca do “ggplot2” podemos criar um polígono a partir da função “geom_sf”, no argumento “aes” precisamos indicar qual variável deve preencher (“fill”) o nosso mapa.

Escolha um setor para mostrar no argumento “fill”

# Quando o nome da variável possui mais de uma palavra usar ``

# Para plotar a geometria dos mapas usar a função geom_sf

Uf_QL|> ggplot()+geom_sf(aes(fill=`Indústria Metalúrgica`),color=alpha("white",3/10))+ scale_fill_viridis_c() + theme_minimal()

# as.factor para converter os números em variável categórica e scale_fill_viridis_d para variável discreta

Uf_QL_b|> ggplot()+geom_sf(aes(fill=as.factor(`Indústria Têxtil`)),color=alpha("white",3/10))+ scale_fill_viridis_d() + theme_minimal() +
  labs(fill="QL", title = "Quociente locacional da Indústria Calçadista", 
       subtitle = "Dados da RAIS 2022")

rm(QL, QL_b,Uf_QL,Uf_QL_b)

Índice de Herfindahl-Hirschman (HHI)

O Índice de Herfindahl-Hirschman (HHI) é uma medida de concentração utilizada para avaliar a distribuição de mercado entre as empresas em um setor, mas também pode ser aplicado em outros contextos para avaliar a concentração de valores em uma distribuição.

A fórmula do Índice de Herfindahl-Hirschman aplicada ao emprego formal é dada por:

\[ \text{HHI}_j = \sum_{i=1}^{n} \left(\frac{E_{ij}}{E_{tj}}\right)^2 \]

Onde:

  • \(E_{ij}\) é o número de vínculos de emprego formal no setor \(i\) na região \(j\).
  • \(E_{tj}\) é o emprego total da região \(j\).
  • \(n\) é o número total de setores na região \(j\).

PS. Há formulações alternativas para o índice. Por exemplo: Piacenti e Lima (2012) e Crocco et al (2006) calculam o HHI como a diferença entre a participação relativa de um setor na região e a participação em uma região de referência. Também possui uma interpretação distinta.

Interpretação:

O HHI para uma determinada região \(j\) é a soma dos quadrados das participações de cada setor no emprego total da região. O índice varia de 0 a 1: - Um HHI próximo de 0 indica uma distribuição de emprego mais diversificada entre os setores na região \(j\). - Um HHI próximo de 1 indica que o emprego está concentrado em poucos setores, sugerindo menor diversificação.

HHI_t <- as.data.frame(herfindahl(Dados_UF[,4:28])) # Computa o índice para todos os setores


HHI_i <- as.data.frame(herfindahl(Dados_UF[,6:17])) # Calculando somente para os setores da indústria de transformação


HHI_t <- bind_cols(Dados_UF[,1:3], HHI_t)

HHI_i <- bind_cols(Dados_UF[,1:3], HHI_i)

colnames(HHI_i)[4] <- "HHI"
colnames(HHI_t)[4] <- "HHI"

Visualizando resultados

Unindo dados com o Shape

Uf_HHI_t <- Uf |> left_join(HHI_t, by="Código_6")

Uf_HHI_i <- Uf |> left_join(HHI_i, by="Código_6")

rm(HHI_i,HHI_t)

Mapas

Uf_HHI_t |> ggplot() + geom_sf(aes(fill=HHI), color=alpha("white",3/10)) + scale_fill_viridis_c(direction = -1)  + 
  labs(title = "Índice Hirschman-Herfindahl - Todos os Setores",
       subtitle = "Calculado com base em dados da RAIS 2022") 

Uf_HHI_i |> ggplot() + geom_sf(aes(fill=HHI), color=alpha("white",3/10)) + scale_fill_viridis_c(direction = -1) + 
  labs(title = "Índice Hirschman-Herfindahl - Indústrias de Transformação",
       subtitle = "Calculado com base em dados da RAIS 2022") 

rm(Uf_HHI_i,Uf_HHI_t)
# Curvas de Lorenz

locational_gini_curve(Dados_UF[,6:17])

Índice de Krugman - Indicador de especialização de Krugman (Ki)

Mede quão dessemelhantes são as estruturas de produção de cada região. Também é conhecido como índice de dessemelhança de Krugman.

É dado pela diferença absoluta entre a proporção de empregos no setor \(i\) na região \(j\) e a proporção desse mesmo setor \(i\) em uma região de referência \(t\), descontadas as proporções da região \(j\).

\[ K_i=\sum\|(E_{ij}/E_{tj})-[(E_{it}-E_{ij})/(E_{tt}-E_{tj})]|| \]

Interpretação

Considera-se que uma região é especializada se sua estrutura industrial diferir da estrutura industrial média da região de referência.

Varia de 0 a 2, sendo valores próximos a 0 uma estrutura de produção muito semelhante a estrutura de produção da região de referência, quanto mais próximo de 2, maior a especialização.

 KI <- as.data.frame(krugman_index(Dados_UF[,6:17])) # Para a indústria de transformação
 
 KI <- bind_cols(Dados_UF[,1:3], KI)
 
 colnames(KI)[4] <- "KI"
 
 Uf_KI <- Uf |> left_join(KI, by="Código_6")
# Transformando variável contínua em categórica

x <- quantile(Uf_KI$KI, probs = seq(0, 1, length.out = 4), na.rm = T)# calculando quartis
  
Uf_KI <- Uf_KI |> mutate(KI_c = cut(KI, breaks = x, include.lowest = T)) #criando uma nova variável

Uf_KI |> ggplot() + 
  geom_sf(aes(fill=KI), color=alpha("white",3/10)) + 
  scale_fill_viridis_c(option = "inferno") + 
  labs(title = "Índice Krugman - Indústrias de Transformação",
       subtitle = "Calculado com base em dados da RAIS 2022") 

Uf_KI |> ggplot() + 
  geom_sf(aes(fill=KI_c), color=alpha("white",3/10)) + 
  scale_fill_viridis_d(option = "cividis") + 
  theme(legend.position = "bottom")+
  labs(title = "Índice Krugman - Indústrias de Transformação",
       subtitle = "Calculado com base em dados da RAIS 2022",
       fill="Quartis")