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.
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()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.
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:
;), não
vírgulalatin1 (ISO-8859-1)TP_DEPENDENCIA: 1 = Federal, 2 = Estadual, 3 = Municipal, 4
= Privada)TP_SITUACAO_FUNCIONAMENTO igual a 2 ou 3O município de Igarassu/PE é identificado pelo código IBGE 2606804, verificado diretamente na base.
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.
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
)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)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"
)
)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)
)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)"
)| 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 |
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")
)
)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")| 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) |
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")| 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%) |
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)")| 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% |
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.
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.
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.
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.
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.
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)")| 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% |
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.
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.
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.
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.
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.