============================================================

PIPELINE DE ANÁLISE EXPLORATÓRIA DE DADOS (AED)

Disciplinas: Engenharia de Software (ES) e Sistemas de Informação (SI)

Caso PBL: Fatores de impacto no desempenho em Estatística

Base de dados: alunos_curso.csv (Requer tratamento prévio)

============================================================

———————————————————-

BLOCO 1 — IMPORTAÇÃO E RECONHECIMENTO

———————————————————-

dados <- read.csv(“alunos_curso.csv”, stringsAsFactors = FALSE)

Verificando a estrutura inicial (tipos de dados incorretos e NAs presentes)

str(dados)

———————————————————-

BLOCO 2 — MANIPULAÇÃO E TIPOS DE VARIÁVEIS

———————————————————-

Ajuste 1: Transformar satisfacao_curso em fator ordenado

dados\(satisfacao_curso <- factor( dados\)satisfacao_curso, levels = 1:5, labels = c(“Muito Insatisfeito”, “Insatisfeito”, “Neutro”, “Satisfeito”, “Muito Satisfeito”), ordered = TRUE )

Ajuste 2: Criar variáveis dummy para modelagem (0 = Não, 1 = Sim)

dados\(trabalha_dummy <- ifelse(dados\)trabalha == “Sim”, 1, 0) dados\(monitoria_dummy <- ifelse(dados\)usa_monitoria == “Sim”, 1, 0)

———————————————————-

BLOCO 3 — TRATAMENTO DE VALORES FALTANTES (NAs)

———————————————————-

Mapeando o percentual de dados faltantes por coluna

round(colSums(is.na(dados)) / nrow(dados) * 100, 1)

Isolando as notas válidas para os cálculos estatísticos

nota <- na.omit(dados$nota_final)

———————————————————-

BLOCO 4 — REGRA DE STURGES E TABELA DE FREQUÊNCIA

———————————————————-

n <- length(nota)

Cálculo dos parâmetros de Sturges

k <- round(1 + 3.322 * log10(n)) h <- ceiling(((max(nota) - min(nota)) / k) * 10) / 10 inicio <- floor(min(nota) * 10) / 10

Definindo limites e classificando as notas

limites <- seq(inicio, inicio + k * h, by = h) classes <- cut(nota, breaks = limites, right = FALSE, include.lowest = TRUE)

Construção da Tabela de Frequência

freq_abs <- table(classes) tabela_nota <- data.frame( Classe = names(freq_abs), Freq_Absoluta = as.numeric(freq_abs), Freq_Relativa_pct = round(as.numeric(prop.table(freq_abs)) * 100, 2), Freq_Acumulada_pct = round(cumsum(as.numeric(prop.table(freq_abs))) * 100, 2) ) print(tabela_nota)

———————————————————-

BLOCO 5 — GRÁFICOS ESTATÍSTICOS AVANÇADOS

———————————————————-

5.1 Diagrama de Ramo-e-Folhas (Visão micro da distribuição)

cat(“— Diagrama de Ramo-e-Folhas —”) stem(nota, scale = 2)

5.2 Histograma com classes de Sturges (Visão macro)

hist(nota, breaks = limites, right = FALSE, main = “Distribuição das Notas Finais (Sturges)”, xlab = “Nota Final”, ylab = “Frequência”, col = “steelblue”, border = “white”) abline(v = 6, col = “red”, lty = 2, lwd = 2) # Linha de corte para aprovação

5.3 Ogiva (Polígono de Frequência Acumulada)

pontos_medios <- (limites[-length(limites)] + limites[-1]) / 2 freq_ac_pct <- cumsum(as.numeric(prop.table(freq_abs))) * 100

plot(c(inicio, pontos_medios), c(0, freq_ac_pct), type = “b”, pch = 16, col = “darkblue”, main = “Ogiva – Frequência Acumulada da Nota Final”, xlab = “Nota Final”, ylab = “Frequência Acumulada (%)”, ylim = c(0, 100)) abline(h = 50, col = “gray50”, lty = 2) # Referência dos 50% dos alunos abline(v = 6, col = “red”, lty = 2) # Referência da nota de corte

summary(dados)

———————————————————-

BLOCO 6 — SÍNTESE E PLANO DE AÇÃO (Foco ES/SI)

———————————————————-a

Com base na manipulação de dados e nos gráficos gerados, respondam:

1. Como a presença de NAs impactou a geração da tabela de Sturges?

2. Analisando a Ogiva, qual o percentual aproximado de alunos que ficaram abaixo da média 6.0?

3. O que o diagrama de ramo-e-folhas revela sobre a concentração das notas que o histograma acaba escondendo?

4. Pensando no desenvolvimento de um software preditivo de evasão, quais variáveis criadas (dummies/fatores) seriam as mais importantes?