Esta análise investiga o grau de especialização produtiva dos municípios catarinenses na agricultura temporária. Através de dados do IBGE, calculamos um Índice de Especialização Produtiva que varia de 0 (produção totalmente diversificada) a 1 (monocultura).
Objetivos da Análise:
Identificar municípios com alta especialização (monoculturas)
Detectar municípios com produção diversificada
Analisar a soja como cultura estratégica
Compreender padrões regionais de produção
🛠 Configuração do Ambiente
# Carregamento dos pacotes
library(sidrar) # Para acesso à API do IBGE
library(tidyverse) # Para manipulação e visualização de dados
library(writexl) # Para exportar resultados para Excel
library(scales) # Para formatação de porcentagens
cat("Pacotes carregados com sucesso!")
## Pacotes carregados com sucesso!
📊 Metodologia Fonte dos Dados
Fonte: IBGE - Pesquisa Agrícola Municipal (PAM)
Tabela: 1612 - Produção agrícola municipal
Variável: 214 - Quantidade produzida
Classificação: C81 - Produtos das lavouras temporárias
Abrangência: Municípios de Santa Catarina
Cálculo do Índice de Especialização O índice é calculado como:
Índice = Produção do Produto Principal / Produção Total do Município
Onde:
1.0 = Monocultura (100% da produção em um único produto)
0.0 = Produção perfeitamente distribuída entre todos os produtos
🔍 Coleta de Dados
# Baixar dados do IBGE para Santa Catarina (código 42)
dados_ibge <- get_sidra(
x = 1612, # Tabela PAM
variable = 214, # Quantidade produzida
geo = "City", # Nível municipal
geo.filter = list(State = 42), # Santa Catarina
classific = "c81", # Classificação de produtos
category = "all" # Todos os produtos
)
cat("Dados baixados com sucesso!")
## Dados baixados com sucesso!
cat("Número de observações:", nrow(dados_ibge))
## Número de observações: 10030
cat("Número de municípios:", n_distinct(dados_ibge$`Município`))
## Número de municípios: 295
🧮 Processamento dos Dados
# Processamento para cálculo do índice de especialização - VERSÃO CORRIGIDA
# Primeiro, vamos verificar os nomes reais das colunas
cat("Nomes das colunas disponíveis:\n")
## Nomes das colunas disponíveis:
print(names(dados_ibge))
## [1] "Nível Territorial (Código)"
## [2] "Nível Territorial"
## [3] "Unidade de Medida (Código)"
## [4] "Unidade de Medida"
## [5] "Valor"
## [6] "Município (Código)"
## [7] "Município"
## [8] "Ano (Código)"
## [9] "Ano"
## [10] "Variável (Código)"
## [11] "Variável"
## [12] "Produto das lavouras temporárias (Código)"
## [13] "Produto das lavouras temporárias"
# Abordagem usando índices numéricos (evita problemas de encoding)
resultados_especializacao <- dados_ibge %>%
# Selecionar colunas por posição
select(
Municipio_cod = 6, # Município (Código) - posição 6
Municipio_nome = 7, # Município - posição 7
Produto = 13, # Produto das lavouras temporárias - posição 13
Quantidade = 5 # Valor - posição 5
) %>%
# Converter Quantidade para numérico (importante!)
mutate(Quantidade = as.numeric(Quantidade)) %>%
# Remover valores missing
drop_na() %>%
# Agrupar por município e produto para somar quantidades
group_by(Municipio_cod, Municipio_nome, Produto) %>%
summarise(Quantidade = sum(Quantidade), .groups = "drop") %>%
# Calcular totais por município e proporções
group_by(Municipio_cod, Municipio_nome) %>%
mutate(
ProducaoTotal = sum(Quantidade),
Proporcao = Quantidade / ProducaoTotal
) %>%
# Identificar produto principal e calcular índice
summarise(
ProdutoPrincipal = Produto[which.max(Quantidade)],
QuantidadePrincipal = max(Quantidade),
ProducaoTotal = first(ProducaoTotal),
IndiceEspecializacao = max(Quantidade) / first(ProducaoTotal),
.groups = "drop"
) %>%
# Ordenar por especialização (maior para menor)
arrange(desc(IndiceEspecializacao))
cat("✅ Processamento concluído!")
## ✅ Processamento concluído!
cat("📊 Total de municípios processados:", nrow(resultados_especializacao))
## 📊 Total de municípios processados: 292
# Análise Comparativa: Especialização vs Diversificação
# Separar os extremos: 20 mais e 20 menos especializados
mais_especializados <- resultados_especializacao %>%
arrange(desc(IndiceEspecializacao)) %>%
head(20)
menos_especializados <- resultados_especializacao %>%
arrange(IndiceEspecializacao) %>%
head(20)
cat("✅ Análise comparativa preparada:\n")
## ✅ Análise comparativa preparada:
cat("• 20 municípios mais especializados\n")
## • 20 municípios mais especializados
cat("• 20 municípios mais diversificados\n")
## • 20 municípios mais diversificados
# Visualizar os 20 municípios mais especializados
top_20_especializados <- head(resultados_especializacao, 20)
knitr::kable(top_20_especializados,
caption = "20 Municipios Catarinenses com Maior Especializacao Produtiva")
| Municipio_cod | Municipio_nome | ProdutoPrincipal | QuantidadePrincipal | ProducaoTotal | IndiceEspecializacao |
|---|---|---|---|---|---|
| 4206009 | Governador Celso Ramos - SC | Mandioca | 50 | 50 | 1.0000000 |
| 4208302 | Itapema - SC | Mandioca | 82 | 82 | 1.0000000 |
| 4213500 | Porto Belo - SC | Mandioca | 48 | 48 | 1.0000000 |
| 4212650 | Pescaria Brava - SC | Mandioca | 3940 | 3951 | 0.9972159 |
| 4202107 | Barra Velha - SC | Arroz (em casca) | 2695 | 2747 | 0.9810703 |
| 4207106 | Ilhota - SC | Arroz (em casca) | 21700 | 22120 | 0.9810127 |
| 4213807 | Praia Grande - SC | Arroz (em casca) | 31752 | 32409 | 0.9797279 |
| 4210605 | Massaranduba - SC | Arroz (em casca) | 48233 | 49308 | 0.9781983 |
| 4206504 | Guaramirim - SC | Arroz (em casca) | 37600 | 38520 | 0.9761163 |
| 4201307 | Araquari - SC | Arroz (em casca) | 18486 | 19083 | 0.9687156 |
| 4211306 | Navegantes - SC | Arroz (em casca) | 7296 | 7556 | 0.9655903 |
| 4203204 | Camboriú - SC | Arroz (em casca) | 8370 | 8844 | 0.9464043 |
| 4218806 | Turvo - SC | Arroz (em casca) | 90060 | 95823 | 0.9398579 |
| 4216354 | São João do Itaperiú - SC | Arroz (em casca) | 16776 | 17876 | 0.9384650 |
| 4202503 | Bom Jardim da Serra - SC | Batata-inglesa | 5000 | 5361 | 0.9326618 |
| 4208203 | Itajaí - SC | Arroz (em casca) | 16200 | 17492 | 0.9261377 |
| 4205902 | Gaspar - SC | Arroz (em casca) | 23651 | 25579 | 0.9246257 |
| 4210852 | Mirim Doce - SC | Arroz (em casca) | 12426 | 13469 | 0.9225629 |
| 4212809 | Balneário Piçarras - SC | Arroz (em casca) | 1540 | 1670 | 0.9221557 |
| 4210803 | Meleiro - SC | Arroz (em casca) | 92739 | 101088 | 0.9174086 |
# Gráfico geral de especialização produtiva - SEM ACENTOS
ggplot(resultados_especializacao,
aes(x = reorder(Municipio_nome, IndiceEspecializacao),
y = IndiceEspecializacao)) +
geom_col(fill = "tomato", alpha = 0.8) +
coord_flip() +
labs(
x = "Municipio",
y = "Indice de Especializacao Produtiva",
title = "Municipios Catarinenses por Grau de Especializacao Produtiva",
subtitle = "Valores proximos de 1 indicam alta especializacao (monocultura)",
caption = "Fonte: IBGE - PAM"
) +
theme_minimal() +
theme(
axis.text.y = element_text(size = 6),
plot.title = element_text(size = 14, face = "bold"),
plot.subtitle = element_text(size = 10)
) +
scale_y_continuous(labels = scales::percent,
limits = c(0, 1),
breaks = seq(0, 1, 0.2))
# Gráfico dos 20 MAIS ESPECIALIZADOS - SEM ACENTOS
ggplot(mais_especializados,
aes(x = reorder(Municipio_nome, IndiceEspecializacao),
y = IndiceEspecializacao,
fill = ProdutoPrincipal)) +
geom_col() +
coord_flip() +
labs(
x = "",
y = "Indice de Especializacao",
title = "Municipios com Maior Especializacao Produtiva em SC",
subtitle = "Padrao de monocultura - produto principal destacado por cor",
fill = "Produto Principal",
caption = "Valores proximos de 100% indicam quase monocultura"
) +
theme_minimal() +
theme(
axis.text.y = element_text(size = 8, face = "bold"),
legend.position = "bottom",
plot.title = element_text(face = "bold", color = "#d73027")
) +
scale_y_continuous(labels = scales::percent, limits = c(0, 1)) +
scale_fill_viridis_d()
# Gráfico dos 20 MENOS ESPECIALIZADOS - SEM ACENTOS
ggplot(menos_especializados,
aes(x = reorder(Municipio_nome, -IndiceEspecializacao),
y = IndiceEspecializacao)) +
geom_col(fill = "steelblue", alpha = 0.8) +
coord_flip() +
labs(
x = "",
y = "Indice de Especializacao",
title = "Municipios com Maior Diversificacao Produtiva em SC",
subtitle = "Valores proximos de zero indicam producao bem distribuida",
caption = "Municipios com agricultura mais balanceada"
) +
theme_minimal() +
theme(
axis.text.y = element_text(size = 8, face = "bold"),
plot.title = element_text(face = "bold", color = "#4575b4")
) +
scale_y_continuous(labels = scales::percent)
# Criar destaque específico para soja
menos_especializados_soja <- menos_especializados %>%
mutate(Destaque_Soja = ifelse(ProdutoPrincipal == "Soja (em grão)", "Soja", "Outros"))
# Contar municípios com soja como principal produto
contagem_soja <- menos_especializados_soja %>%
count(Destaque_Soja)
cat("Municípios com soja como produto principal entre os menos especializados:")
## Municípios com soja como produto principal entre os menos especializados:
print(contagem_soja)
## # A tibble: 2 × 2
## Destaque_Soja n
## <chr> <int>
## 1 Outros 14
## 2 Soja 6
# Gráfico com destaque para soja - SEM ACENTOS
ggplot(menos_especializados_soja,
aes(x = reorder(Municipio_nome, -IndiceEspecializacao),
y = IndiceEspecializacao,
fill = Destaque_Soja)) +
geom_col(width = 0.8) +
coord_flip() +
labs(
x = "",
y = "Indice de Especializacao",
title = "Diversificacao Produtiva com Destaque para Soja",
subtitle = "Municipios diversificados onde a soja e o produto principal",
fill = "",
caption = "Laranja: Soja como principal produto | Azul: Outros produtos"
) +
theme_minimal() +
theme(
axis.text.y = element_text(size = 9, face = "bold"),
legend.position = "top",
plot.title = element_text(size = 14, face = "bold"),
plot.subtitle = element_text(size = 10)
) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
scale_fill_manual(
values = c("Soja" = "#e6550d",
"Outros" = "#9ecae1")
)
# Aprofundando a Análise com Filtro de Produção - VERSÃO CORRIGIDA
# Abordagem corrigida - converter para numérico
resultados_filtrados <- dados_ibge %>%
# Selecionar colunas por posição
select(
Municipio_cod = 6, # Município (Código)
Municipio_nome = 7, # Município
Produto = 13, # Produto das lavouras temporárias (posição 13)
Quantidade = 5 # Valor (posição 5)
) %>%
# Converter Quantidade para numérico
mutate(Quantidade = as.numeric(Quantidade)) %>%
drop_na() %>%
group_by(Municipio_cod, Municipio_nome, Produto) %>%
summarise(Quantidade = sum(Quantidade), .groups = "drop") %>%
group_by(Municipio_cod, Municipio_nome) %>%
mutate(
ProducaoTotal = sum(Quantidade)
) %>%
# FILTRO: apenas municípios com produção relevante
filter(ProducaoTotal >= 50000) %>%
mutate(
Proporcao = Quantidade / ProducaoTotal
) %>%
summarise(
ProdutoPrincipal = Produto[which.max(Quantidade)],
QuantidadePrincipal = max(Quantidade),
ProducaoTotal = first(ProducaoTotal),
IndiceEspecializacao = max(Quantidade) / first(ProducaoTotal),
.groups = "drop"
) %>%
arrange(desc(IndiceEspecializacao))
cat("Municípios após filtro de produção (>= 50.000 ton):", nrow(resultados_filtrados))
## Municípios após filtro de produção (>= 50.000 ton): 37
# Gráfico dos municípios filtrados - SEM ACENTOS
resultados_filtrados %>%
head(20) %>%
ggplot(aes(x = reorder(Municipio_nome, IndiceEspecializacao),
y = IndiceEspecializacao,
fill = ProdutoPrincipal)) +
geom_col(alpha = 0.9) +
geom_text(aes(label = scales::percent(IndiceEspecializacao, accuracy = 1)),
hjust = -0.1, size = 3.5, fontface = "bold") +
coord_flip() +
labs(
x = "MUNICIPIO",
y = "INDICE DE ESPECIALIZACAO",
title = "TOP 20 - MUNICIPIOS MAIS ESPECIALIZADOS",
subtitle = "Filtro: producao total >= 50.000 toneladas",
fill = "PRODUTO PRINCIPAL:",
caption = "Fonte: IBGE/SIDRA - Santa Catarina | Dados: Producao Agricola Municipal"
) +
scale_y_continuous(
labels = scales::percent_format(accuracy = 1),
limits = c(0, 1.05),
expand = c(0, 0)
) +
scale_fill_viridis_d() +
theme_minimal() +
theme(
legend.position = "bottom",
plot.title = element_text(face = "bold", size = 16, color = "#2E8B57"),
plot.subtitle = element_text(size = 12, color = "gray40", margin = margin(b = 10)),
axis.text.y = element_text(size = 10, face = "bold", color = "black"),
axis.text.x = element_text(size = 10, face = "bold"),
axis.title = element_text(face = "bold", size = 11),
legend.title = element_text(face = "bold", size = 11),
legend.text = element_text(size = 10),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank()
) +
guides(fill = guide_legend(nrow = 2, byrow = TRUE))
# Análise da distribuição dos produtos principais
distribuicao_produtos <- resultados_filtrados %>%
count(ProdutoPrincipal, sort = TRUE) %>%
mutate(Percentual = n/nrow(resultados_filtrados))
cat("Distribuição dos produtos principais:")
## Distribuição dos produtos principais:
print(distribuicao_produtos)
## # A tibble: 5 × 3
## ProdutoPrincipal n Percentual
## <chr> <int> <dbl>
## 1 Soja (em grão) 21 0.568
## 2 Arroz (em casca) 7 0.189
## 3 Cebola 5 0.135
## 4 Milho (em grão) 2 0.0541
## 5 Tomate 2 0.0541
# Gráfico de distribuição - SEM ACENTOS
distribuicao_produtos %>%
head(10) %>%
mutate(ProdutoPrincipal = fct_reorder(ProdutoPrincipal, n)) %>%
ggplot(aes(x = n, y = ProdutoPrincipal)) +
geom_col(fill = "#4682B4", alpha = 0.9, width = 0.8) +
geom_text(aes(label = paste0(n, " (", scales::percent(Percentual, accuracy = 0.1), ")")),
hjust = -0.1, size = 4, fontface = "bold", color = "black") +
labs(
x = "NUMERO DE MUNICIPIOS",
y = "PRODUTO PRINCIPAL",
title = "PRODUTOS AGRICOLAS DOMINANTES EM SANTA CATARINA",
subtitle = "Top 10 culturas mais frequentes como produto principal",
caption = "Fonte: IBGE/SIDRA | Entre parenteses: percentual do total de municipios"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#2F4F4F"),
plot.subtitle = element_text(size = 12, color = "gray40", margin = margin(b = 15)),
axis.text.y = element_text(size = 10, face = "bold", color = "black"),
axis.text.x = element_text(size = 10, face = "bold"),
axis.title = element_text(face = "bold", size = 12, color = "black"),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
plot.caption = element_text(size = 9, color = "gray50")
) +
scale_x_continuous(expand = expansion(mult = c(0, 0.2)))
# Exportar resultados para Excel
lista_exportacao <- list(
"Todos_Municipios" = resultados_especializacao,
"Mais_Especializados" = mais_especializados,
"Menos_Especializados" = menos_especializados,
"Com_Filtro_Producao" = resultados_filtrados,
"Distribuicao_Produtos" = distribuicao_produtos
)
# Exportar para Excel
write_xlsx(
lista_exportacao,
path = "analise_especializacao_sc.xlsx"
)
cat("Resultados exportados para 'analise_especializacao_sc.xlsx'")
## Resultados exportados para 'analise_especializacao_sc.xlsx'
🎯 Principais Insights: Padrões Regionais: Identificação de regiões especializadas em cultivos específicos
Vulnerabilidades: Municípios com alta especialização são mais vulneráveis a crises setoriais
Oportunidades: Municípios diversificados têm maior resiliência econômica
Soja: Análise do papel estratégico desta cultura mesmo em contextos diversificados
📚 Conclusão Esta análise fornece uma visão abrangente da estrutura produtiva agrícola catarinense, identificando:
✅ Municípios especializados que dependem fortemente de monoculturas
✅ Municípios diversificados com agricultura balanceada
✅ Padrões regionais de especialização produtiva
✅ O papel estratégico da soja na agricultura estadual
Os resultados podem subsidiar políticas públicas de desenvolvimento rural, estratégias de diversificação produtiva e estudos de resiliência econômica regional.
Análise realizada com dados do IBGE através do pacote sidrar no R Código disponível para reprodução e adaptação