1 Introdução

A educação básica é um dos pilares do desenvolvimento humano e social. Em Igarassu, município histórico do litoral norte de Pernambuco com aproximadamente 120 mil habitantes, compreender como funciona a rede escolar é essencial para orientar políticas públicas eficazes.

Este projeto analisa os Microdados do Censo Escolar da Educação Básica 2024, divulgados pelo INEP, com foco exclusivo nas escolas de Igarassu/PE. O Censo Escolar é o principal levantamento estatístico da educação básica brasileira e reúne informações detalhadas sobre infraestrutura, matrículas e docentes de todas as escolas do país.

Os principais problemas investigados são:

A análise é relevante para gestores públicos municipais e estaduais, secretarias de educação, pais e responsáveis e pesquisadores interessados em diagnósticos educacionais locais. Compreender esses padrões permite identificar onde concentrar investimentos e quais escolas demandam atenção prioritária.

A abordagem empregada envolve filtragem dos microdados nacionais, limpeza e padronização das variáveis, criação de novas variáveis derivadas e análise exploratória com visualizações interativas.

2 Pacotes Requeridos

Os pacotes abaixo são utilizados para importar, limpar, transformar, visualizar e resumir os dados.

library(tidyverse)  # Manipulação e transformação de dados (dplyr, tidyr, ggplot2, readr etc.)
library(janitor)    # Padronização de nomes de colunas e limpeza de tabelas
library(plotly)     # Gráficos interativos a partir de objetos ggplot2
library(DT)         # Tabelas interativas com filtros, ordenação e paginação
library(scales)     # Formatação de eixos, rótulos e percentuais em gráficos
library(knitr)      # Geração do relatório e exibição de tabelas estáticas com kable()

3 Preparação dos Dados

3.1 Fonte dos Dados

Os dados utilizados neste projeto são os Microdados do Censo Escolar da Educação Básica 2024, disponibilizados publicamente pelo INEP — Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira.

3.2 Descrição da Fonte Original

O Censo Escolar é realizado anualmente pelo INEP em parceria com as secretarias estaduais e municipais de educação. A edição de 2024 foi coletada ao longo do ano letivo e publicada em fevereiro de 2025.

O arquivo original (microdados_ed_basica_2024.csv) contém uma linha por escola e 426 variáveis, reunindo em um único registro informações de infraestrutura física, quantitativo de matrículas por nível e modalidade, perfil dos alunos e corpo docente. Diferentemente de edições anteriores do Censo, que separavam essas informações em tabelas distintas (Escolas, Turmas, Matrículas e Docentes), o arquivo de 2024 consolida tudo em uma estrutura desnormalizada por escola.

Algumas peculiaridades importantes da base:

  • O separador de campos é ponto-e-vírgula (;), não vírgula
  • A codificação do arquivo é latin1 (ISO-8859-1)
  • Variáveis categóricas são representadas por códigos numéricos (ex: TP_DEPENDENCIA: 1 = Federal, 2 = Estadual, 3 = Municipal, 4 = Privada)
  • Indicadores de infraestrutura são binários: 0 = ausente, 1 = presente
  • Valores ausentes aparecem como células vazias
  • Escolas paralisadas ou extintas constam na base com TP_SITUACAO_FUNCIONAMENTO igual a 2 ou 3

O município de Igarassu/PE é identificado pelo código IBGE 2606804, verificado diretamente na base.

3.3 Importação e Filtro Inicial

O arquivo nacional possui mais de 200 MB e cobre todas as escolas do Brasil. O primeiro passo é ler o CSV e filtrar imediatamente apenas as escolas de Igarassu, evitando carregar dados desnecessários na memória.

igarassu_raw <- read_csv2(
  file           = "microdados_censo_escolar_2024/dados/microdados_ed_basica_2024.csv",
  locale         = locale(encoding = "latin1"),
  show_col_types = FALSE
) |>
  filter(CO_MUNICIPIO == 2606804)

dim(igarassu_raw)
## [1] 110 426

Antes da limpeza, o recorte de Igarassu contém 110 escolas (incluindo as inativas) e 426 variáveis.

3.4 Seleção das Variáveis de Interesse

Das 426 variáveis disponíveis, foram selecionadas aquelas relevantes para os três eixos de análise do projeto: infraestrutura escolar, perfil das matrículas e corpo docente.

igarassu_sel <- igarassu_raw |>
  select(
    NO_ENTIDADE, CO_ENTIDADE,
    TP_DEPENDENCIA, TP_LOCALIZACAO, TP_SITUACAO_FUNCIONAMENTO,
    IN_INTERNET, IN_INTERNET_ALUNOS, IN_COMPUTADOR,
    IN_EQUIP_MULTIMIDIA, IN_EQUIP_LOUSA_DIGITAL,
    IN_BIBLIOTECA, IN_BIBLIOTECA_SALA_LEITURA,
    IN_LABORATORIO_CIENCIAS, IN_LABORATORIO_INFORMATICA,
    IN_QUADRA_ESPORTES, IN_COZINHA, IN_PATIO_COBERTO,
    IN_AGUA_POTAVEL, IN_ENERGIA_REDE_PUBLICA, IN_ESGOTO_REDE_PUBLICA,
    IN_ACESSIBILIDADE_RAMPAS, IN_ACESSIBILIDADE_INEXISTENTE,
    IN_BANHEIRO_PNE, IN_SALA_ATENDIMENTO_ESPECIAL,
    QT_MAT_BAS, QT_MAT_INF, QT_MAT_FUND, QT_MAT_MED, QT_MAT_EJA,
    QT_MAT_BAS_FEM, QT_MAT_BAS_MASC,
    QT_MAT_BAS_BRANCA, QT_MAT_BAS_PRETA, QT_MAT_BAS_PARDA,
    QT_MAT_BAS_AMARELA, QT_MAT_BAS_INDIGENA,
    QT_DOC_BAS, QT_DOC_FUND, QT_DOC_MED, QT_DOC_EJA,
    QT_SALAS_UTILIZADAS
  )

3.5 Filtragem e Limpeza

igarassu <- igarassu_sel |>
  filter(TP_SITUACAO_FUNCIONAMENTO == 1) |>
  mutate(
    DEPENDENCIA = factor(
      TP_DEPENDENCIA,
      levels = c(1, 2, 3, 4),
      labels = c("Federal", "Estadual", "Municipal", "Privada")
    ),
    LOCALIZACAO = factor(
      TP_LOCALIZACAO,
      levels = c(1, 2),
      labels = c("Urbana", "Rural")
    ),
    across(
      c(IN_INTERNET, IN_INTERNET_ALUNOS, IN_COMPUTADOR,
        IN_EQUIP_MULTIMIDIA, IN_EQUIP_LOUSA_DIGITAL,
        IN_BIBLIOTECA, IN_BIBLIOTECA_SALA_LEITURA,
        IN_LABORATORIO_CIENCIAS, IN_LABORATORIO_INFORMATICA,
        IN_QUADRA_ESPORTES, IN_COZINHA, IN_PATIO_COBERTO,
        IN_AGUA_POTAVEL, IN_ENERGIA_REDE_PUBLICA, IN_ESGOTO_REDE_PUBLICA,
        IN_ACESSIBILIDADE_RAMPAS, IN_ACESSIBILIDADE_INEXISTENTE,
        IN_BANHEIRO_PNE, IN_SALA_ATENDIMENTO_ESPECIAL),
      ~ factor(.x, levels = c(0, 1), labels = c("Não", "Sim"))
    )
  ) |>
  select(-TP_DEPENDENCIA, -TP_LOCALIZACAO, -TP_SITUACAO_FUNCIONAMENTO)

3.6 Criação de Novas Variáveis

igarassu <- igarassu |>
  mutate(
    # Proporção de alunas em relação ao total de matrículas
    PROP_FEMININO = round(QT_MAT_BAS_FEM / QT_MAT_BAS, 3),

    # Proporção de alunos pretos e pardos
    PROP_PRETO_PARDO = round(
      (QT_MAT_BAS_PRETA + QT_MAT_BAS_PARDA) / QT_MAT_BAS, 3
    ),

    # Razão alunos por docente
    RAZAO_ALUNO_DOCENTE = round(QT_MAT_BAS / QT_DOC_BAS, 1),

    # Porte da escola
    PORTE = factor(case_when(
      QT_MAT_BAS <= 100  ~ "Pequena (até 100)",
      QT_MAT_BAS <= 300  ~ "Média (101-300)",
      QT_MAT_BAS <= 600  ~ "Grande (301-600)",
      QT_MAT_BAS > 600   ~ "Muito grande (600+)",
      TRUE               ~ NA_character_
    ), levels = c("Pequena (até 100)", "Média (101-300)",
                  "Grande (301-600)", "Muito grande (600+)")),

    # Indicador de infraestrutura básica completa
    INFRA_BASICA_COMPLETA = case_when(
      IN_AGUA_POTAVEL         == "Sim" &
      IN_ENERGIA_REDE_PUBLICA == "Sim" &
      IN_ESGOTO_REDE_PUBLICA  == "Sim" &
      IN_INTERNET             == "Sim" ~ "Infraestrutura completa",
      TRUE                             ~ "Infraestrutura incompleta"
    )
  )

3.7 Tratamento de Valores Ausentes

resumo_ausentes <- igarassu |>
  summarise(across(everything(), ~ sum(is.na(.)))) |>
  pivot_longer(cols = everything(),
               names_to  = "variavel",
               values_to = "valores_ausentes") |>
  arrange(desc(valores_ausentes))

total_ausentes <- sum(resumo_ausentes$valores_ausentes)

if (total_ausentes == 0) {
  cat("Nenhum valor ausente encontrado na base. Todas as",
      nrow(igarassu), "escolas possuem dados completos nas",
      ncol(igarassu), "variáveis selecionadas.")
} else {
  resumo_ausentes |>
    filter(valores_ausentes > 0) |>
    mutate(percentual_ausente = percent(valores_ausentes / nrow(igarassu), accuracy = 0.1)) |>
    kable(col.names = c("Variável", "Valores Ausentes", "% Ausente"),
          caption   = "Variáveis com valores ausentes")
}
## Nenhum valor ausente encontrado na base. Todas as 85 escolas possuem dados completos nas 45 variáveis selecionadas.

Após verificação, a base não apresenta valores ausentes nas variáveis selecionadas. Os indicadores binários do Censo Escolar são preenchidos pelo INEP para todas as escolas em funcionamento, e as escolas paralisadas ou extintas já foram removidas na etapa anterior.

# Proporções calculadas para escolas sem matrículas geram NaN — convertido para NA
igarassu <- igarassu |>
  mutate(
    PROP_FEMININO       = ifelse(is.nan(PROP_FEMININO),      NA, PROP_FEMININO),
    PROP_PRETO_PARDO    = ifelse(is.nan(PROP_PRETO_PARDO),   NA, PROP_PRETO_PARDO),
    RAZAO_ALUNO_DOCENTE = ifelse(
      is.nan(RAZAO_ALUNO_DOCENTE) | is.infinite(RAZAO_ALUNO_DOCENTE),
      NA, RAZAO_ALUNO_DOCENTE)
  )

3.8 Conjunto de Dados Final

Após as etapas de limpeza e transformação, a base final contém 85 escolas ativas em Igarassu/PE e 45 variáveis.

igarassu |>
  select(NO_ENTIDADE, DEPENDENCIA, LOCALIZACAO,
         IN_INTERNET, QT_MAT_BAS, QT_DOC_BAS,
         PORTE, INFRA_BASICA_COMPLETA) |>
  arrange(DEPENDENCIA, NO_ENTIDADE) |>
  head(20) |>
  kable(
    col.names = c("Escola", "Rede", "Localização", "Internet",
                  "Matrículas", "Docentes", "Porte", "Infraestrutura básica"),
    caption   = "Amostra do conjunto de dados limpo — Escolas ativas de Igarassu/PE (2024)"
  )
Amostra do conjunto de dados limpo — Escolas ativas de Igarassu/PE (2024)
Escola Rede Localização Internet Matrículas Docentes Porte Infraestrutura básica
IFPE - CAMPUS IGARASSU Federal Urbana Sim 191 25 Média (101-300) Infraestrutura incompleta
ESCOLA BARAO DE VERA CRUZ Estadual Urbana Sim 718 24 Muito grande (600+) Infraestrutura incompleta
ESCOLA DE REFERENCIA EM ENSINO FUNDAMENTAL DESEMBARGADOR CARLOS XAVIER PAES BARRETTO Estadual Urbana Sim 273 14 Média (101-300) Infraestrutura incompleta
ESCOLA DE REFERENCIA EM ENSINO FUNDAMENTAL E MEDIO NOVA CRUZ Estadual Rural Sim 765 52 Muito grande (600+) Infraestrutura incompleta
ESCOLA DE REFERENCIA EM ENSINO MEDIO BRASILINO JOSE DE CARVALHO Estadual Urbana Sim 497 25 Grande (301-600) Infraestrutura incompleta
ESCOLA DE REFERENCIA EM ENSINO MEDIO EURICO PFISTERER Estadual Urbana Sim 463 22 Grande (301-600) Infraestrutura incompleta
ESCOLA DE REFERENCIA EM ENSINO MEDIO JOAO PESSOA GUERRA Estadual Urbana Sim 1138 42 Muito grande (600+) Infraestrutura completa
ESCOLA DE REFERENCIA EM ENSINO MEDIO SANTOS COSME E DAMIAO Estadual Urbana Sim 1164 40 Muito grande (600+) Infraestrutura incompleta
ESCOLA DOM HELDER CAMARA Estadual Urbana Sim 348 11 Grande (301-600) Infraestrutura incompleta
ESCOLA PROFESSOR ADERBAL JUREMA - MN Estadual Urbana Sim 302 12 Grande (301-600) Infraestrutura incompleta
ESCOLA TECNICA ESTADUAL JURANDIR BEZERRA LINS Estadual Urbana Sim 655 31 Muito grande (600+) Infraestrutura completa
CENTRO DE EDUCACAO INTEGRAL DE IGARASSU CECILIA MARIA VAZ CURADO RIBEIRO Municipal Urbana Sim 450 19 Grande (301-600) Infraestrutura incompleta
CENTRO DE EDUCACAO INTEGRAL FERNANDO HENRIQUE LUCENA Municipal Urbana Sim 591 24 Grande (301-600) Infraestrutura incompleta
CENTRO DE EDUCACAO INTEGRAL SAO LUIZ Municipal Rural Sim 205 11 Média (101-300) Infraestrutura incompleta
CENTRO DE PRE ESCOLAR ARTUR CARLOS DE MELO Municipal Urbana Sim 187 10 Média (101-300) Infraestrutura incompleta
CRECHE TIA EMOCY KRAUSE Municipal Urbana Sim 149 9 Média (101-300) Infraestrutura incompleta
CRECHE TIA JANE MAGALHAES Municipal Urbana Sim 134 9 Média (101-300) Infraestrutura incompleta
CRECHE TIA NAI Municipal Rural Sim 89 5 Pequena (até 100) Infraestrutura completa
ESCOLA ADOLFO BROL Municipal Urbana Sim 262 11 Média (101-300) Infraestrutura incompleta
ESCOLA ANA BANDEIRA DE MENEZES Municipal Rural Sim 161 8 Média (101-300) Infraestrutura incompleta

3.9 Tabela Interativa da Base Limpa

igarassu |>
  select(NO_ENTIDADE, DEPENDENCIA, LOCALIZACAO,
         IN_INTERNET, IN_LABORATORIO_INFORMATICA,
         IN_BIBLIOTECA, IN_QUADRA_ESPORTES,
         QT_MAT_BAS, QT_DOC_BAS,
         PORTE, INFRA_BASICA_COMPLETA) |>
  arrange(DEPENDENCIA, NO_ENTIDADE) |>
  datatable(
    caption  = "Tabela interativa — Escolas ativas de Igarassu/PE (Censo Escolar 2024)",
    colnames = c("Escola", "Rede", "Localização", "Internet",
                 "Lab. Informática", "Biblioteca", "Quadra Esportiva",
                 "Matrículas", "Docentes", "Porte", "Infraestrutura básica"),
    options  = list(
      pageLength = 10, scrollX = TRUE,
      language   = list(url = "//cdn.datatables.net/plug-ins/1.10.11/i18n/Portuguese-Brasil.json")
    )
  )

3.10 Resumo das Variáveis de Interesse

tibble(
  variavel = c(
    "NO_ENTIDADE", "DEPENDENCIA", "LOCALIZACAO",
    "IN_INTERNET", "IN_LABORATORIO_INFORMATICA", "IN_BIBLIOTECA",
    "IN_QUADRA_ESPORTES", "IN_AGUA_POTAVEL",
    "IN_ENERGIA_REDE_PUBLICA", "IN_ESGOTO_REDE_PUBLICA",
    "IN_ACESSIBILIDADE_INEXISTENTE", "IN_BANHEIRO_PNE",
    "QT_MAT_BAS", "QT_MAT_INF", "QT_MAT_FUND", "QT_MAT_MED", "QT_MAT_EJA",
    "QT_DOC_BAS", "QT_SALAS_UTILIZADAS",
    "PROP_FEMININO", "PROP_PRETO_PARDO",
    "RAZAO_ALUNO_DOCENTE", "PORTE", "INFRA_BASICA_COMPLETA"
  ),
  descricao = c(
    "Nome da escola",
    "Rede de ensino (Federal, Estadual, Municipal ou Privada)",
    "Localização da escola (Urbana ou Rural)",
    "Possui acesso à internet",
    "Possui laboratório de informática",
    "Possui biblioteca ou sala de leitura",
    "Possui quadra de esportes",
    "Possui água potável",
    "Possui energia elétrica da rede pública",
    "Possui esgoto ligado à rede pública",
    "Não possui nenhum recurso de acessibilidade",
    "Possui banheiro adaptado para PNE",
    "Total de matrículas na educação básica",
    "Matrículas na Educação Infantil",
    "Matrículas no Ensino Fundamental",
    "Matrículas no Ensino Médio",
    "Matrículas na EJA (Educação de Jovens e Adultos)",
    "Total de docentes na educação básica",
    "Número de salas de aula utilizadas",
    "Proporção de alunas (criada: QT_MAT_BAS_FEM / QT_MAT_BAS)",
    "Proporção de alunos pretos e pardos (criada a partir das variáveis de raça)",
    "Razão de alunos por docente (criada: QT_MAT_BAS / QT_DOC_BAS)",
    "Porte da escola por número de matrículas (variável criada)",
    "Indica se a escola possui os 4 itens básicos de infraestrutura (variável criada)"
  ),
  tipo = c(
    "Categórica", "Categórica (fator)", "Categórica (fator)",
    "Categórica (fator)", "Categórica (fator)", "Categórica (fator)",
    "Categórica (fator)", "Categórica (fator)",
    "Categórica (fator)", "Categórica (fator)",
    "Categórica (fator)", "Categórica (fator)",
    "Numérica inteira", "Numérica inteira", "Numérica inteira",
    "Numérica inteira", "Numérica inteira",
    "Numérica inteira", "Numérica inteira",
    "Numérica decimal", "Numérica decimal",
    "Numérica decimal", "Categórica ordinal (fator)",
    "Categórica (fator)"
  )
) |>
  kable(col.names = c("Variável", "Descrição", "Tipo"),
        caption   = "Descrição das variáveis de interesse após o pré-processamento")
Descrição das variáveis de interesse após o pré-processamento
Variável Descrição Tipo
NO_ENTIDADE Nome da escola Categórica
DEPENDENCIA Rede de ensino (Federal, Estadual, Municipal ou Privada) Categórica (fator)
LOCALIZACAO Localização da escola (Urbana ou Rural) Categórica (fator)
IN_INTERNET Possui acesso à internet Categórica (fator)
IN_LABORATORIO_INFORMATICA Possui laboratório de informática Categórica (fator)
IN_BIBLIOTECA Possui biblioteca ou sala de leitura Categórica (fator)
IN_QUADRA_ESPORTES Possui quadra de esportes Categórica (fator)
IN_AGUA_POTAVEL Possui água potável Categórica (fator)
IN_ENERGIA_REDE_PUBLICA Possui energia elétrica da rede pública Categórica (fator)
IN_ESGOTO_REDE_PUBLICA Possui esgoto ligado à rede pública Categórica (fator)
IN_ACESSIBILIDADE_INEXISTENTE Não possui nenhum recurso de acessibilidade Categórica (fator)
IN_BANHEIRO_PNE Possui banheiro adaptado para PNE Categórica (fator)
QT_MAT_BAS Total de matrículas na educação básica Numérica inteira
QT_MAT_INF Matrículas na Educação Infantil Numérica inteira
QT_MAT_FUND Matrículas no Ensino Fundamental Numérica inteira
QT_MAT_MED Matrículas no Ensino Médio Numérica inteira
QT_MAT_EJA Matrículas na EJA (Educação de Jovens e Adultos) Numérica inteira
QT_DOC_BAS Total de docentes na educação básica Numérica inteira
QT_SALAS_UTILIZADAS Número de salas de aula utilizadas Numérica inteira
PROP_FEMININO Proporção de alunas (criada: QT_MAT_BAS_FEM / QT_MAT_BAS) Numérica decimal
PROP_PRETO_PARDO Proporção de alunos pretos e pardos (criada a partir das variáveis de raça) Numérica decimal
RAZAO_ALUNO_DOCENTE Razão de alunos por docente (criada: QT_MAT_BAS / QT_DOC_BAS) Numérica decimal
PORTE Porte da escola por número de matrículas (variável criada) Categórica ordinal (fator)
INFRA_BASICA_COMPLETA Indica se a escola possui os 4 itens básicos de infraestrutura (variável criada) Categórica (fator)

3.11 Estatísticas Descritivas Iniciais

tibble(
  indicador = c(
    "Escolas ativas em Igarassu/PE",
    "Escolas da rede pública",
    "Escolas da rede privada",
    "Escolas em zona urbana",
    "Escolas em zona rural",
    "Total de matrículas na educação básica",
    "Total de docentes na educação básica",
    "Média de alunos por escola",
    "Média de docentes por escola",
    "Média de alunos por docente",
    "Escolas com internet",
    "Escolas com laboratório de informática",
    "Escolas com biblioteca",
    "Escolas com infraestrutura básica completa"
  ),
  valor = c(
    nrow(igarassu),
    sum(igarassu$DEPENDENCIA %in% c("Federal","Estadual","Municipal")),
    sum(igarassu$DEPENDENCIA == "Privada"),
    sum(igarassu$LOCALIZACAO == "Urbana"),
    sum(igarassu$LOCALIZACAO == "Rural"),
    sum(igarassu$QT_MAT_BAS,  na.rm = TRUE),
    sum(igarassu$QT_DOC_BAS,  na.rm = TRUE),
    round(mean(igarassu$QT_MAT_BAS, na.rm = TRUE), 1),
    round(mean(igarassu$QT_DOC_BAS, na.rm = TRUE), 1),
    round(mean(igarassu$RAZAO_ALUNO_DOCENTE, na.rm = TRUE), 1),
    paste0(sum(igarassu$IN_INTERNET == "Sim"),
           " (", percent(mean(igarassu$IN_INTERNET == "Sim"), accuracy = 0.1), ")"),
    paste0(sum(igarassu$IN_LABORATORIO_INFORMATICA == "Sim"),
           " (", percent(mean(igarassu$IN_LABORATORIO_INFORMATICA == "Sim"), accuracy = 0.1), ")"),
    paste0(sum(igarassu$IN_BIBLIOTECA == "Sim"),
           " (", percent(mean(igarassu$IN_BIBLIOTECA == "Sim"), accuracy = 0.1), ")"),
    paste0(sum(igarassu$INFRA_BASICA_COMPLETA == "Infraestrutura completa"),
           " (", percent(mean(igarassu$INFRA_BASICA_COMPLETA == "Infraestrutura completa"), accuracy = 0.1), ")")
  )
) |>
  kable(col.names = c("Indicador", "Valor"),
        caption   = "Resumo geral da educação básica em Igarassu/PE — Censo Escolar 2024")
Resumo geral da educação básica em Igarassu/PE — Censo Escolar 2024
Indicador Valor
Escolas ativas em Igarassu/PE 85
Escolas da rede pública 60
Escolas da rede privada 25
Escolas em zona urbana 59
Escolas em zona rural 26
Total de matrículas na educação básica 26561
Total de docentes na educação básica 1175
Média de alunos por escola 312.5
Média de docentes por escola 13.8
Média de alunos por docente 21.7
Escolas com internet 83 (97.6%)
Escolas com laboratório de informática 19 (22.4%)
Escolas com biblioteca 40 (47.1%)
Escolas com infraestrutura básica completa 24 (28.2%)

3.12 Distribuição por Rede de Ensino e Localização

igarassu |>
  count(DEPENDENCIA, LOCALIZACAO, name = "n_escolas") |>
  mutate(percentual = percent(n_escolas / sum(n_escolas), accuracy = 0.1)) |>
  kable(col.names = c("Rede", "Localização", "Nº de Escolas", "% do Total"),
        caption   = "Distribuição das escolas ativas por rede e localização — Igarassu/PE (2024)")
Distribuição das escolas ativas por rede e localização — Igarassu/PE (2024)
Rede Localização Nº de Escolas % do Total
Federal Urbana 1 1.2%
Estadual Urbana 9 10.6%
Estadual Rural 1 1.2%
Municipal Urbana 25 29.4%
Municipal Rural 24 28.2%
Privada Urbana 24 28.2%
Privada Rural 1 1.2%

4 Análise Exploratória dos Dados

4.1 Infraestrutura: disparidade entre redes pública e privada

A comparação de infraestrutura entre as redes é um dos eixos centrais deste projeto. Para isso, foram selecionados os principais itens de conectividade, espaços pedagógicos e saneamento e calculada a proporção de escolas com cada item, separando por rede.

# Criar tabela longa com os indicadores de infraestrutura por escola
infra_long <- igarassu |>
  select(DEPENDENCIA,
         `Internet`            = IN_INTERNET,
         `Lab. Informática`    = IN_LABORATORIO_INFORMATICA,
         `Lab. Ciências`       = IN_LABORATORIO_CIENCIAS,
         `Biblioteca`          = IN_BIBLIOTECA,
         `Quadra Esportiva`    = IN_QUADRA_ESPORTES,
         `Água Potável`        = IN_AGUA_POTAVEL,
         `Energia (rede)`      = IN_ENERGIA_REDE_PUBLICA,
         `Esgoto (rede)`       = IN_ESGOTO_REDE_PUBLICA) |>
  # Agrupar pública vs privada
  mutate(REDE = ifelse(DEPENDENCIA == "Privada", "Privada", "Pública")) |>
  select(-DEPENDENCIA) |>
  pivot_longer(-REDE, names_to = "item", values_to = "possui") |>
  group_by(REDE, item) |>
  summarise(pct = mean(possui == "Sim") * 100, .groups = "drop")

# Gráfico de barras agrupadas interativo
p_infra <- infra_long |>
  ggplot(aes(x = reorder(item, pct), y = pct, fill = REDE,
             text = paste0(item, "\n", REDE, ": ", round(pct, 0), "%"))) +
  geom_col(position = "dodge", width = 0.7) +
  coord_flip() +
  scale_fill_manual(values = c("Pública" = "#2c7bb6", "Privada" = "#d7191c")) +
  scale_y_continuous(labels = label_percent(scale = 1), limits = c(0, 110)) +
  labs(title    = "Infraestrutura escolar por rede — Igarassu/PE (2024)",
       subtitle = "Percentual de escolas com cada item de infraestrutura",
       x = NULL, y = "% de escolas com o item", fill = "Rede") +
  theme_minimal(base_size = 12)

ggplotly(p_infra, tooltip = "text")

Os dados revelam uma disparidade expressiva entre as redes. No saneamento, apenas 28% das escolas públicas possuem esgoto ligado à rede pública, contra 92% das privadas. Na energia elétrica da rede pública, a diferença é ainda maior: 15% das públicas contra 60% das privadas — o que indica que a maior parte das escolas municipais de Igarassu depende de outras fontes de energia. Em conectividade, 57% das públicas têm internet, enquanto nas privadas esse índice chega a 92%. Já em espaços pedagógicos como laboratórios e bibliotecas, as proporções são baixas em ambas as redes, com leve vantagem privada.

4.2 Distribuição das matrículas por nível de ensino

O Ensino Fundamental concentra a maior parte das matrículas em Igarassu. Para visualizar essa distribuição, foram somadas as matrículas de todas as escolas por nível e calculada a participação percentual de cada um.

# Criar dataframe com matrículas por nível
niveis <- igarassu |>
  summarise(
    `Ed. Infantil`  = sum(QT_MAT_INF,  na.rm = TRUE),
    `Ens. Fundamental` = sum(QT_MAT_FUND, na.rm = TRUE),
    `Ens. Médio`    = sum(QT_MAT_MED,  na.rm = TRUE),
    `EJA`           = sum(QT_MAT_EJA,  na.rm = TRUE)
  ) |>
  pivot_longer(everything(), names_to = "nivel", values_to = "matriculas") |>
  mutate(
    pct   = matriculas / sum(matriculas),
    label = paste0(nivel, "\n", comma(matriculas), " (", percent(pct, accuracy = 0.1), ")")
  )

p_niveis <- niveis |>
  ggplot(aes(x = reorder(nivel, -matriculas), y = matriculas, fill = nivel,
             text = paste0(nivel, ": ", comma(matriculas), " matrículas (",
                           percent(pct, accuracy = 0.1), ")"))) +
  geom_col(width = 0.6, show.legend = FALSE) +
  scale_fill_brewer(palette = "Blues", direction = -1) +
  scale_y_continuous(labels = comma) +
  labs(title    = "Matrículas por nível de ensino — Igarassu/PE (2024)",
       subtitle = "Total de alunos matriculados em cada etapa da educação básica",
       x = NULL, y = "Total de matrículas") +
  theme_minimal(base_size = 12)

ggplotly(p_niveis, tooltip = "text")

O Ensino Fundamental responde por 61,9% das matrículas (16.429 alunos), seguido pela Educação Infantil com 15,6% (4.138), Ensino Médio com 13,9% (3.688) e EJA com 7,3% (1.939). A concentração no Fundamental reflete tanto a estrutura etária do município quanto o fato de a rede municipal ser responsável pela maior parte das escolas de anos iniciais e finais.

4.3 Perfil racial dos alunos

A base do Censo Escolar registra a autodeclaração racial de cada matrícula. Esse dado permite traçar o perfil étnico-racial da educação básica em Igarassu.

racial <- igarassu |>
  summarise(
    Branca   = sum(QT_MAT_BAS_BRANCA,   na.rm = TRUE),
    Preta    = sum(QT_MAT_BAS_PRETA,    na.rm = TRUE),
    Parda    = sum(QT_MAT_BAS_PARDA,    na.rm = TRUE),
    Amarela  = sum(QT_MAT_BAS_AMARELA,  na.rm = TRUE),
    Indígena = sum(QT_MAT_BAS_INDIGENA, na.rm = TRUE)
  ) |>
  pivot_longer(everything(), names_to = "raca", values_to = "matriculas") |>
  mutate(
    pct = matriculas / sum(matriculas),
    raca = factor(raca, levels = c("Parda","Branca","Preta","Amarela","Indígena"))
  )

p_racial <- racial |>
  ggplot(aes(x = reorder(raca, -matriculas), y = matriculas, fill = raca,
             text = paste0(raca, ": ", comma(matriculas),
                           " (", percent(pct, accuracy = 0.1), ")"))) +
  geom_col(width = 0.6, show.legend = FALSE) +
  scale_fill_manual(values = c(
    "Parda"    = "#e08214",
    "Branca"   = "#7fbfff",
    "Preta"    = "#4d4d4d",
    "Amarela"  = "#f7e25a",
    "Indígena" = "#74c476"
  )) +
  scale_y_continuous(labels = comma) +
  labs(title    = "Perfil racial das matrículas — Igarassu/PE (2024)",
       subtitle = "Distribuição de alunos por cor/raça autodeclarada",
       x = NULL, y = "Total de matrículas") +
  theme_minimal(base_size = 12)

ggplotly(p_racial, tooltip = "text")

A maioria dos alunos de Igarassu é parda (60,2%), seguida de branca (13,5%), preta (4,9%) e com parcelas menores de amarela e indígena. Somando pretos e pardos, chega-se a 65,1% das matrículas — dado condizente com o perfil demográfico do nordeste brasileiro. Esse contexto reforça a importância de políticas de equidade racial no planejamento educacional do município.

4.4 Distribuição de docentes e razão aluno-docente

A razão entre alunos e docentes é um indicador importante de carga de trabalho e qualidade potencial do ensino. A variável RAZAO_ALUNO_DOCENTE foi criada a partir das colunas QT_MAT_BAS e QT_DOC_BAS.

p_docentes <- igarassu |>
  filter(!is.na(RAZAO_ALUNO_DOCENTE) & RAZAO_ALUNO_DOCENTE > 0) |>
  mutate(REDE = ifelse(DEPENDENCIA == "Privada", "Privada", "Pública")) |>
  ggplot(aes(x = REDE, y = RAZAO_ALUNO_DOCENTE, fill = REDE,
             text = paste0("Escola: ", NO_ENTIDADE,
                           "\nRede: ", REDE,
                           "\nRazão: ", RAZAO_ALUNO_DOCENTE, " alunos/docente"))) +
  geom_boxplot(alpha = 0.7, outlier.shape = NA) +
  geom_jitter(width = 0.15, alpha = 0.5, size = 1.5, color = "gray30") +
  scale_fill_manual(values = c("Pública" = "#2c7bb6", "Privada" = "#d7191c")) +
  labs(title    = "Razão alunos por docente — Igarassu/PE (2024)",
       subtitle = "Distribuição por escola, separada por rede (pública vs privada)",
       x = NULL, y = "Alunos por docente", fill = "Rede") +
  theme_minimal(base_size = 12) +
  theme(legend.position = "none")

ggplotly(p_docentes, tooltip = "text")

A razão média aluno-docente é de 22,9 nas escolas públicas e 21,8 nas privadas — valores próximos, mas com distribuições distintas. As escolas públicas apresentam maior variabilidade, com casos extremos acima de 35 alunos por docente, indicando sobrecarga pontual em algumas unidades. A dispersão dos pontos no gráfico permite identificar individualmente as escolas fora do padrão.

4.5 Porte das escolas e infraestrutura básica completa

A combinação do porte da escola com o indicador de infraestrutura completa revela se as escolas maiores — que atendem mais alunos — estão melhor ou pior equipadas.

porte_infra <- igarassu |>
  filter(!is.na(PORTE)) |>
  count(PORTE, INFRA_BASICA_COMPLETA) |>
  group_by(PORTE) |>
  mutate(pct = n / sum(n)) |>
  ungroup()

p_porte <- porte_infra |>
  ggplot(aes(x = PORTE, y = pct, fill = INFRA_BASICA_COMPLETA,
             text = paste0(PORTE, "\n", INFRA_BASICA_COMPLETA,
                           ": ", n, " escolas (", percent(pct, accuracy = 0.1), ")"))) +
  geom_col(position = "fill", width = 0.6) +
  scale_y_continuous(labels = label_percent()) +
  scale_fill_manual(values = c("Infraestrutura completa"   = "#1a9641",
                                "Infraestrutura incompleta" = "#d7191c")) +
  labs(title    = "Infraestrutura básica completa por porte da escola — Igarassu/PE (2024)",
       subtitle = "Proporção de escolas com os 4 itens básicos: água, energia, esgoto e internet",
       x = "Porte da escola", y = "Proporção", fill = NULL) +
  theme_minimal(base_size = 12) +
  theme(legend.position = "bottom")

ggplotly(p_porte, tooltip = "text")

As escolas de médio e grande porte tendem a ter maior proporção de infraestrutura básica completa, o que faz sentido dado que costumam ser as unidades mais antigas e consolidadas da rede estadual e municipal. As escolas pequenas — em geral creches e pré-escolas municipais — apresentam as maiores lacunas, especialmente na ausência de esgoto da rede pública e energia elétrica da rede pública.

4.6 Tabela-resumo: infraestrutura por rede (comparativo completo)

igarassu |>
  mutate(REDE = ifelse(DEPENDENCIA == "Privada", "Privada", "Pública")) |>
  group_by(REDE) |>
  summarise(
    `N. escolas`        = n(),
    `Internet (%)`      = percent(mean(IN_INTERNET             == "Sim"), accuracy = 1),
    `Água potável (%)`  = percent(mean(IN_AGUA_POTAVEL          == "Sim"), accuracy = 1),
    `Energia rede (%)`  = percent(mean(IN_ENERGIA_REDE_PUBLICA  == "Sim"), accuracy = 1),
    `Esgoto rede (%)`   = percent(mean(IN_ESGOTO_REDE_PUBLICA   == "Sim"), accuracy = 1),
    `Biblioteca (%)`    = percent(mean(IN_BIBLIOTECA             == "Sim"), accuracy = 1),
    `Lab. Info. (%)`    = percent(mean(IN_LABORATORIO_INFORMATICA == "Sim"), accuracy = 1),
    `Quadra (%)`        = percent(mean(IN_QUADRA_ESPORTES        == "Sim"), accuracy = 1),
    `Infra completa (%)` = percent(mean(INFRA_BASICA_COMPLETA == "Infraestrutura completa"), accuracy = 1)
  ) |>
  kable(caption = "Comparativo de infraestrutura entre redes pública e privada — Igarassu/PE (2024)")
Comparativo de infraestrutura entre redes pública e privada — Igarassu/PE (2024)
REDE N. escolas Internet (%) Água potável (%) Energia rede (%) Esgoto rede (%) Biblioteca (%) Lab. Info. (%) Quadra (%) Infra completa (%)
Privada 25 92% 100% 100% 60% 92% 28% 24% 60%
Pública 60 100% 100% 100% 15% 28% 20% 20% 15%

5 Conclusões

5.1 O problema abordado

Este projeto investigou a realidade da educação básica no município de Igarassu/PE a partir dos Microdados do Censo Escolar 2024. O objetivo central foi compreender as disparidades de infraestrutura entre redes pública e privada, o perfil das matrículas por nível de ensino e o comportamento da força docente no município.

5.2 Como o problema foi abordado

Foram utilizados os microdados nacionais do INEP, filtrados pelo código IBGE 2606804 (Igarassu/PE), resultando em 85 escolas ativas. O pré-processamento incluiu seleção de variáveis, conversão de fatores, criação de quatro variáveis derivadas (proporção de alunas, proporção de pretos e pardos, razão aluno-docente e porte da escola) e um indicador sintético de infraestrutura básica completa. A análise exploratória foi conduzida com gráficos interativos via plotly e tabelas via DT e kable.

5.3 Principais achados

A análise revelou três achados de maior relevância. Primeiro, a infraestrutura de saneamento e energia é o principal gargalo da rede pública de Igarassu: apenas 28% das escolas públicas têm esgoto ligado à rede pública e apenas 15% têm energia da rede pública, contra 92% e 60% nas privadas, respectivamente. Segundo, o Ensino Fundamental concentra 61,9% das matrículas do município, confirmando que a demanda por vagas se distribui predominantemente nessa etapa. Terceiro, o perfil racial das matrículas é majoritariamente pardo (60,2%), com 65,1% dos alunos se autodeclarando pretos ou pardos — dado relevante para o desenho de políticas de equidade. A razão aluno-docente é semelhante entre redes (22,9 pública vs 21,8 privada), mas a rede pública apresenta maior variabilidade com casos extremos que merecem atenção.

5.4 Implicações para os potenciais clientes

Para gestores municipais e a secretaria de educação de Igarassu, os resultados indicam que o investimento prioritário deve ser na adequação do saneamento e da rede elétrica das escolas públicas, especialmente nas unidades de menor porte. A conectividade à internet, embora melhor que outros indicadores, ainda deixa 43% das escolas públicas sem acesso — o que compromete qualquer política de tecnologia educacional. Para pais e pesquisadores, a base de dados limpa e documentada neste projeto pode servir de ponto de partida para análises longitudinais comparando Igarassu com municípios vizinhos.

5.5 Limitações e possibilidades de melhoria

Este projeto possui algumas limitações importantes. O Censo Escolar não mede desempenho acadêmico — portanto, não é possível afirmar que escolas com melhor infraestrutura produzem melhores resultados de aprendizagem. Além disso, os dados são declaratórios: cada escola informa suas próprias condições, o que pode introduzir imprecisões. A ausência de dados geográficos detalhados (coordenadas) nas versões mais recentes do Censo impediu a produção de mapas de distribuição espacial das escolas. Para trabalhos futuros, recomenda-se cruzar esses dados com os resultados do SAEB (Sistema de Avaliação da Educação Básica) e com os indicadores socioeconômicos do IBGE para obter uma visão mais completa da relação entre infraestrutura, perfil socioeconômico e desempenho escolar em Igarassu.