O Índice de Desenvolvimento da Educação Básica (IDEB) tem como função indicar a qualidade da educação, bem como estabelecer metas para a melhoria do ensino. Para alcançar esses objetivos, ele combina em seu cálculo a taxa de rendimento escolar e o desempenho obtido em exames aplicados pelo Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira (Inep) (Travitzki, 2020).
A taxa de rendimento escolar é obtida por meio do Censo Escolar, realizado anualmente. Para o cálculo da média de desempenho, utilizam-se os resultados da Prova Brasil e do Sistema de Avaliação da Educação Básica (Saeb), que ocorrem a cada dois anos. Esses exames são aplicados a estudantes que estão no final das etapas de ensino, ou seja, nas 4ª e 8ª séries do ensino fundamental e na 3ª série do ensino médio (Travitzki, 2020).
Indicadores educacionais como o IDEB podem ser utilizados como uma ferramenta de monitoramento do sistema de ensino do país. Diante disso, o presente trabalho tem como objetivo principal analisar o desempenho das escolas, levando em consideração as regiões geográficas do Brasil, bem como as medidas de variação e dispersão da taxa de aprovação por região, a média da taxa de aprovação por rede de ensino (pública e privada) e a evolução da taxa de aprovação ao longo dos anos por região.
A presente pesquisa consiste em um estudo exploratório com base em dados secundários. As informações extraídas podem ser obtidas diretamente no site do INEP. No entanto, para este estudo, foram utilizadas as tabelas tratadas e separadas por regiões geográficas, disponibilizadas em Base dos Dados.
Os dados que foram analisados agregam os resultados das avaliações realizadas pelo INEP entre os anos de 2005 a 2021, sendo estratificados por tipo de rede de ensino e por regiões geográficas. As variáveis utilizadas para análise foram: ano, rede de ensino (pública ou privada), região do país (norte, nordeste, centro-oeste, sudeste e sul) e taxa de aprovação. Os dados foram analisados utilizando a linguagem R, na interface RStudio (versão 4.4.1). Foram realizados testes de média, desvio padrão e intervalo de confiança.
A taxa de aprovação por região brasileira ficou entre 89,97 e 94,27,
sendo o Nordeste e o Norte com as menores médias (respectivamente 89,97
e 90,98), e o Sudeste com a maior média (94,27). Portanto, a amplitude
entre as médias das taxas de aprovação nas diferentes regiões
brasileiras é de 4,30 pontos percentuais.
| Região | Média | Desvio Padrão | N | Erro Padrão | IC Inferior | IC Superior |
|---|---|---|---|---|---|---|
| Centro-Oeste | 93.34 | 5.96 | 45 | 0.89 | 91.55 | 95.13 |
| Nordeste | 89.97 | 8.65 | 45 | 1.29 | 87.37 | 92.57 |
| Norte | 90.99 | 7.89 | 45 | 1.18 | 88.62 | 93.36 |
| Sudeste | 94.27 | 4.37 | 45 | 0.65 | 92.96 | 95.58 |
| Sul | 93.44 | 5.79 | 45 | 0.86 | 91.70 | 95.18 |
A rede de ensino que apresentou a maior média de taxa de aprovação
foram as escolas privadas, considerando todo o país, e não levando em
conta cada região.
| Rede de Ensino | Média | Desvio Padrão | N | Erro Padrão | IC Inferior | IC Superior |
|---|---|---|---|---|---|---|
| privada | 96.23 | 2.08 | 135 | 0.18 | 95.88 | 96.59 |
| publica | 86.66 | 7.48 | 90 | 0.79 | 85.09 | 88.22 |
Ainda considerando todo o país, foi possível observar uma diferença
significativa entre as escolas públicas e privadas durante o período
analisado. As escolas privadas apresentam uma taxa de aprovação
constante e elevada, enquanto as escolas públicas, no ano de 2005,
tinham uma baixa taxa de aprovação. No entanto, essa taxa nas escolas
públicas aumentou gradualmente ao longo dos anos, mas ainda assim
revelando um contraste marcante com as escolas privadas.
| Ano | Rede de Ensino | Média | Desvio Padrão | N | Erro Padrão | IC Inferior | IC Superior |
|---|---|---|---|---|---|---|---|
| 2005 | privada | 94.78 | 2.22 | 15 | 0.57 | 93.55 | 96.01 |
| 2005 | publica | 77.29 | 7.49 | 10 | 2.37 | 71.93 | 82.65 |
| 2007 | privada | 95.42 | 1.90 | 15 | 0.49 | 94.37 | 96.47 |
| 2007 | publica | 81.18 | 6.80 | 10 | 2.15 | 76.32 | 86.04 |
| 2009 | privada | 95.26 | 2.01 | 15 | 0.52 | 94.14 | 96.38 |
| 2009 | publica | 83.44 | 6.15 | 10 | 1.95 | 79.04 | 87.84 |
| 2011 | privada | 95.38 | 2.04 | 15 | 0.53 | 94.25 | 96.51 |
| 2011 | publica | 85.95 | 5.80 | 10 | 1.83 | 81.80 | 90.10 |
| 2013 | privada | 95.71 | 1.91 | 15 | 0.49 | 94.65 | 96.77 |
| 2013 | publica | 87.51 | 5.93 | 10 | 1.88 | 83.27 | 91.75 |
| 2015 | privada | 96.19 | 1.74 | 15 | 0.45 | 95.23 | 97.16 |
| 2015 | publica | 88.01 | 5.45 | 10 | 1.72 | 84.11 | 91.91 |
| 2017 | privada | 97.08 | 1.38 | 15 | 0.36 | 96.32 | 97.84 |
| 2017 | publica | 89.31 | 4.85 | 10 | 1.54 | 85.84 | 92.78 |
| 2019 | privada | 97.56 | 1.18 | 15 | 0.31 | 96.90 | 98.22 |
| 2019 | publica | 91.24 | 3.82 | 10 | 1.21 | 88.50 | 93.98 |
| 2021 | privada | 98.73 | 0.41 | 15 | 0.11 | 98.50 | 98.95 |
| 2021 | publica | 95.97 | 1.77 | 10 | 0.56 | 94.71 | 97.23 |
Esse mesmo cenário se repete quando analisamos a evolução da taxa por
região. No entanto, observou-se que nas regiões norte e nordeste, a
diferença entre as taxas de aprovação das escolas públicas e privadas é
maior do que nas regiões do centro-sul do país.
A taxa de aprovação ao longo dos anos foi maior nas escolas privadas quando comparadas com as escolas públicas, tanto no âmbito nacional quanto quando analisada por regiões. As escolas públicas, em todas as regiões, apresentaram uma significativa melhoria em seu desempenho, demonstrando um crescimento ascendente em sua taxa de aprovação. Já as escolas privadas mantiveram as taxas de aprovação mais elevadas no decorrer do período, com mudanças menores, porém de crescimento.
BASE DOS DADOS. Dados do Índice de Desenvolvimento da Educação Básica (Ideb) agregados para o Brasil a nível de regiao-rede-ensino-ano. Base dos Dados. Disponível em: https://basedosdados.org/dataset/96eab476-5d30-459b-82be-f888d4d0d6b9?table=4eca6f7f-721c-4a07-8ee1-3a565f92e4f2.
INEP - Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira. Resultados do Ideb. Inep. Disponível em: https://www.gov.br/inep/pt-br/areas-de-atuacao/pesquisas-estatisticas-e-indicadores/ideb/resultados.
TRAVITZKI, R. Qual é o grau de incerteza do Ideb e por que isso
importa?. Ensaio: Avaliação e Políticas Públicas em Educação, v. 28,
n. 107, p. 500-520, 2020.
# Carregar as bibliotecas necessárias
library("basedosdados")
library(tidyverse)
library(dplyr)
library(readr)
library(ggplot2)
library(tidyr)
library(DataExplorer)
library(ggthemes)
library(gt)
library(knitr)
# Definir o seu projeto no Google Cloud
set_billing_id("projetobasedosdados-425401")
# Carregar os dados direto no R
query <- bdplyr("br_inep_ideb.regiao")
df <- bd_collect(query)
# Filtrar os dados para as redes de ensino pública e privada
dados_filtrados <- df %>%
filter(rede == "publica" | rede == "privada")
# Agrupar os dados por região e calcular a média da taxa de aprovação com medidas de dispersão
taxa_aprovacao_por_regiao <- dados_filtrados %>%
group_by(regiao) %>%
summarize(
media_taxa_aprovacao = mean(taxa_aprovacao, na.rm = TRUE),
sd_taxa_aprovacao = sd(taxa_aprovacao, na.rm = TRUE), # Desvio padrão
n = n() # Número de observações
) %>%
mutate(
se = sd_taxa_aprovacao / sqrt(n), # Erro padrão
ci_lower = media_taxa_aprovacao - qt(1 - 0.05 / 2, df = n - 1) * se, # Limite inferior do IC
ci_upper = media_taxa_aprovacao + qt(1 - 0.05 / 2, df = n - 1) * se # Limite superior do IC
)
# Visualização da média da taxa de aprovação por região com gráfico de barras e intervalos de confiança
ggplot(taxa_aprovacao_por_regiao, aes(x = reorder(regiao, -media_taxa_aprovacao), y = media_taxa_aprovacao, fill = regiao)) +
geom_bar(stat = "identity", show.legend = FALSE) + # Remover legenda redundante
geom_errorbar(aes(ymin = ci_lower, ymax = ci_upper), width = 0.2, color = "black") + # Adicionar barras de erro para os ICs
geom_text(aes(label = round(media_taxa_aprovacao, 2)), vjust = -0.5, color = "black", size = 3.5) + # Adicionar rótulos de valores
labs(
title = "Média da Taxa de Aprovação por Região",
subtitle = "Análise da média de aprovação nas regiões com Intervalos de Confiança",
x = "Região",
y = "Média da Taxa de Aprovação"
) +
theme_minimal(base_size = 14) + # Ajustar o tamanho base da fonte
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16), # Centralizar e negritar o título
plot.subtitle = element_text(hjust = 0.5, size = 14), # Centralizar o subtítulo
axis.text.x = element_text(angle = 45, hjust = 1), # Ajustar a orientação dos rótulos do eixo x
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
panel.grid.major = element_line(color = "grey80", size = 0.5), # Linhas de grade principais
panel.grid.minor = element_line(color = "grey90", size = 0.25) # Linhas de grade secundárias
) +
scale_fill_brewer(palette = "Set1") # Usar uma paleta de cores com bom contraste
# Criar tabela com kable
taxa_aprovacao_por_regiao %>%
mutate(
media_taxa_aprovacao = round(media_taxa_aprovacao, 2),
sd_taxa_aprovacao = round(sd_taxa_aprovacao, 2),
se = round(se, 2),
ci_lower = round(ci_lower, 2),
ci_upper = round(ci_upper, 2)
) %>%
kable(
caption = "Médias da Taxa de Aprovação por Região com Medidas de Variação e Dispersão",
col.names = c("Região", "Média", "Desvio Padrão", "N", "Erro Padrão", "IC Inferior", "IC Superior"),
align = "c"
)
# Agrupamento dos dados por rede de ensino e cálculo da média da taxa de aprovação com medidas de dispersão
taxa_aprovacao_por_rede <- dados_filtrados %>%
group_by(rede) %>%
summarize(
media_taxa_aprovacao = mean(taxa_aprovacao, na.rm = TRUE),
sd_taxa_aprovacao = sd(taxa_aprovacao, na.rm = TRUE), # Desvio padrão
n = n() # Número de observações
) %>%
mutate(
se = sd_taxa_aprovacao / sqrt(n), # Erro padrão
ci_lower = media_taxa_aprovacao - qt(1 - 0.05 / 2, df = n - 1) * se, # Limite inferior do IC
ci_upper = media_taxa_aprovacao + qt(1 - 0.05 / 2, df = n - 1) * se # Limite superior do IC
)
# Visualização da média da taxa de aprovação por rede de ensino com gráfico de barras e intervalos de confiança
ggplot(taxa_aprovacao_por_rede, aes(x = reorder(rede, -media_taxa_aprovacao), y = media_taxa_aprovacao, fill = rede)) +
geom_bar(stat = "identity", show.legend = FALSE) + # Remover legenda redundante
geom_errorbar(aes(ymin = ci_lower, ymax = ci_upper), width = 0.2, color = "black") + # Adicionar barras de erro para os ICs
geom_text(aes(label = round(media_taxa_aprovacao, 2)), vjust = -0.5, color = "black", size = 3.5) + # Adicionar rótulos de valores
labs(
title = "Média da Taxa de Aprovação por Rede de Ensino",
subtitle = "Comparação entre redes públicas e privadas com Intervalos de Confiança",
x = "Rede de Ensino",
y = "Média da Taxa de Aprovação"
) +
theme_minimal(base_size = 14) + # Ajustar o tamanho base da fonte
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16), # Centralizar e negritar o título
plot.subtitle = element_text(hjust = 0.5, size = 14), # Centralizar o subtítulo
axis.text.x = element_text(angle = 0, hjust = 0.5), # Manter os rótulos do eixo x horizontais
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
panel.grid.major = element_line(color = "grey80", size = 0.5), # Linhas de grade principais
panel.grid.minor = element_line(color = "grey90", size = 0.25) # Linhas de grade secundárias
) +
scale_fill_brewer(palette = "Set1") # Usar uma paleta de cores com bom contraste
# Criar tabela com kable
taxa_aprovacao_por_rede %>%
mutate(
media_taxa_aprovacao = round(media_taxa_aprovacao, 2),
sd_taxa_aprovacao = round(sd_taxa_aprovacao, 2),
se = round(se, 2),
ci_lower = round(ci_lower, 2),
ci_upper = round(ci_upper, 2)
) %>%
knitr::kable(
col.names = c("Rede de Ensino", "Média", "Desvio Padrão", "N", "Erro Padrão", "IC Inferior", "IC Superior"),
caption = "Médias da Taxa de Aprovação por Rede de Ensino com Medidas de Variação e Dispersão",
digits = 2,
align = "c"
)
# Agrupamento dos dados por ano e rede de ensino, e cálculo da média da taxa de aprovação com medidas de dispersão
evolucao_taxa_aprovacao <- dados_filtrados %>%
group_by(ano, rede) %>%
summarize(
media_taxa_aprovacao = mean(taxa_aprovacao, na.rm = TRUE),
sd_taxa_aprovacao = sd(taxa_aprovacao, na.rm = TRUE), # Desvio padrão
n = n() # Número de observações
) %>%
mutate(
se = sd_taxa_aprovacao / sqrt(n), # Erro padrão
ci_lower = media_taxa_aprovacao - qt(1 - 0.05 / 2, df = n - 1) * se, # Limite inferior do IC
ci_upper = media_taxa_aprovacao + qt(1 - 0.05 / 2, df = n - 1) * se # Limite superior do IC
)
# Visualização da evolução da taxa de aprovação ao longo dos anos para escolas públicas e privadas
ggplot(evolucao_taxa_aprovacao, aes(x = ano, y = media_taxa_aprovacao, color = rede)) +
geom_line(size = 1) + # Ajustar a espessura das linhas
geom_point(size = 3) + # Ajustar o tamanho dos pontos
geom_errorbar(aes(ymin = ci_lower, ymax = ci_upper), width = 0.2, color = "black") + # Adicionar barras de erro para os ICs
geom_text(aes(label = round(media_taxa_aprovacao, 2)), vjust = -1, hjust = 0.5, size = 3, show.legend = FALSE) + # Adicionar rótulos de valores
labs(
title = "Evolução da Taxa de Aprovação ao Longo dos Anos",
subtitle = "Comparação entre redes públicas e privadas",
x = "Ano",
y = "Média da Taxa de Aprovação",
color = "Rede de Ensino"
) +
theme_minimal(base_size = 14) + # Ajustar o tamanho base da fonte
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16), # Centralizar e negritar o título
plot.subtitle = element_text(hjust = 0.5, size = 14), # Centralizar o subtítulo
axis.text.x = element_text(angle = 45, hjust = 1), # Ajustar a orientação dos rótulos do eixo x
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold"),
legend.position = "bottom", # Posicionar a legenda na parte inferior
legend.title = element_text(face = "bold"), # Negritar o título da legenda
panel.grid.major = element_line(color = "grey80", size = 0.5), # Linhas de grade principais
panel.grid.minor = element_line(color = "grey90", size = 0.25) # Linhas de grade secundárias
) +
scale_color_brewer(palette = "Set1") # Usar uma paleta de cores com bom contraste
# Criar tabela com kable
evolucao_taxa_aprovacao %>%
mutate(
media_taxa_aprovacao = round(media_taxa_aprovacao, 2),
sd_taxa_aprovacao = round(sd_taxa_aprovacao, 2),
se = round(se, 2),
ci_lower = round(ci_lower, 2),
ci_upper = round(ci_upper, 2)
) %>%
knitr::kable(
col.names = c("Ano", "Rede de Ensino", "Média", "Desvio Padrão", "N", "Erro Padrão", "IC Inferior", "IC Superior"),
caption = "Evolução da Taxa de Aprovação por Ano e Rede de Ensino com Medidas de Variação e Dispersão",
digits = 2,
align = "c"
)
# Agrupar os dados por ano, rede de ensino e região, e calcular a média da taxa de aprovação
evolucao_taxa_aprovacao_por_regiao <- dados_filtrados %>%
group_by(ano, rede, regiao) %>%
summarize(media_taxa_aprovacao = mean(taxa_aprovacao, na.rm = TRUE))
# Visualizar a evolução da taxa de aprovação ao longo dos anos para escolas públicas e privadas, por região
ggplot(evolucao_taxa_aprovacao_por_regiao, aes(x = ano, y = media_taxa_aprovacao, color = rede)) +
geom_line(size = 1) + # Ajustar a espessura das linhas
geom_point(size = 2) + # Ajustar o tamanho dos pontos
facet_wrap(~regiao, ncol = 2) + # Dividir os gráficos por região
labs(
title = "Evolução da Taxa de Aprovação por Região",
subtitle = "Dados agrupados por rede de ensino e ano",
x = "Ano",
y = "Média da Taxa de Aprovação",
color = "Rede de Ensino"
) +
theme_minimal(base_size = 14) + # Ajustar o tamanho base da fonte
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16), # Centralizar e negritar o título
plot.subtitle = element_text(hjust = 0.5, size = 14), # Centralizar o subtítulo
axis.text.x = element_text(angle = 45, hjust = 1), # Ajustar a orientação dos rótulos do eixo x
legend.position = "bottom", # Posicionar a legenda na parte inferior
legend.title = element_text(face = "bold"), # Negritar o título da legenda
panel.grid.major = element_line(color = "grey80", size = 0.5), # Linhas de grade principais
panel.grid.minor = element_line(color = "grey90", size = 0.25) # Linhas de grade secundárias
) +
scale_color_brewer(palette = "Set1") # Usar uma paleta de cores com bom contraste