
Case ENADE/INEP
Carregando Pacotes
vetor_pacotes=c("readr",
"ggplot2",
"rmdformats",
"reactable",
"plotly",
"e1071",
"dplyr",
"Hmisc",
"DescTools",
"esquisse",
"kableExtra",
"gridExtra",
"e1071",
"devtools"
)
#install.packages(vetor_pacotes)
lapply(vetor_pacotes,
require,
character.only = TRUE)
## [[1]]
## [1] TRUE
##
## [[2]]
## [1] TRUE
##
## [[3]]
## [1] TRUE
##
## [[4]]
## [1] TRUE
##
## [[5]]
## [1] TRUE
##
## [[6]]
## [1] TRUE
##
## [[7]]
## [1] TRUE
##
## [[8]]
## [1] TRUE
##
## [[9]]
## [1] TRUE
##
## [[10]]
## [1] TRUE
##
## [[11]]
## [1] TRUE
##
## [[12]]
## [1] TRUE
##
## [[13]]
## [1] TRUE
##
## [[14]]
## [1] TRUE
Importacao do banco do ENADE/INEP
enade2017 = read_csv2("MICRODADOS_ENADE_2017.txt")
Selecionando as variaveis desejadas
microdados_enade_filtrados = enade2017 %>% dplyr::select(
CO_GRUPO,
CO_REGIAO_CURSO,
NU_IDADE,
TP_SEXO,
CO_TURNO_GRADUACAO,
NT_GER,
QE_I01,
QE_I02,
QE_I03,
QE_I04,
QE_I08,
QE_I15,
QE_I21,
QE_I23,
NT_OBJ_FG,
NT_OBJ_CE
)
Selecionando o curso de ADS
microdados_ti = microdados_enade_filtrados %>% filter(CO_GRUPO == 72)
Transformando as variaveis (Colocando os labels)
Data quality e Bloco da analise descritiva das variaveis
#Contabilizando os Na´s
resumo_nas=microdados_ti %>%
select(everything()) %>%
summarise_all(list(~sum(is.na(.))))
#Removendo Na´S De todas As variáveis que possuem NA
microdados_ti_sem_NA=microdados_ti %>% na.omit()
#Verificando de foram retirados os NA´S
resumo_nas2=microdados_ti_sem_NA %>%
select(everything()) %>%
summarise_all(list(~sum(is.na(.))))
resumo_nas %>% kbl %>% kable_material_dark(full_width = F)
NU_IDADE
|
NT_GER
|
NT_OBJ_FG
|
NT_OBJ_CE
|
estado_civil
|
cor
|
nacionalidade
|
escolaridade_pai
|
regiao
|
sexo
|
renda
|
ingresso_bolsa
|
hestudos
|
0
|
2795
|
2795
|
2795
|
2079
|
2079
|
2079
|
2079
|
0
|
0
|
2079
|
2079
|
2079
|
microdados_ti_sem_NA %>%
select(NT_OBJ_CE) %>%
summarise( quantidade=n(),
media = mean(NT_OBJ_CE),
mediana = median(NT_OBJ_CE),
moda=Mode(NT_OBJ_CE),
cv=sd(NT_OBJ_CE)/media*100,
assimetria=skewness(NT_OBJ_CE),
curtose=kurtosis(NT_OBJ_CE)
) %>%
arrange(desc(mediana)) %>%
kbl %>%
kable_material_dark(full_width = F)
quantidade
|
media
|
mediana
|
moda
|
cv
|
assimetria
|
curtose
|
9636
|
42.0906
|
40
|
40
|
37.42576
|
0.1863963
|
-0.2791433
|
#Estatísticas resumo
summary(microdados_ti_sem_NA$NT_OBJ_CE)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 30.00 40.00 42.09 55.00 95.00
Gráficos da análise descritiva para a variável nota dos alunos de
ADS
g_hist=ggplot(microdados_ti_sem_NA,aes(x=NT_OBJ_CE)) +
geom_histogram(color = "black",fill="lightblue",bins =50,aes(y=(..count..)/sum(..count..)))+
ggtitle("Histograma da nota dos alunos de análise de sistemas (ADS) ")+
xlab("nota") +
ylab("Frequência relativa")
g_densidade=ggplot(microdados_ti_sem_NA,aes(x=NT_OBJ_CE))+
geom_density(col=2,size = 1, aes(y = 27 * (..count..)/sum(..count..))) +
ggtitle("Curva de densidade da nota dos alunos de análise de sistemas") +
xlab("Nota dos alunos de ADS") +
ylab("Frequência relativa")
g_hist_densidade = ggplot(microdados_ti_sem_NA,aes(x=NT_OBJ_CE)) +
geom_histogram(color = "black",fill="lightblue",bins =50,aes(y=(..count..)/sum(..count..)))+
geom_density(col=2,size = 1, aes(y = 27 * (..count..)/sum(..count..))) +
ggtitle("Histograma e curva de densidade da nota dos alunos de análise de sistemas")+
xlab("Nota dos alunos de ADS") +
ylab("Frequência relativa")
grid.arrange( g_hist,
g_densidade,
g_hist_densidade,
nrow=3,ncol=1)

Comparando as médias por sexo e estado civil
#Comparar as médias por sexo e estado civil
require(dplyr)
microdados_ti_mod2= microdados_ti_sem_NA %>%
select(estado_civil,NT_GER,sexo) %>%
group_by(sexo,estado_civil) %>%
summarise( quantidade=n(),
media = mean(NT_GER,na.rm = T),
mediana = median(NT_GER,na.rm = T),
cv=sd(NT_GER,na.rm=T)/media*100,
amplitude_interquartil=IQR(NT_GER)) %>%
arrange(desc(mediana))
microdados_ti_mod2 %>% kbl %>% kable_material_dark(full_width = F)
sexo
|
estado_civil
|
quantidade
|
media
|
mediana
|
cv
|
amplitude_interquartil
|
Masculino
|
Solteiro(a)
|
6196
|
40.73179
|
40.2
|
31.75809
|
18.125
|
Feminino
|
Solteiro(a)
|
1093
|
40.16587
|
39.5
|
30.43281
|
16.700
|
Masculino
|
Outro
|
264
|
39.57500
|
39.5
|
33.66701
|
17.225
|
Masculino
|
Separado(a)
|
154
|
39.62597
|
38.9
|
32.83213
|
15.675
|
Feminino
|
Outro
|
39
|
40.50000
|
38.7
|
29.81838
|
17.450
|
Masculino
|
Casado(a)
|
1681
|
39.11059
|
38.2
|
33.63496
|
17.900
|
Feminino
|
Separado(a)
|
29
|
39.88621
|
35.9
|
36.97135
|
21.100
|
Feminino
|
Casado(a)
|
169
|
35.80473
|
35.8
|
28.19825
|
13.800
|
Masculino
|
Viúvo(a)
|
7
|
32.01429
|
35.3
|
25.46293
|
10.150
|
Feminino
|
Viúvo(a)
|
4
|
33.65000
|
32.7
|
18.85376
|
5.150
|
#Tabulação cruzada
table(microdados_ti_sem_NA$estado_civil,microdados_ti_sem_NA$sexo) %>% kbl %>% kable_material_dark(full_width = F)
|
Feminino
|
Masculino
|
Casado(a)
|
169
|
1681
|
Outro
|
39
|
264
|
Separado(a)
|
29
|
154
|
Solteiro(a)
|
1093
|
6196
|
Viúvo(a)
|
4
|
7
|
#Tabulação cruzada proporção
prop.table(table(microdados_ti_sem_NA$estado_civil,microdados_ti_sem_NA$sexo)) %>% kbl %>% kable_material_dark(full_width = F)
|
Feminino
|
Masculino
|
Casado(a)
|
0.0175384
|
0.1744500
|
Outro
|
0.0040473
|
0.0273973
|
Separado(a)
|
0.0030095
|
0.0159817
|
Solteiro(a)
|
0.1134288
|
0.6430054
|
Viúvo(a)
|
0.0004151
|
0.0007264
|
#assimetria e curtose
dados_casados = microdados_ti_sem_NA %>%
select(estado_civil,NT_GER,sexo) %>%
group_by(estado_civil) %>%
summarise( quantidade=n(),
media = mean(NT_GER),
mediana = median(NT_GER),
cv=sd(NT_GER)/media*100,
amplitude_interquartil=IQR(NT_GER),
assimetria=skewness(NT_GER),
curtose=kurtosis(NT_GER)
) %>%
arrange(desc(cv))
dados_casados %>% kbl %>% kable_material_dark(full_width = F)
estado_civil
|
quantidade
|
media
|
mediana
|
cv
|
amplitude_interquartil
|
assimetria
|
curtose
|
Separado(a)
|
183
|
39.66721
|
38.7
|
33.42125
|
15.95
|
0.3089961
|
0.4420301
|
Casado(a)
|
1850
|
38.80859
|
37.9
|
33.33901
|
17.60
|
0.3242207
|
-0.0127253
|
Outro
|
303
|
39.69406
|
39.3
|
33.13998
|
17.15
|
0.3696191
|
0.1760944
|
Solteiro(a)
|
7289
|
40.64693
|
40.1
|
31.56982
|
17.90
|
0.1533047
|
-0.1443958
|
Viúvo(a)
|
11
|
32.60909
|
33.6
|
22.24668
|
7.65
|
-0.4285442
|
-1.1530183
|
Análises Gráficas - Comparando as médias por sexo e estado
civil
dados=microdados_ti_sem_NA
grafico_boxplot1 = ggplot(dados, aes(x=estado_civil,y=NT_GER,fill=estado_civil)) +
geom_boxplot() +
ggtitle("Gráfico de Box-plot da Nota por Estado civil e Sexo")+
xlab("Estado civil") +
ylab("Notas") +
facet_grid(~sexo)+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
ggplotly(grafico_boxplot1)
Comparando as médias por sexo e região
microdados_ti_mod3= microdados_ti_sem_NA %>%
select(estado_civil,NT_GER,regiao,hestudos,sexo) %>%
group_by(sexo,regiao) %>%
summarise(quantidade=n(),
media = mean(NT_GER),
mediana = median(NT_GER),
cv=sd(NT_GER)/media*100,
amplitude_interquartil=IQR(NT_GER),
assimetria=skewness(NT_GER),
curtose=kurtosis(NT_GER)) %>%
arrange(desc(media))
microdados_ti_mod3 %>% kbl %>% kable_material_dark(full_width = F)
sexo
|
regiao
|
quantidade
|
media
|
mediana
|
cv
|
amplitude_interquartil
|
assimetria
|
curtose
|
Feminino
|
Nordeste
|
107
|
41.49439
|
40.10
|
26.89272
|
13.150
|
0.7279419
|
0.8011439
|
Masculino
|
Sudeste
|
4864
|
40.69354
|
40.30
|
31.61288
|
17.925
|
0.1552135
|
-0.1305924
|
Feminino
|
Sul
|
218
|
40.36743
|
39.20
|
31.38749
|
17.350
|
0.2003281
|
-0.2015103
|
Masculino
|
Nordeste
|
746
|
40.20912
|
39.60
|
33.75074
|
18.400
|
0.2466751
|
-0.0938881
|
Masculino
|
Sul
|
1866
|
40.17637
|
39.60
|
33.19460
|
18.675
|
0.1895243
|
-0.1812987
|
Feminino
|
Sudeste
|
857
|
39.57235
|
38.90
|
30.76056
|
16.900
|
0.1622693
|
-0.0104767
|
Masculino
|
Norte
|
218
|
39.45229
|
37.85
|
30.31492
|
17.100
|
0.2366240
|
-0.3260545
|
Masculino
|
Centro-Oeste
|
608
|
38.47747
|
37.00
|
32.82592
|
17.100
|
0.3543374
|
-0.0472158
|
Feminino
|
Norte
|
45
|
37.97111
|
35.60
|
29.31818
|
15.800
|
0.9252027
|
1.2911632
|
Feminino
|
Centro-Oeste
|
107
|
37.01776
|
36.20
|
30.29093
|
16.000
|
0.1015846
|
-0.2714367
|
#Tabulação cruzada
table(microdados_ti_sem_NA$regiao,microdados_ti_sem_NA$sexo) %>% kbl %>% kable_material_dark(full_width = F)
|
Feminino
|
Masculino
|
Centro-Oeste
|
107
|
608
|
Nordeste
|
107
|
746
|
Norte
|
45
|
218
|
Sudeste
|
857
|
4864
|
Sul
|
218
|
1866
|
#Tabulação cruzada proporção
prop.table(table(microdados_ti_sem_NA$regiao,microdados_ti_sem_NA$sexo))%>% kbl %>% kable_material_dark(full_width = F)
|
Feminino
|
Masculino
|
Centro-Oeste
|
0.0111042
|
0.0630967
|
Nordeste
|
0.0111042
|
0.0774180
|
Norte
|
0.0046700
|
0.0226235
|
Sudeste
|
0.0889373
|
0.5047738
|
Sul
|
0.0226235
|
0.1936488
|
Análises Gráficas - Comparando as médias por sexo e região
#box-plot
dados=microdados_ti_sem_NA
grafico_boxplot2 = ggplot(dados, aes(x=regiao,y=NT_GER,fill=regiao)) +
geom_boxplot() +
ggtitle("Gráfico boxplot da Nota por
região e sexo")+
ylab("Notas") +
facet_grid(~sexo)+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
ggplotly(grafico_boxplot2)
Análises Gráficas - Comparando as médias por renda e sexo
#box-plot
dados=microdados_ti_sem_NA
grafico_boxplot3 = ggplot(dados, aes(x=renda,y=NT_GER,fill=renda)) +
geom_boxplot() +
ggtitle("Gráfico boxplot da Nota por
região e sexo")+
ylab("Notas") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
ggplotly(grafico_boxplot3)
Análises Gráficas - Porcentagem de horas de estudos
df_pizza_tab = table(microdados_ti_sem_NA$hestudos)
df_pizza_porcent = prop.table(df_pizza_tab)
df_pizza_porcent <<- as.data.frame(df_pizza_porcent)
#pizza
grafico_pizza = plot_ly(df_pizza_porcent,
labels = ~ Var1,
values = ~ Freq,
type = 'pie') %>%
layout(title = 'Quantas horas por semana, aproximadamente, você dedicou aos estudos, excetuando as horas de aula?')
grafico_pizza
Análises Gráficas - Porcentagem de ingresso por meio de políticas
afirmativas ou inclusão
df_pizza_tab = table(microdados_ti_sem_NA$ingresso_bolsa)
df_pizza_porcent = prop.table(df_pizza_tab)
df_pizza_porcent <<- as.data.frame(df_pizza_porcent)
#pizza
grafico_pizza2 = plot_ly(df_pizza_porcent,
labels = ~ Var1,
values = ~ Freq,
type = 'pie') %>%
layout(title = 'Seu ingresso no curso de graduação se deu por meio de políticas de ação afirmativa ou inclusão social? ')
grafico_pizza2
Análises Gráficas - Porcentagem de alunos por cor
df_pizza_tab = table(microdados_ti_sem_NA$cor)
df_pizza_porcent = prop.table(df_pizza_tab)
df_pizza_porcent <<- as.data.frame(df_pizza_porcent)
#pizza
grafico_pizza3 = plot_ly(df_pizza_porcent,
labels = ~ Var1,
values = ~ Freq,
type = 'pie') %>%
layout(title = 'Qual a sua cor ou raça?')
grafico_pizza3