A análise estatística é uma ferramenta importante para compreender dados e identificar padrões que podem auxiliar na tomada de decisões. Neste relatório, será realizada uma análise estatística de um banco de dados contendo informações sobre alunos, considerando variáveis relacionadas ao desempenho escolar e às características dos estudantes.
O objetivo é utilizar recursos do R e do RStudio para organizar, analisar e representar os dados, buscando identificar possíveis relações entre frequência escolar, desempenho acadêmico, turno de estudo, escolaridade da mãe e acesso à internet.
library(ggplot2)
library(dplyr)
library(knitr)
pasta_relatorio <- dirname(knitr::current_input(dir = TRUE))
pasta_relatorio <- normalizePath(
pasta_relatorio,
winslash = "/",
mustWork = FALSE
)
arquivo_principal <- file.path(
pasta_relatorio,
"dados_alunos.csv"
)
arquivo_alternativo <- file.path(
pasta_relatorio,
"dados_alunos.csv.csv"
)
if (file.exists(arquivo_principal)) {
arquivo_dados <- arquivo_principal
} else if (file.exists(arquivo_alternativo)) {
arquivo_dados <- arquivo_alternativo
} else {
stop(
paste0(
"Nenhum arquivo de dados foi encontrado.\n",
"O relatório procurou por 'dados_alunos.csv' ou 'dados_alunos.csv.csv'.\n",
"Pasta procurada: ",
pasta_relatorio
)
)
}
dados_alunos <- read.csv2(
arquivo_dados,
header = TRUE,
dec = ",",
stringsAsFactors = FALSE,
check.names = FALSE
)
if (!all(c(
"faltas",
"nota_media",
"turno",
"escolaridade_mae",
"acesso_internet"
) %in% names(dados_alunos))) {
stop(
paste0(
"As colunas esperadas não foram encontradas no arquivo CSV.\n",
"Colunas encontradas: ",
paste(names(dados_alunos), collapse = ", ")
)
)
}
dados_alunos$faltas <- as.numeric(
gsub(",", ".", as.character(dados_alunos$faltas), fixed = TRUE)
)
dados_alunos$nota_media <- as.numeric(
gsub(",", ".", as.character(dados_alunos$nota_media), fixed = TRUE)
)
dados_alunos$turno <- as.character(dados_alunos$turno)
dados_alunos$escolaridade_mae <- as.character(dados_alunos$escolaridade_mae)
dados_alunos$acesso_internet <- as.character(dados_alunos$acesso_internet)
head(dados_alunos)
## faltas nota_media turno escolaridade_mae acesso_internet
## 1 11 10.0 Vespertino Médio Sim
## 2 8 8.3 Matutino Fundamental Sim
## 3 9 9.2 Vespertino Fundamental Sim
## 4 7 5.8 Matutino Médio Sim
## 5 7 8.6 Vespertino Fundamental Não
## 6 16 5.3 Vespertino Médio Sim
str(dados_alunos)
## 'data.frame': 1000 obs. of 5 variables:
## $ faltas : num 11 8 9 7 7 16 12 7 8 7 ...
## $ nota_media : num 10 8.3 9.2 5.8 8.6 5.3 7.8 6.7 5.5 7.3 ...
## $ turno : chr "Vespertino" "Matutino" "Vespertino" "Matutino" ...
## $ escolaridade_mae: chr "Médio" "Fundamental" "Fundamental" "Médio" ...
## $ acesso_internet : chr "Sim" "Sim" "Sim" "Sim" ...
summary(dados_alunos)
## faltas nota_media turno escolaridade_mae
## Min. : 1.000 Min. : 0.500 Length :1000 Length :1000
## 1st Qu.: 6.000 1st Qu.: 5.200 N.unique : 3 N.unique : 3
## Median : 8.000 Median : 6.500 N.blank : 0 N.blank : 0
## Mean : 8.013 Mean : 6.444 Min.nchar: 7 Min.nchar: 5
## 3rd Qu.:10.000 3rd Qu.: 7.700 Max.nchar: 10 Max.nchar: 11
## Max. :19.000 Max. :10.000
## acesso_internet
## Length :1000
## N.unique : 2
## N.blank : 0
## Min.nchar: 3
## Max.nchar: 3
##
A variável número de faltas representa a quantidade de ausências dos alunos.
media_faltas <- mean(dados_alunos$faltas, na.rm = TRUE)
mediana_faltas <- median(dados_alunos$faltas, na.rm = TRUE)
min_faltas <- min(dados_alunos$faltas, na.rm = TRUE)
max_faltas <- max(dados_alunos$faltas, na.rm = TRUE)
data.frame(
Média = media_faltas,
Mediana = mediana_faltas,
Mínimo = min_faltas,
Máximo = max_faltas
)
## Média Mediana Mínimo Máximo
## 1 8.013 8 1 19
A média de faltas observada foi de 8.01 faltas.
A mediana foi de 8 faltas.
O menor número de faltas observado foi 1, enquanto o maior foi 19.
ggplot(dados_alunos, aes(x = faltas)) +
geom_histogram(bins = 10, color = "black") +
labs(
title = "Distribuição do número de faltas",
x = "Número de faltas",
y = "Frequência"
) +
theme_minimal()
A variável nota média representa o desempenho acadêmico dos alunos.
media_notas <- mean(dados_alunos$nota_media, na.rm = TRUE)
mediana_notas <- median(dados_alunos$nota_media, na.rm = TRUE)
min_notas <- min(dados_alunos$nota_media, na.rm = TRUE)
max_notas <- max(dados_alunos$nota_media, na.rm = TRUE)
data.frame(
Média = media_notas,
Mediana = mediana_notas,
Mínimo = min_notas,
Máximo = max_notas
)
## Média Mediana Mínimo Máximo
## 1 6.4438 6.5 0.5 10
A nota média geral dos alunos foi de 6.44 pontos.
A mediana foi de 6.5 pontos.
A menor nota observada foi 0.5, enquanto a maior foi 10.
ggplot(dados_alunos, aes(x = nota_media)) +
geom_histogram(bins = 10, color = "black") +
labs(
title = "Distribuição das notas médias",
x = "Nota média",
y = "Frequência"
) +
theme_minimal()
A variável turno indica o período em que o aluno realiza seus estudos.
tabela_turno <- table(dados_alunos$turno)
tabela_turno
##
## Matutino Noturno Vespertino
## 451 204 345
ggplot(dados_alunos, aes(x = turno)) +
geom_bar(color = "black") +
labs(
title = "Distribuição dos alunos por turno",
x = "Turno",
y = "Número de alunos"
) +
theme_minimal()
A escolaridade da mãe é utilizada como uma variável relacionada ao contexto familiar dos alunos.
tabela_escolaridade <- table(dados_alunos$escolaridade_mae)
tabela_escolaridade
##
## Fundamental Médio Superior
## 391 459 150
ggplot(dados_alunos, aes(x = escolaridade_mae)) +
geom_bar(color = "black") +
labs(
title = "Escolaridade da mãe",
x = "Escolaridade da mãe",
y = "Número de alunos"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
O acesso à internet é uma variável relacionada às condições de estudo dos alunos.
tabela_internet <- table(dados_alunos$acesso_internet)
tabela_internet
##
## Não Sim
## 297 703
ggplot(dados_alunos, aes(x = acesso_internet)) +
geom_bar(color = "black") +
labs(
title = "Acesso à internet em casa",
x = "Acesso à internet",
y = "Número de alunos"
) +
theme_minimal()
Nesta análise, será comparada a nota média dos alunos de acordo com o acesso à internet em casa.
media_internet <- dados_alunos %>%
group_by(acesso_internet) %>%
summarise(
media_nota = mean(nota_media, na.rm = TRUE),
.groups = "drop"
)
media_internet
## # A tibble: 2 × 2
## acesso_internet media_nota
## <chr> <dbl>
## 1 Não 6.48
## 2 Sim 6.43
ggplot(dados_alunos, aes(x = acesso_internet, y = nota_media)) +
geom_boxplot() +
labs(
title = "Nota média segundo acesso à internet",
x = "Acesso à internet",
y = "Nota média"
) +
theme_minimal()
Nesta etapa, será analisada a relação entre a escolaridade da mãe e a nota média dos alunos.
media_escolaridade <- dados_alunos %>%
group_by(escolaridade_mae) %>%
summarise(
media_nota = mean(nota_media, na.rm = TRUE),
.groups = "drop"
)
media_escolaridade
## # A tibble: 3 × 2
## escolaridade_mae media_nota
## <chr> <dbl>
## 1 Fundamental 6.33
## 2 Médio 6.55
## 3 Superior 6.41
ggplot(
dados_alunos,
aes(x = escolaridade_mae, y = nota_media)
) +
geom_boxplot() +
labs(
title = "Nota média segundo escolaridade da mãe",
x = "Escolaridade da mãe",
y = "Nota média"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Será analisada a relação entre o número de faltas e a nota média dos alunos.
correlacao <- cor(
dados_alunos$faltas,
dados_alunos$nota_media,
use = "complete.obs"
)
correlacao
## [1] -0.01006418
A correlação entre número de faltas e nota média foi de -0.01.
ggplot(
dados_alunos,
aes(x = faltas, y = nota_media)
) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(
title = "Relação entre faltas e nota média",
x = "Número de faltas",
y = "Nota média"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Nesta análise, será comparada a quantidade média de faltas entre os diferentes turnos.
media_faltas_turno <- dados_alunos %>%
group_by(turno) %>%
summarise(
media_faltas = mean(faltas, na.rm = TRUE),
.groups = "drop"
)
media_faltas_turno
## # A tibble: 3 × 2
## turno media_faltas
## <chr> <dbl>
## 1 Matutino 8.03
## 2 Noturno 7.95
## 3 Vespertino 8.03
A maior média de faltas foi de 8.03 faltas.
ggplot(
dados_alunos,
aes(x = turno, y = faltas)
) +
geom_boxplot() +
labs(
title = "Número de faltas segundo o turno",
x = "Turno",
y = "Número de faltas"
) +
theme_minimal()
Será analisada a nota média dos alunos de acordo com o turno de estudo.
media_nota_turno <- dados_alunos %>%
group_by(turno) %>%
summarise(
media_nota = mean(nota_media, na.rm = TRUE),
.groups = "drop"
)
media_nota_turno
## # A tibble: 3 × 2
## turno media_nota
## <chr> <dbl>
## 1 Matutino 6.46
## 2 Noturno 6.58
## 3 Vespertino 6.34
ggplot(
dados_alunos,
aes(x = turno, y = nota_media)
) +
geom_boxplot() +
labs(
title = "Nota média segundo o turno",
x = "Turno",
y = "Nota média"
) +
theme_minimal()
O turno com maior nota média foi Noturno, com média de 6.58.
O turno com menor nota média foi Vespertino, com média de 6.34.
Nesta análise, são consideradas simultaneamente as variáveis turno, acesso à internet e nota média.
tabela_multivariada <- dados_alunos %>%
group_by(turno, acesso_internet) %>%
summarise(
media_nota = mean(nota_media, na.rm = TRUE),
numero_alunos = n(),
.groups = "drop"
)
tabela_multivariada
## # A tibble: 6 × 4
## turno acesso_internet media_nota numero_alunos
## <chr> <chr> <dbl> <int>
## 1 Matutino Não 6.54 133
## 2 Matutino Sim 6.43 318
## 3 Noturno Não 6.86 57
## 4 Noturno Sim 6.48 147
## 5 Vespertino Não 6.21 107
## 6 Vespertino Sim 6.40 238
ggplot(
dados_alunos,
aes(
x = turno,
y = nota_media,
fill = acesso_internet
)
) +
geom_boxplot() +
labs(
title = "Nota média por turno e acesso à internet",
x = "Turno",
y = "Nota média",
fill = "Acesso à internet"
) +
theme_minimal()
Nesta etapa, será observada a combinação entre escolaridade da mãe, acesso à internet e desempenho dos alunos.
tabela_escolaridade_internet <- dados_alunos %>%
group_by(escolaridade_mae, acesso_internet) %>%
summarise(
media_nota = mean(nota_media, na.rm = TRUE),
numero_alunos = n(),
.groups = "drop"
)
tabela_escolaridade_internet
## # A tibble: 6 × 4
## escolaridade_mae acesso_internet media_nota numero_alunos
## <chr> <chr> <dbl> <int>
## 1 Fundamental Não 6.35 121
## 2 Fundamental Sim 6.32 270
## 3 Médio Não 6.54 124
## 4 Médio Sim 6.56 335
## 5 Superior Não 6.66 52
## 6 Superior Sim 6.28 98
Será utilizado um modelo de regressão linear para analisar a relação entre faltas e nota média.
modelo <- lm(
nota_media ~ faltas,
data = dados_alunos
)
summary(modelo)
##
## Call:
## lm(formula = nota_media ~ faltas, data = dados_alunos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.9507 -1.2439 0.0392 1.2832 3.6035
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.498043 0.180697 35.961 <2e-16 ***
## faltas -0.006769 0.021290 -0.318 0.751
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.883 on 998 degrees of freedom
## Multiple R-squared: 0.0001013, Adjusted R-squared: -0.0009006
## F-statistic: 0.1011 on 1 and 998 DF, p-value: 0.7506
ggplot(
dados_alunos,
aes(x = faltas, y = nota_media)
) +
geom_point() +
geom_smooth(method = "lm", se = TRUE) +
labs(
title = "Modelo de regressão linear",
x = "Número de faltas",
y = "Nota média"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
A análise realizada permitiu observar diferentes características do banco de dados e investigar possíveis relações entre as variáveis estudadas.
A média de faltas dos alunos foi de 8.01.
A nota média geral foi de 6.44 pontos.
A correlação entre faltas e nota média foi de -0.01.
As análises envolvendo turno, escolaridade da mãe e acesso à internet possibilitaram uma visão mais ampla das características dos estudantes e de seus possíveis efeitos sobre o desempenho acadêmico.
O acesso à internet pode estar relacionado às condições de estudo dos alunos. A comparação das médias permite observar se existem diferenças no desempenho entre os estudantes que possuem e os que não possuem acesso à internet em casa.
A escolaridade da mãe foi utilizada como uma variável representativa do contexto familiar. A análise permite verificar se diferentes níveis de escolaridade estão associados a diferentes desempenhos médios.
A relação entre faltas e nota média foi analisada por meio do coeficiente de correlação. Esse procedimento permite verificar se existe uma associação entre a frequência escolar e o desempenho acadêmico.
A análise por turno permite comparar características dos estudantes dos diferentes períodos, especialmente em relação às faltas e às notas médias.
As variáveis analisadas podem revelar diferenças nas condições de estudo e no desempenho dos alunos. Entretanto, os resultados devem ser interpretados com cautela, pois associação entre variáveis não significa necessariamente relação de causa e efeito.
A análise multivariada possibilita observar os dados considerando mais de uma característica simultaneamente, permitindo identificar possíveis diferenças entre subgrupos de alunos.
A análise estatística realizada permitiu explorar as principais características dos alunos presentes no banco de dados e investigar relações entre frequência, desempenho acadêmico, turno, escolaridade da mãe e acesso à internet.
Os resultados mostram a importância da utilização de ferramentas estatísticas para organizar e interpretar informações educacionais. A análise dos dados permite identificar padrões e diferenças entre grupos, contribuindo para uma compreensão mais ampla da realidade estudada.
É importante destacar que os resultados encontrados representam associações observadas no banco de dados analisado e não devem ser interpretados automaticamente como relações causais.
Entre as limitações da análise, destaca-se o fato de que os resultados dependem das informações disponíveis no banco de dados.
Além disso, a existência de associação entre duas variáveis não significa necessariamente que uma variável seja responsável pela alteração da outra.
Outros fatores que não foram considerados neste estudo também podem influenciar o desempenho dos alunos.
Pesquisas futuras podem ampliar a análise incluindo novas variáveis relacionadas ao contexto socioeconômico, às condições de estudo, à participação familiar e a outros aspectos da vida escolar.
Também podem ser utilizados modelos estatísticos mais avançados para investigar simultaneamente um número maior de fatores relacionados ao desempenho acadêmico.
A realização deste relatório possibilitou aplicar conceitos de estatística descritiva, análise bivariada e análise multivariada utilizando o R e o RStudio.
A utilização dessas ferramentas contribui para o desenvolvimento da capacidade de trabalhar com dados, produzir gráficos, calcular medidas estatísticas e interpretar resultados de forma organizada.