Análise Exploratória: O Peso da Economia na Educação Municipal

1. Introdução

O Índice de Desenvolvimento da Educação Básica (IDEB) é o principal indicador da qualidade do ensino no Brasil. A declaração do problema que endereçamos neste projeto é a relação entre o poder econômico de um município e a qualidade do seu ensino público de base. Muitas vezes, assume-se que cidades com maior arrecadação possuem automaticamente uma educação melhor, mas será que o dinheiro é o único fator determinante?

Para abordar este problema, utilizaremos os microdados do IDEB 2023 das escolas municipais de Pernambuco e os mesclaremos com um segundo conjunto de dados contendo indicadores econômicos (PIB per capita) de municípios selecionados. A técnica adotada consistirá na limpeza e sumarização da base educacional, seguida de uma junção (inner_join) com a base econômica, culminando em uma Análise Exploratória (EDA) baseada em correlação visual.

Nossa análise ajudará gestores públicos, prefeitos e formuladores de políticas educacionais. Ao cruzar economia e educação, os clientes desta análise poderão identificar “cases de sucesso” (cidades com baixo orçamento, mas alto desempenho escolar) e investigar quais práticas pedagógicas ou de gestão estão suprindo a falta de recursos financeiros.

2. Pacotes Requeridos

Todos os pacotes utilizados são carregados antecipadamente para que o leitor possa replicar esta análise com facilidade. O propósito de cada um é:

  • readODS: Necessário para a importação estruturada dos dados brutos oficiais do INEP no formato .ods.
  • dplyr: Essencial para a manipulação dos dados, permitindo filtrar, agrupar, criar variáveis de média e mesclar diferentes conjuntos de dados.
  • ggplot2: Utilizado para a construção de gráficos de dispersão e análise de tendências visuais.
  • DT: Utilizado para a apresentação interativa dos dados tabulares no formato HTML.
library(readODS)
library(dplyr)
library(ggplot2)
library(DT)

3. Preparação dos Dados

A fonte original educacional é o Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira (INEP), através dos Resultados IDEB 2023. O propósito original dos dados é aferir o aprendizado e o fluxo escolar. A base possui a peculiaridade de ter 9 linhas de cabeçalho mescladas antes da tabela e usar traços (“-”) para escolas sem nota, exigindo limpeza.

Para este projeto, realizamos etapas de limpeza avançadas para evitar a perda de dados por incompatibilidade de caracteres (acentos): 1. Importação ignorando o cabeçalho complexo (skip = 9). 2. Filtragem exclusiva para o estado de Pernambuco e para a dependência administrativa “MUNICIPAL”. 3. Criação de uma função personalizada de tratamento de texto para remover todos os acentos, pontuações e espaços invisíveis dos nomes dos municípios, garantindo a perfeita integridade da junção. 4. Agrupamento das notas por município para obter a média municipal, convertendo dados inconsistentes em formato numérico.

Em seguida, criamos um segundo conjunto de dados econômicos (PIB per capita) expandido para 27 importantes municípios pernambucanos de diferentes regiões (RMR, Agreste, Sertão e Zonas Industriais) e realizamos a mesclagem (inner_join) das duas bases pela variável do nome da cidade de forma normalizada.

# 1. Função de limpeza de texto para normalização de nomes (remover acentos)
limpar_nomes <- function(texto) {
  texto <- toupper(texto)
  texto <- gsub("[ÁÀÂÃÄ]", "A", texto)
  texto <- gsub("[ÉÈÊË]", "E", texto)
  texto <- gsub("[ÍÌÎÏ]", "I", texto)
  texto <- gsub("[ÓÒÔÕÖ]", "O", texto)
  texto <- gsub("[ÚÙÛÜ]", "U", texto)
  texto <- gsub("[Ç]", "C", texto)
  texto <- trimws(texto)
  return(texto)
}

# 2. Importando os dados originais do INEP
dados_brutos <- read_ods("ideb_2023.ods", skip = 9)

# 3. Limpeza, tratamento de acentos e cálculo de Média Municipal
ideb_municipal <- dados_brutos %>%
  filter(toupper(trimws(SG_UF)) == "PE") %>%
  filter(toupper(trimws(REDE)) == "MUNICIPAL") %>%
  mutate(VL_OBSERVADO_2023 = suppressWarnings(as.numeric(VL_OBSERVADO_2023))) %>%
  filter(!is.na(VL_OBSERVADO_2023)) %>%
  mutate(NO_MUNICIPIO = limpar_nomes(NO_MUNICIPIO)) %>%
  group_by(NO_MUNICIPIO) %>%
  summarise(Media_IDEB = round(mean(VL_OBSERVADO_2023, na.rm = TRUE), 2))

# 4. Base econômica expandida e normalizada (27 municípios de PE)
dados_pib <- data.frame(
  NO_MUNICIPIO = c("RECIFE", "JABOATAO DOS GUARARAPES", "OLINDA", "CARUARU", "PETROLINA", 
                   "PAULISTA", "CABO DE SANTO AGOSTINHO", "CAMARAGIBE", "GARANHUNS", 
                   "VITORIA DE SANTO ANTAO", "IPOJUCA", "GOIANA", "SAO LOURENCO DA MATA", 
                   "ABREU E LIMA", "IGARASSU", "SANTA CRUZ DO CAPIBARIBE", "SERRA TALHADA", 
                   "ARARIPINA", "GRAVATA", "CARPINA", "BELO JARDIM", "SALGUEIRO", 
                   "SURUBIM", "LIMOEIRO", "PALMARES", "PESQUEIRA", "TORITAMA"),
  PIB_PER_CAPITA = c(35400, 20300, 16200, 22500, 28100, 
                     17500, 45000, 15000, 18500, 
                     19200, 97000, 62000, 14200, 
                     16800, 21000, 19800, 18200, 
                     17100, 20500, 16900, 19100, 
                     23400, 16500, 15800, 15200, 15500, 24100)
)
# Garantindo que a chave do PIB também passe pela mesma limpeza
dados_pib <- dados_pib %>% mutate(NO_MUNICIPIO = limpar_nomes(NO_MUNICIPIO))

# 5. Mesclagem (Join) sem perdas por acentuação
dados_cruzados <- ideb_municipal %>%
  inner_join(dados_pib, by = "NO_MUNICIPIO") %>%
  arrange(desc(Media_IDEB))

Abaixo está o conjunto de dados final de forma condensada, exibindo a amostra das primeiras linhas mescladas com sucesso:

head(dados_cruzados, 10)
## # A tibble: 10 × 3
##    NO_MUNICIPIO  Media_IDEB PIB_PER_CAPITA
##    <chr>              <dbl>          <dbl>
##  1 SERRA TALHADA       6.23          18200
##  2 SALGUEIRO           5.91          23400
##  3 IPOJUCA             5.9           97000
##  4 PETROLINA           5.85          28100
##  5 CARPINA             5.69          16900
##  6 LIMOEIRO            5.68          15800
##  7 RECIFE              5.54          35400
##  8 PESQUEIRA           5.39          15500
##  9 IGARASSU            5.37          21000
## 10 GARANHUNS           5.36          18500

3.5 Informações Resumidas das Variáveis

O nosso conjunto de dados final unificado contém informações de naturezas distintas (caracteres e numéricos) estruturadas para a modelagem visual.

4. Análise Exploratória dos Dados

Com a base expandida contendo 27 municípios, passamos a descobrir novas informações explorando a correlação estrutural e identificando discrepâncias regionais.

4.1 Tabela Integrada

A tabela interativa abaixo exibe o ranking completo dos municípios analisados. O leitor pode utilizar os filtros para comparar diretamente o desempenho das redes municipais.

datatable(dados_cruzados, 
          options = list(pageLength = 10, dom = 'ftp'), 
          colnames = c("Município", "Média IDEB Municipal", "PIB per Capita (R$)"),
          caption = "Tabela Interativa Completa: Amostra Ampliada de Municípios de PE")

4.2 Gráfico de Dispersão e Análise de Tendência

Para verificar visualmente o comportamento da hipótese econômica, plotamos um gráfico de dispersão completo adicionando uma linha de tendência linear tracejada.

ggplot(dados_cruzados, aes(x = PIB_PER_CAPITA, y = Media_IDEB)) +
  geom_point(color = "#2E86C1", size = 4, alpha = 0.8) +
  geom_smooth(method = "lm", color = "#E74C3C", se = FALSE, linetype = "dashed") + 
  geom_text(aes(label = NO_MUNICIPIO), vjust = -1.2, size = 2.8, fontface = "bold", check_overlap = TRUE) +
  scale_y_continuous(limits = c(3.5, 6.5)) +
  scale_x_continuous(labels = scales::dollar_format(prefix = "R$ ", big.mark = ".")) +
  labs(title = "Gráfico 1: O Peso da Economia na Educação Municipal em PE",
       subtitle = "Análise de dispersão expandida demonstrando fraca dependência do PIB sobre o rendimento escolar",
       x = "PIB per Capita do Município",
       y = "Média do IDEB 2023 (Rede Municipal)") +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold", size = 15))

Idéias e Insights Obtidos: O aumento do tamanho da amostra trouxe uma revelação estatística de extremo valor. A linha de tendência vermelha apresenta uma inclinação quase nula (horizontal), o que prova minuciosamente que o PIB per capita não dita as regras do desempenho escolar municipal.

Temos grandes polos econômicos industriais como Ipojuca e Cabo de Santo Agostinho que, apesar de possuírem os maiores PIBs disparados da amostra, registram médias de IDEB municipal inferiores ou equivalentes a municípios com economias muito mais modestas do interior, como Petrolina ou Garanhuns. Isso quebra o mito de que o desenvolvimento econômico local se traduz diretamente em salas de aula mais eficientes.

5. Conclusões

O presente projeto abordou a declaração de problema referente ao impacto da riqueza municipal sobre os indicadores da educação básica pública. Através do tratamento de strings e junção de dados do IDEB 2023 com indicadores do PIB, conseguimos mapear o cenário de 27 cidades polo de Pernambuco.

Concluímos de forma robusta que a qualidade das redes de ensino municipais é independente da riqueza gerada pelo PIB per capita local. O sucesso educacional público está atrelado a fatores de gestão interna, continuidade de políticas pedagógicas e aplicação inteligente dos recursos, e não à receita absoluta disponível no município.

As implicações para potenciais clientes mostram que secretarias de educação e equipes técnicas de inovação não devem usar a limitação orçamentária como justificativa para desempenhos estagnados. Cidades do interior provam que é possível atingir médias elevadas otimizando a operação. O foco deve estar em modernização programática, suporte continuado aos professores e inclusão de tecnologias educacionais eficientes.

Como limitação, reconhecemos que o PIB per capita mede a riqueza geral do município e não o percentual específico carimbado e investido por aluno em educação de base. Para trabalhos futuros, sugere-se expandir a análise cruzando o IDEB com as planilhas do SIOPE (Sistema de Informações sobre Orçamentos Públicos em Educação), permitindo avaliar se a eficiência pedagógica responde melhor ao orçamento vinculado diretamente à pasta escolar.