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_ + erro

Nesse 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.