Inferência Estatística
Projeto Final
1 Preparação Inicial (A)
Definir diretório e pacotes necessários.
1.1 Importação do banco do ENADE/INEP (A)
#-----------ITEM A
# DataSet directory
path <- c("C:\\0. R\\MBA\\DS&S\\M2 - Estatístics Descritiva e Construção de Dashboards\\MBA_ProjetoFinal_original")
setwd(path)
getwd()## [1] "C:/0. R/MBA/DS&S/M2 - Estatístics Descritiva e Construção de Dashboards/MBA_ProjetoFinal_original"
#dataset <- read_csv2("MICRODADOS_ENADE_2017.txt" )
dataset <- read.delim("MICRODADOS_ENADE_2017.txt" , header = TRUE, sep = ";", dec = ",")1.2 Seleção das Variáveis Desejadas (A)
#-----------ITEM A
ds.filtered <- dataset %>% dplyr::select(
NT_GER,
NT_OBJ_FG,
CO_GRUPO,
CO_REGIAO_CURSO,
QE_I02,
CO_TURNO_GRADUACAO
)| Variável | Tipo | Descrição |
|---|---|---|
| NT_GER | Quantitativa Continua | Nota bruta da prova. (valor de 0 a 100) |
| NT_OBJ_FG | Quantitativa Continua | Nota bruta na parte objetiva da formação geral. (valor de 0 a 100) |
| CO_GRUPO | Qualitativa Nominal | Código da área de enquadramento do curso no Enade |
| CO_REGIAO_CURSO | Qualitativa Nominal | Código da região de funcionamento do curso |
| QE_I02 | Qualitativa Nominal | Qual é a sua cor ou raça? |
| CO_TURNO_GRADUACAO | Qualitativa Nominal | Código do turno de graduação |
1.3 Transformação das Variáveis (A)
Vamos decodificar as varáveis para um melhor entendimento na fase descritiva.
#-----------ITEM A
#Cursos
ds.filtered <- ds.filtered %>% mutate(
Curso = case_when(
CO_GRUPO == 21 ~ 'Arquitetura e Urbanismo' ,
CO_GRUPO == 72 ~ 'Tecnologia em Análise e Desenvolvimento de Sistemas' ,
CO_GRUPO == 76 ~ 'Tecnologia em Gestão da Produção Industrial' ,
CO_GRUPO == 79 ~ 'Tecnologia em Redes de Computadores' ,
CO_GRUPO == 701 ~ 'Matemática (Bacharelado)' ,
CO_GRUPO == 702 ~ 'Matemática (Licenciatura)' ,
CO_GRUPO == 903 ~ 'Letras-Português (Bacharelado)' ,
CO_GRUPO == 904 ~ 'Letras-Português (Licenciatura)' ,
CO_GRUPO == 905 ~ 'Letras-Português e Inglês (Licenciatura)' ,
CO_GRUPO == 906 ~ 'Letras-Português e Espanhol (Licenciatura)' ,
CO_GRUPO == 1401 ~ 'Física (Bacharelado)' ,
CO_GRUPO == 1402 ~ 'Física (Licenciatura)' ,
CO_GRUPO == 1501 ~ 'Química (Bacharelado)' ,
CO_GRUPO == 1502 ~ 'Química (Licenciatura)' ,
CO_GRUPO == 1601 ~ 'Ciências Biológicas (Bacharelado)' ,
CO_GRUPO == 1602 ~ 'Ciências Biológicas (Licenciatura)' ,
CO_GRUPO == 2001 ~ 'Pedagogia (Licenciatura)' ,
CO_GRUPO == 2401 ~ 'História (Bacharelado)' ,
CO_GRUPO == 2402 ~ 'História (Licenciatura)' ,
CO_GRUPO == 2501 ~ 'Artes Visuais (Licenciatura)' ,
CO_GRUPO == 3001 ~ 'Geografia (Bacharelado)' ,
CO_GRUPO == 3002 ~ 'Geografia (Licenciatura)' ,
CO_GRUPO == 3201 ~ 'Filosofia (Bacharelado)' ,
CO_GRUPO == 3202 ~ 'Filosofia (Licenciatura)' ,
CO_GRUPO == 3502 ~ 'Educação Física (Licenciatura)' ,
CO_GRUPO == 4003 ~ 'Engenharia Da Computação' ,
CO_GRUPO == 4004 ~ 'Ciência Da Computação (Bacharelado)' ,
CO_GRUPO == 4005 ~ 'Ciência Da Computação (Licenciatura)' ,
CO_GRUPO == 4006 ~ 'Sistemas De Informação' ,
CO_GRUPO == 4301 ~ 'Música (Licenciatura)' ,
CO_GRUPO == 5401 ~ 'Ciências Sociais (Bacharelado)' ,
CO_GRUPO == 5402 ~ 'Ciências Sociais (Licenciatura)' ,
CO_GRUPO == 5710 ~ 'Engenharia Civil' ,
CO_GRUPO == 5806 ~ 'Engenharia Elétrica' ,
CO_GRUPO == 5814 ~ 'Engenharia de Controle e Automação' ,
CO_GRUPO == 5902 ~ 'Engenharia Mecânica' ,
CO_GRUPO == 6002 ~ 'Engenharia de Alimentos' ,
CO_GRUPO == 6008 ~ 'Engenharia Química' ,
CO_GRUPO == 6208 ~ 'Engenharia de Produção' ,
CO_GRUPO == 6306 ~ 'Engenharia' ,
CO_GRUPO == 6307 ~ 'Engenharia Ambiental' ,
CO_GRUPO == 6405 ~ 'Engenharia Florestal' ,
CO_GRUPO == 6407 ~ 'Letras - Inglês' ,
CO_GRUPO == 6409 ~ 'Tecnologia em Gestão da Tecnologia da Informação' ,
TRUE ~ "Outro"
)
)
ds.filtered$Curso <- as.factor(ds.filtered$Curso)
#Nota
ds.filtered = ds.filtered %>% mutate(
Nota_Obj = NT_OBJ_FG,
Nota_Geral = NT_GER
)
#Regiao
ds.filtered = ds.filtered %>% mutate(
Regiao = case_when(
CO_REGIAO_CURSO == 1 ~ "Norte",
CO_REGIAO_CURSO == 2 ~ "Nordeste",
CO_REGIAO_CURSO == 3 ~ "Sudeste",
CO_REGIAO_CURSO == 4 ~ "Sul",
CO_REGIAO_CURSO == 5 ~ "Centro-Oeste"
)
)
ds.filtered$Regiao <- as.factor(ds.filtered$Regiao)
#Raca
ds.filtered = ds.filtered %>% mutate(
Raca = case_when(
QE_I02 == "A" ~ "Branca",
QE_I02 == "B" ~ "Preta",
QE_I02 == "C" ~ "Amarela",
QE_I02 == "D" ~ "Parda",
QE_I02 == "E" ~ "Indígena",
QE_I02 == "F" ~ "Não quero declarar"
)
)
ds.filtered$Raca <- as.factor(ds.filtered$Raca)
#Turno
ds.filtered = ds.filtered %>% mutate(
Turno = case_when(
CO_TURNO_GRADUACAO == 1 ~ "Matutino",
CO_TURNO_GRADUACAO == 2 ~ "Vespertino",
CO_TURNO_GRADUACAO == 3 ~ "Integral",
CO_TURNO_GRADUACAO == 4 ~ "Noturno"
)
)
ds.filtered$Turno <- as.factor(ds.filtered$Turno)
# Limpar Dataset
cps = c( "NT_GER",
"NT_OBJ_FG",
#"CO_GRUPO",
"CO_REGIAO_CURSO",
"QE_I02",
"CO_TURNO_GRADUACAO")
ds.all <- subset(ds.filtered, select = -c(NT_GER,
NT_OBJ_FG,
#CO_GRUPO,
CO_REGIAO_CURSO,
QE_I02,
CO_TURNO_GRADUACAO) )2 Análise Descritiva (B)
#-----------ITEM B
s <<- summary(ds.all)
d <<- describe(ds.all)
#unique(d$Nota_Geral) %>% kbl %>% kable_paper(full_width = F)2.1 Banco de Dados Inicial (B)
#-----------ITEM B
tabela_1 <- ds.all %>%
select(Nota_Geral) %>%
summarise(
quantidade = n(),
missing = quantidade - sum(!is.na(Nota_Geral)) ,
media = round( mean( Nota_Geral , na.rm=TRUE) , 1),
mediana = round( median( Nota_Geral, na.rm=TRUE) , 1),
moda = round( Mode(Nota_Geral, na.rm=TRUE) , 1),
desvio_padrao = round( sd(Nota_Geral, na.rm=TRUE) , 1),
# variancia = round( sd(Nota_Geral, na.rm=TRUE)^2 , 1),
cv = round( sd(Nota_Geral, na.rm=TRUE) / media * 100 , 1),
assimetria = round( skewness(Nota_Geral, na.rm=TRUE) , 1),
curtose = round( kurtosis(Nota_Geral, na.rm=TRUE), 1)
)
tabela_1 %>% kbl %>% kable_paper("hover", full_width = F)| quantidade | missing | media | mediana | moda | desvio_padrao | cv | assimetria | curtose |
|---|---|---|---|---|---|---|---|---|
| 537436 | 87504 | 43.5 | 42.9 | 44.6 | 14.1 | 32.4 | 0.2 | -0.2 |
A tabela acima mostra o total geral da base para todos os cursos. Podemos ver que a base tem 87504.
| CO_GRUPO | Curso | Nota_Obj | Nota_Geral | Regiao | Raca | Turno |
|---|---|---|---|---|---|---|
| 0 | 0 | 87504 | 87504 | 0 | 69780 | 465 |
2.2 Remover Missings (B)
Desta maneira vamos agora remover os missings presentes na variável Nota Geral.
Decido por remover os missings somente dessa variáveis pois não iremos trabalhar
com as outras variáveis selecionadas, caso fossemos trabalhar com elas, haveria
uma nova avaliação e remoção das mesmas.
#-----------ITEM B
#removendo missings
ds.all_adj = ds.all %>%
filter_at(vars(Nota_Geral), all_vars(!is.na(.)))
#Verificando se todos os NA's foram de fato removidos
summary_final.nas=ds.all_adj %>%
select(everything()) %>%
summarise_all(list(~sum(is.na(.))))
summary_final.nas %>% kbl %>% kable_paper("hover", full_width = F)| CO_GRUPO | Curso | Nota_Obj | Nota_Geral | Regiao | Raca | Turno |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 7064 | 412 |
#Quatidade De Linhas Do Banco Original
n_dsall <- dim(ds.all)[1]
#Quatidade De Linhas Do Banco sem os NAS
n_dsnonas <- dim(ds.all_adj)[1]
#observaçoes removidas
n_diff <- dim(ds.all)[1] - dim(ds.all_adj)[1]
n_diff_pct <- ( dim(ds.all)[1] - dim(ds.all_adj)[1] ) / dim(ds.all)[1] Nota-se que os 87504 missings da variável Nota Geral foram removidos da base, o que representa 16.3% da base.
2.3 Banco de Dados sem NAs (C)
2.3.1 Estatísticas Descritivas (C)
#-----------ITEM C
#Summary 2 geral
tabela_2 <- ds.all_adj %>%
select(Nota_Geral) %>%
summarise(
quantidade = n(),
missing = quantidade - sum(!is.na(Nota_Geral)) ,
media = round( mean( Nota_Geral , na.rm=TRUE) , 1),
mediana = round( median( Nota_Geral, na.rm=TRUE) , 1),
moda = round( Mode(Nota_Geral, na.rm=TRUE) , 1),
desvio_padrao = round( sd(Nota_Geral, na.rm=TRUE) , 1),
# variancia = round( sd(Nota_Geral, na.rm=TRUE)^2 , 1),
cv = round( sd(Nota_Geral, na.rm=TRUE) / media * 100 , 1),
assimetria = round( skewness(Nota_Geral, na.rm=TRUE) , 1),
curtose = round( kurtosis(Nota_Geral, na.rm=TRUE), 1)
)Recalculamos a as estatísticas descritivas para todos os cursos e, posteriormente, para cada curso individualmente.
#-----------ITEM C
tabela_2 %>% kbl %>% kable_paper("hover", full_width = F)| quantidade | missing | media | mediana | moda | desvio_padrao | cv | assimetria | curtose |
|---|---|---|---|---|---|---|---|---|
| 449932 | 0 | 43.5 | 42.9 | 44.6 | 14.1 | 32.4 | 0.2 | -0.2 |
2.3.2 Gráfico de Densidade e Histograma (C)
#Histograma e Densidade
g_hist = ggplot(ds.all_adj, aes(x = Nota_Geral)) +
geom_histogram(color = "black",
fill = "lightblue",
bins = 10,
aes(y = (..count..) / sum(..count..))) +
ggtitle("Histograma da Nota Geral dos alunos do ENADE") +
xlab("nota") +
ylab("Frequência relativa")
g_densidade = ggplot(ds.all_adj, aes(x = Nota_Geral)) +
geom_density(col = 2, size = 1, aes(y = 30 * (..count..) / sum(..count..))) +
ggtitle("Histograma da Nota Geral dos alunos do ENADE") +
xlab("nota") +
ylab("Frequência relativa")
g_hist_densidade = ggplot(ds.all_adj, aes(x = Nota_Geral)) +
geom_histogram(color = "black",
fill = "lightblue",
bins = 10,
aes(y = (..count..) / sum(..count..))) +
geom_density(col = 2, size = 1, aes(y = 30 * (..count..) / sum(..count..))) +
ggtitle("Histograma da Nota Geral dos alunos do ENADE") +
xlab("Nota") +
ylab("Frequência relativa")
grid.arrange(g_hist,
g_densidade,
g_hist_densidade,
nrow = 3,
ncol = 1)Analisando o histograma e o gráfico de densidade nos dá um indicativo de que
a distribuição se assemelha à Normal.
2.3.3 Teste de Normalidade (C)
#Teste de Normalidade de Shapiro-Wilk
#shapiro.test(ds.all_adj$Nota_Geral) #só para menos de 5 mil obs
#Teste de Normalidade de Anderson_Darlin
ad.test(ds.all_adj$Nota_Geral)##
## Anderson-Darling normality test
##
## data: ds.all_adj$Nota_Geral
## A = 381.61, p-value < 2.2e-16
Fez-se o teste de Anderson-Darlin para se constar de que a distribuição da variável
Nota Geral segue uma distribuição Normal, haja visto que o p-valor \(\leq\) 5%.
Não foi usado o teste de Shapiro-Wilk neste caso pois temos mais do que 5 mil
observações, que é o número suportado por esse teste.
#-----------ITEM C
#Summary do por curso
tabela_3 <- ds.all_adj %>%
select(Curso, Nota_Geral) %>%
group_by(Curso) %>%
summarise(
quantidade = n(),
missing = quantidade - sum(!is.na(Nota_Geral)) ,
media = round( mean( Nota_Geral , na.rm=TRUE) , 1),
mediana = round( median( Nota_Geral, na.rm=TRUE) , 1),
moda = round( Mode(Nota_Geral, na.rm=TRUE) , 1),
desvio_padrao = round( sd(Nota_Geral, na.rm=TRUE) , 1),
# variancia = round( sd(Nota_Geral, na.rm=TRUE)^2 , 1),
cv = round( sd(Nota_Geral, na.rm=TRUE) / media * 100 , 1),
assimetria = round( skewness(Nota_Geral, na.rm=TRUE) , 1),
curtose = round( kurtosis(Nota_Geral, na.rm=TRUE), 1)
) %>% arrange(desc(mediana))Abaixo temos a tabela de estatísticas resumo por curso ordenado de forma
decrescente do valor da mediana.
#-----------ITEM C
#tabela
tabela_3a <- distinct(tabela_3, Curso, .keep_all = TRUE)
tabela_3a %>% kbl %>% kable_paper("hover", full_width = F)| Curso | quantidade | missing | media | mediana | moda | desvio_padrao | cv | assimetria | curtose |
|---|---|---|---|---|---|---|---|---|---|
| Geografia (Bacharelado) | 2093 | 0 | 51.7 | 53.0 | 53.8 | 14.9 | 28.8 | -0.5 | 0.1 |
| Letras-Português (Bacharelado) | 533 | 0 | 51.2 | 52.2 | 45.2 | 14.3 | 27.9 | -0.5 | 0.7 |
| Artes Visuais (Licenciatura) | 3635 | 0 | 51.4 | 52.1 | 64.4 | 15.2 | 29.7 | -0.2 | -0.5 |
| Engenharia Florestal | 2051 | 0 | 50.9 | 51.1 | 50.4 | 14.0 | 27.5 | -0.1 | -0.4 |
| Ciências Biológicas (Bacharelado) | 6648 | 0 | 50.7 | 51.0 | 52.9 | 13.2 | 26.0 | -0.1 | -0.2 |
| Arquitetura e Urbanismo | 23938 | 0 | 49.0 | 49.1 | 43.5 | 14.4 | 29.5 | -0.1 | -0.4 |
| História (Bacharelado) | 1336 | 0 | 47.0 | 48.3 | 0.0 | 15.7 | 33.3 | -0.3 | 0.1 |
| Ciências Sociais (Licenciatura) | 2673 | 0 | 47.2 | 48.1 | 0.0 | 14.9 | 31.7 | -0.4 | 0.0 |
| Letras - Inglês | 2429 | 0 | 48.1 | 47.9 | 41.0 | 15.5 | 32.3 | 0.0 | -0.5 |
| Filosofia (Bacharelado) | 1214 | 0 | 46.7 | 47.2 | 44.6 | 16.2 | 34.6 | -0.1 | -0.3 |
| Engenharia Ambiental | 7910 | 0 | 46.4 | 46.6 | 43.3 | 12.5 | 26.8 | -0.1 | -0.2 |
| Ciências Sociais (Bacharelado) | 2178 | 0 | 45.4 | 46.2 | 0.0 | 14.5 | 31.9 | -0.4 | 0.4 |
| Engenharia de Alimentos | 1782 | 0 | 46.4 | 46.2 | 42.5 | 13.2 | 28.5 | 0.1 | -0.2 |
| Matemática (Bacharelado) | 388 | 0 | 49.0 | 46.0 | 28.3 | 18.2 | 37.1 | 0.2 | -0.6 |
| Engenharia Mecânica | 16375 | 0 | 46.0 | 45.6 | 43.3 | 13.8 | 30.0 | 0.1 | -0.3 |
| Tecnologia em Gestão da Tecnologia da Informação | 3247 | 0 | 45.4 | 45.6 | 47.1 | 13.4 | 29.6 | 0.0 | -0.2 |
| Filosofia (Licenciatura) | 3841 | 0 | 45.3 | 45.2 | 39.5 | 15.7 | 34.6 | 0.1 | -0.5 |
| Geografia (Licenciatura) | 9048 | 0 | 45.2 | 44.9 | 0.0 | 15.1 | 33.4 | 0.0 | -0.4 |
| Sistemas De Informação | 11991 | 0 | 44.7 | 44.6 | 32.8 | 13.2 | 29.4 | 0.0 | -0.3 |
| Engenharia Da Computação | 3465 | 0 | 45.4 | 44.4 | 37.7 | 14.1 | 31.0 | 0.3 | 0.0 |
| Ciências Biológicas (Licenciatura) | 14086 | 0 | 44.4 | 44.3 | 44.8 | 13.7 | 30.8 | 0.0 | -0.3 |
| Música (Licenciatura) | 2830 | 0 | 44.6 | 44.3 | 42.0 | 14.1 | 31.5 | 0.1 | -0.1 |
| Letras-Português e Espanhol (Licenciatura) | 2374 | 0 | 44.2 | 43.7 | 40.2 | 15.4 | 34.9 | 0.1 | -0.4 |
| Engenharia | 7639 | 0 | 44.0 | 43.5 | 43.8 | 12.2 | 27.7 | 0.2 | 0.1 |
| Engenharia Civil | 47995 | 0 | 44.1 | 43.4 | 38.1 | 13.4 | 30.5 | 0.2 | -0.1 |
| História (Licenciatura) | 14519 | 0 | 43.5 | 43.3 | 0.0 | 14.6 | 33.7 | 0.0 | -0.3 |
| Letras-Português e Inglês (Licenciatura) | 6629 | 0 | 44.1 | 43.2 | 46.7 | 14.2 | 32.1 | 0.2 | -0.3 |
| Engenharia Química | 6287 | 0 | 43.6 | 43.1 | 46.2 | 11.4 | 26.2 | 0.2 | 0.1 |
| Tecnologia em Gestão da Produção Industrial | 1544 | 0 | 43.0 | 43.1 | 42.7 | 12.1 | 28.2 | -0.2 | -0.1 |
| Educação Física (Licenciatura) | 27830 | 0 | 42.8 | 42.5 | 35.3 | 13.7 | 32.0 | 0.1 | -0.3 |
| Ciência Da Computação (Bacharelado) | 8489 | 0 | 43.3 | 42.3 | 35.9 | 13.6 | 31.5 | 0.2 | -0.1 |
| Letras-Português (Licenciatura) | 11958 | 0 | 42.1 | 41.7 | 27.8 | 13.9 | 33.0 | 0.1 | -0.3 |
| Pedagogia (Licenciatura) | 113647 | 0 | 42.4 | 41.6 | 36.3 | 14.4 | 34.0 | 0.2 | -0.2 |
| Engenharia de Controle e Automação | 4813 | 0 | 42.1 | 41.5 | 28.7 | 13.2 | 31.2 | 0.3 | -0.1 |
| Física (Bacharelado) | 727 | 0 | 41.3 | 41.1 | 0.0 | 13.6 | 32.9 | -0.1 | 0.2 |
| Engenharia de Produção | 22452 | 0 | 41.7 | 40.9 | 43.4 | 12.7 | 30.5 | 0.3 | -0.1 |
| Ciência Da Computação (Licenciatura) | 1115 | 0 | 40.8 | 40.8 | 42.2 | 13.3 | 32.6 | 0.1 | -0.4 |
| Tecnologia em Análise e Desenvolvimento de Sistemas | 9743 | 0 | 40.2 | 39.6 | 39.4 | 12.9 | 32.1 | 0.2 | -0.1 |
| Engenharia Elétrica | 14454 | 0 | 39.2 | 38.4 | 36.3 | 12.6 | 32.0 | 0.3 | 0.1 |
| Física (Licenciatura) | 2843 | 0 | 39.6 | 38.2 | 37.5 | 13.8 | 34.9 | 0.3 | 0.1 |
| Química (Licenciatura) | 4877 | 0 | 38.1 | 37.5 | 28.8 | 12.1 | 31.6 | 0.2 | 0.1 |
| Matemática (Licenciatura) | 10881 | 0 | 38.5 | 37.1 | 27.8 | 13.3 | 34.6 | 0.5 | 0.4 |
| Química (Bacharelado) | 2921 | 0 | 37.9 | 36.7 | 35.5 | 12.4 | 32.7 | 0.5 | 0.4 |
| Tecnologia em Redes de Computadores | 2504 | 0 | 33.7 | 33.0 | 28.1 | 11.6 | 34.4 | 0.3 | 0.0 |
n_tb3a <- dim(tabela_3a)[1]
tabela_3b <- tabela_3a[tabela_3a$media >= tabela_2$media,]
n_tb3b <- dim(tabela_3b)[1]Pode-se notar que dos 44 presentes no banco de dados, somente 28 tiveram Nota Geral média maior ou igual que a Nota Geral média de todos os cursos (43.5).
3 Seleção do Curso Desejado (D)
#-----------ITEM D
ds.engenharia <- ds.all_adj %>% filter(CO_GRUPO == 6306)O curso escolhido para esse trabalho foi o curso de Engenharia [6306].
#-----------ITEM D, E
#Summary do por curso
tabela_4 <- ds.engenharia %>%
select(Curso, Nota_Geral) %>%
group_by(Curso) %>%
summarise(
quantidade = n(),
missing = quantidade - sum(!is.na(Nota_Geral)) ,
media = round( mean( Nota_Geral , na.rm=TRUE) , 1),
mediana = round( median( Nota_Geral, na.rm=TRUE) , 1),
moda = round( Mode(Nota_Geral, na.rm=TRUE) , 1),
desvio_padrao = round( sd(Nota_Geral, na.rm=TRUE) , 1),
# variancia = round( sd(Nota_Geral, na.rm=TRUE)^2 , 1),
cv = round( sd(Nota_Geral, na.rm=TRUE) / media * 100 , 1),
assimetria = round( skewness(Nota_Geral, na.rm=TRUE) , 1),
curtose = round( kurtosis(Nota_Geral, na.rm=TRUE), 1)
) %>% arrange(desc(mediana))
tabela_4 %>% kbl %>% kable_paper("hover", full_width = F)| Curso | quantidade | missing | media | mediana | moda | desvio_padrao | cv | assimetria | curtose |
|---|---|---|---|---|---|---|---|---|---|
| Engenharia | 7639 | 0 | 44 | 43.5 | 43.8 | 12.2 | 27.7 | 0.2 | 0.1 |
3.1 Média Amostral (D)
O curso de Engenharia teve média 44.
3.2 Desvio Padrão Amostral (E)
O curso de Engenharia apresentou um desvio padrão de 12.2.
3.3 Gráfico de Densidade e Histograma (F)
#Histograma e Densidade
g_hist1 = ggplot(ds.engenharia, aes(x = Nota_Geral)) +
geom_histogram(color = "black",
fill = "lightblue",
bins = 10,
aes(y = (..count..) / sum(..count..))) +
ggtitle("Histograma da Nota Geral dos alunos de Engenharia") +
xlab("nota") +
ylab("Frequência relativa")
g_densidade1 = ggplot(ds.engenharia, aes(x = Nota_Geral)) +
geom_density(col = 2, size = 1, aes(y = 30 * (..count..) / sum(..count..))) +
ggtitle("Histograma da Nota Geral dos alunos de Engenharia") +
xlab("nota") +
ylab("Frequência relativa")
g_hist_densidade1 = ggplot(ds.engenharia, aes(x = Nota_Geral)) +
geom_histogram(color = "black",
fill = "lightblue",
bins = 10,
aes(y = (..count..) / sum(..count..))) +
geom_density(col = 2, size = 1, aes(y = 30 * (..count..) / sum(..count..))) +
ggtitle("Histograma da Nota Geral dos alunos de Engenharia") +
xlab("Nota") +
ylab("Frequência relativa")
grid.arrange(g_hist1,
g_densidade1,
g_hist_densidade1,
nrow = 3,
ncol = 1)Analisando o histograma e o gráfico de densidade nos dá um indicativo de que
a distribuição das Notas Geral do curso de Engenharua se assemelha a Normal.
3.3.1 Teste de Normalidade (F)
#Teste de Normalidade de Shapiro-Wilk
#shapiro.test(ds.all_adj$Nota_Geral) #só para menos de 5 mil obs
#Teste de Normalidade de Anderson_Darlin
ad.test(ds.engenharia$Nota_Geral)##
## Anderson-Darling normality test
##
## data: ds.engenharia$Nota_Geral
## A = 3.93, p-value = 8.744e-10
Fez-se o teste de Anderson-Darlin para se constar de que a distribuição da variável Nota Geral dentro do curso de Engenharia segue uma distribuição Normal, haja visto que o p-valor \(\leq\) 5%.
3.3.2 Box-Plot (F)
#box-plot
grafico_bp = ggplot(ds.engenharia, aes(x = Curso, y = Nota_Geral)) +
geom_boxplot(fill = "lightblue", outlier.color='red', outlier.fill='red') +
ggtitle("Gráfico de Box-plot da Nota Geral") +
xlab("Curso") +
ylab("Notas")
ggplotly(grafico_bp)O gráfico acima mostra que existem outliers na nossa base dos alunos de Engenharia.
3.4 Intervalo de Confiança (F)
Calculamos então o Intervalo de Confiança (IC) para a média populacional (\(\mu\)) ao nível de confiança de 95%. \[ \text{IC}_{95\%} ( \mu ) = \ ? \] \[ \text{IC}_{95\%} ( \mu ) = \bigg[ \bar X - \big( z_{\frac{\alpha}{2}} * \frac{\sigma}{\sqrt{n}} \big) \ ; \bar X + \big( z_{\frac{\alpha}{2}} * \frac{\sigma}{\sqrt{n}} \big) \bigg] \]
#-----------ITEM F
mi <- mean(ds.all_adj$Nota_Geral) #media populacional
sigma <- sd(ds.all_adj$Nota_Geral) #desvio padrão populacional
N <- dim(ds.all_adj)[1] #tamanho da população
alpha <- 1-0.95
x_ <- mean(ds.engenharia$Nota_Geral) #média amostral
dp <- sd(ds.engenharia$Nota_Geral) #desvio padrão amostral
n <- dim(ds.engenharia)[1] #tamanho da amostra
z <- qnorm(1 - (alpha/2) ) # distribuição acumulada até o ponto
erro <- z * sigma / sqrt(n)
lim_inf <- x_ - erro
lim_sup <- x_ + erroNesse cenário, estamos trabalhando com todos os alunos de Engenharia que fizeram o ENADE,
a população são todos os alunos que fizeram ENADE e a amostra serão os Alunos do
curso de Engenharia. Com isso, \(\mu\) e \(\sigma\) são conhecidos e iguais a
43.5 e 14.1.
Utilizando Grau de Confiança de 95%, tenho que o nível de significância é
\(\alpha\) = 5%.
E com isso o Intervalo de Confiança de 95% para a média populacional é:
\(\text{IC}_{95\%}\) ( \(\mu\) ) = [ 43.7 , 44.3 ].
Ao nível de confiança de 95% dizemos que a média populacional da Nota Geral
dos alunos que fizeram o ENADE deve estar entre 43.7 e
44.3.
Interpretação:
Encontramos um Intervalo de Confiança de 95% para a média populacional de:
\(\text{IC}_{95\%}\) ( \(\mu\) ) = [ 43.7 , 44.3 ].
Isso significa que esperamos que 95 dentre 100 vezes a média populacional esteja
dentro deste intervalo. Caso o intervalo não de confiança não inclua a média
populacional, podemos dizer que não é provável que que esse valor seja a
verdadeira média populacionacional. Contudo, mesmo se um certo valor estiver
contido no intervalo, não devemos concluir direto que a média populacional
é igual a esse valor específico.
3.5 Distribuição (G)
Como n = 7639 é maior do que 30, vamos utilizar a distribuição Normal.
Além disso, foi visto acima com o Gráfico de Densidade e Histograma e também com o
teste de Anderson-Darlin, A Nota Geral dos alunos de Engenharia segue uma
distribuição Normal e será essa a usada para calcular os quantis.
Seja X a variável Nota Geral do Enade para os alunos de Engenharia.
\[ \bar{X} \sim N( \mu , \frac{ \sigma^2}{ n } ) \]
#-----------ITEM G
grid.arrange(g_hist1,
g_densidade1,
g_hist_densidade1,
nrow = 3,
ncol = 1)#Teste de Normalidade de Shapiro-Wilk
#shapiro.test(ds.all_adj$Nota_Geral) #só para menos de 5 mil obs
#Teste de Normalidade de Anderson_Darlin
ad.test(ds.engenharia$Nota_Geral)##
## Anderson-Darling normality test
##
## data: ds.engenharia$Nota_Geral
## A = 3.93, p-value = 8.744e-10
tabela_5 <- ds.engenharia %>%
select(Curso, Nota_Geral) %>%
group_by(Curso) %>%
summarise(
quantidade = n(),
media = round( mean( Nota_Geral , na.rm=TRUE) , 1),
mediana = round( median( Nota_Geral, na.rm=TRUE) , 1),
desvio_padrao = round( sd(Nota_Geral, na.rm=TRUE) , 1),
Q_25 = round( quantile(Nota_Geral, 0.25), 1),
Q_75 = round( quantile(Nota_Geral, 0.75), 1),
IQR = round( IQR(Nota_Geral, 0.25), 1)
) %>% arrange(desc(mediana))
tabela_5 %>% kbl %>% kable_paper("hover", full_width = F)| Curso | quantidade | media | mediana | desvio_padrao | Q_25 | Q_75 | IQR |
|---|---|---|---|---|---|---|---|
| Engenharia | 7639 | 44 | 43.5 | 12.2 | 35.7 | 51.9 | 16.2 |
3.6 Item H
Segundo o IC calculado, você diria que a nota dos alunos do curso escolhido foi atípica ou não?
\(\text{IC}_{95\%}\) ( \(\mu\) ) = [ 43.7 , 44.3 ]
\(\mu\) = 43.5
\[
\mu \not\in \text{IC}_{95\%} ( \mu )
\]
Interpretação:
Sim, como a média da Nota Geral dos alunos que fizeam ENADE está fora do Intervalo de Confiança
calculado utilizando os dados amostrais de Notas somente dos alunos de Engenharia, diria que
a nota dos alunos de Engenharia são atípicas quando comparadas a de todos os que fiream ENADE.
Mais ainda, como todo o intervalo está acima da média populacionais, podemos dizer ainda que
os aulos de Engenharia tem notas acima da média de todos os que fizeram ENADE.
3.7 Teste de Hipóteses (I)
Faça um teste de hipótese bilateral ao nível de confiança de 95% para média das notas do curso escolhido, verifique se a razão para dizer que a média das notas do curso escolhido é significativamente diferente da média geral das notas do ENADE, ao nível de confiança de 95%.
\[ H_0: \mu_{ENADE} = \mu_{Engenharia} \\ H_1: \mu_{ENADE} \neq \mu_{Engenharia} \] Vamos calcular o p-valor para o teste.
\[ \text{p-valor} = 2 * P (Z_{tabelado} \geq Z_{calculado}) \]
\[ Z_{calculado} = \frac{\bar{X} - \mu}{\frac{ \sigma}{\sqrt{n}}} \]
#-----------ITEM I
#cálculo do p-valor
mi <- mean(ds.all_adj$Nota_Geral) #media populacional
sigma <- sd(ds.all_adj$Nota_Geral) #desvio padrão populacional
N <- dim(ds.all_adj)[1] #tamanho da população
alpha <- 1-0.95
x_ <- mean(ds.engenharia$Nota_Geral) #média amostral
dp <- sd(ds.engenharia$Nota_Geral) #desvio padrão amostral
n <- dim(ds.engenharia)[1] #tamanho da amostra
alpha <- 1 - 0.95
z_tab <- qnorm(1 - (alpha/2) ) # distribuição acumulada até o ponto
z_calc <- ( x_ - mi ) / (sigma / sqrt(n))
p_valor <- pnorm(z_calc, mean=x_, sd=dp)Interpretação:
Após calcular o \(Z_{calculado}\), achamos p-valor =
0 < 5% = Nível de
Significância. Desta forma, temos evidências para se rejeitar \(H_0\) à 95% de confiança,
ou seja, a Nota Geral dos alunos de Engenharia é significantemente diferente da Nota Geral
de todos os alunos que fizeram o ENADE.