dados <- read.csv(“alunos_curso.csv”, stringsAsFactors = FALSE)
str(dados)
dados\(satisfacao_curso <- factor( dados\)satisfacao_curso, levels = 1:5, labels = c(“Muito Insatisfeito”, “Insatisfeito”, “Neutro”, “Satisfeito”, “Muito Satisfeito”), ordered = TRUE )
dados\(trabalha_dummy <- ifelse(dados\)trabalha == “Sim”, 1, 0) dados\(monitoria_dummy <- ifelse(dados\)usa_monitoria == “Sim”, 1, 0)
round(colSums(is.na(dados)) / nrow(dados) * 100, 1)
nota <- na.omit(dados$nota_final)
n <- length(nota)
k <- round(1 + 3.322 * log10(n)) h <- ceiling(((max(nota) - min(nota)) / k) * 10) / 10 inicio <- floor(min(nota) * 10) / 10
limites <- seq(inicio, inicio + k * h, by = h) classes <- cut(nota, breaks = limites, right = FALSE, include.lowest = TRUE)
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)
cat(“— Diagrama de Ramo-e-Folhas —”) stem(nota, scale = 2)
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
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)