A planilha recebida contém inicialmente 43122 registros de alunos, no entanto, muitos deles são registros para um mesmo CPF. Ou seja, cada linha representa uma ação do estudante, podendo ser um trancamento, conclusão, integralização, cancelamento, entre outros.
A tabela abaixo mostra a existência de registros diferentes para o mesmo CPF:
Note-se porém, que o IRA de cada CPF permanece o mesmo. Assim, podemos obter um conjunto de dados com valores únicos para o CPF e o IRA. Assim, o CPF pode se repetir, mas para diferentes valores de IRA e Status, o que nos leva a crer que estes são os estudantes que reingressaram na Universidade. Existem muitos alunos com Status CONCLUÍDO e IRA zerado, o que significa?
dados %>% distinct(., CPF, Status, IRA, `Ação Afirmativa`) -> dados
pander::panderOptions("table.style", "grid")
# pander::pander(head(dados[duplicated(dados$CPF), ] %>% arrange(desc(CPF)), 15),
# split.cell = 80, split.table = Inf, justify = "center")
DT::datatable(dados %>% arrange(desc(CPF)))# Analise exploratoria dos dados ------------------------------------------
# <1> Nao cancelados:
dadosNaoCancelados <- dados %>% filter(Status %in% c("ATIVO", "CONCLUÍDO"))
# os dados do IRA possuem muitos zeros;
dadosNaoCancelados$IRA %>% hist# vamos remover os zeros
dadosNaoCancelados <- dadosNaoCancelados %>% filter(IRA > 0) %>% distinct(CPF, .keep_all = TRUE)
dadosNaoCancelados$IRA %>% hist## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.6087 6.2194 7.1490 6.9745 7.8512 9.6250
## [1] 3793
# COTISTAS
naoCanceladosCotistas <- dadosNaoCancelados %>% filter(!(`Ação Afirmativa` %in% c("AC", "N_APLICAVEL", NA)))
naoCanceladosCotistas %>% nrow## [1] 14
## .
## AC L01 L02 L05 L06 L09
## 0 1 4 5 4 0
## L10 L13 L14 N_APLICAVEL
## 0 0 0 0
## [1] 13 12
##
## Shapiro-Wilk normality test
##
## data: naoCanceladosCotistas$IRA
## W = 0.92768, p-value = 0.283
# NAO COTISTAS
naoCancelados <- dadosNaoCancelados %>% filter(`Ação Afirmativa` == "AC")
naoCancelados %>% nrow## [1] 49
## [1] 33 13
##
## Shapiro-Wilk normality test
##
## data: naoCancelados$IRA
## W = 0.97876, p-value = 0.5143
# Ja que a hipotese nula de que os dados seguem distribuicao normal
# nao foi rejeitada, podemos utilizar o teste t para comparar as medias.
naoCanceladosCotistas$IRA %>% summary## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6.236 7.067 7.868 7.743 8.599 8.877
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.941 6.947 7.470 7.447 7.863 9.458
##
## Welch Two Sample t-test
##
## data: naoCanceladosCotistas$IRA and naoCancelados$IRA
## t = 1.1555, df = 18.733, p-value = 0.2624
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.2411655 0.8343635
## sample estimates:
## mean of x mean of y
## 7.743379 7.446780
# teste nao parametrico:
wilcox.test(sample(naoCancelados$IRA, 14, replace = FALSE),naoCanceladosCotistas$IRA)##
## Wilcoxon rank sum test
##
## data: sample(naoCancelados$IRA, 14, replace = FALSE) and naoCanceladosCotistas$IRA
## W = 58, p-value = 0.06905
## alternative hypothesis: true location shift is not equal to 0
# Conclusao: a distribuicao das notas dos cotistas que concluem nao difere estatisticamente
# das notas dos alunos de ampla concorrencia. No entanto, vale ressaltar que os dados sao
# estranhos, pois informam que apenas 14 cotistas concluiram o curso.
# <2> Cancelados:
dadosCancelados <- dados %>% filter(Status %in% c("CANCELADO"))
# os dados do IRA possuem muitos zeros;
dadosCancelados$IRA %>% hist# vamos remover os zeros
dadosCancelados <- dadosCancelados %>% filter(IRA > 0) %>% distinct(CPF, .keep_all = TRUE)
dadosCancelados$IRA %>% hist## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0148 2.8904 4.5058 4.4912 6.1034 10.0000
## [1] 3786
# esse dados provavelmente esta errado: o estudante tem IRA = 10, possui reprovacoes e abandonou;
#dadosCancelados[dadosCancelados$IRA == max(dadosCancelados$IRA), ] %>% View
# COTISTAS
CanceladosCotistas <- dadosCancelados %>% filter(!(`Ação Afirmativa` %in% c("AC", "N_APLICAVEL", NA)))
CanceladosCotistas %>% nrow## [1] 60
## .
## AC L01 L02 L05 L06 L09
## 0 11 10 19 20 0
## L10 L13 L14 N_APLICAVEL
## 0 0 0 0
## [1] 13 12
##
## Shapiro-Wilk normality test
##
## data: naoCanceladosCotistas$IRA
## W = 0.92768, p-value = 0.283
# NAO COTISTAS
Cancelados <- dadosCancelados %>% filter(`Ação Afirmativa` == "AC")
Cancelados %>% nrow## [1] 99
## [1] 90 86
##
## Shapiro-Wilk normality test
##
## data: Cancelados$IRA
## W = 0.98049, p-value = 0.1495
# Ja que a hipotese nula de que os dados seguem distribuicao normal
# nao foi rejeitada, podemos utilizar o teste t para comparar as medias.
CanceladosCotistas$IRA %>% summary## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.3118 3.4516 4.8955 4.7235 6.0488 8.1000
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1462 2.9250 4.7700 4.4419 5.9374 8.8400
##
## Welch Two Sample t-test
##
## data: CanceladosCotistas$IRA and Cancelados$IRA
## t = 0.86751, df = 129.69, p-value = 0.3873
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.3606066 0.9237980
## sample estimates:
## mean of x mean of y
## 4.723492 4.441896
# teste nao parametrico:
wilcox.test(sample(Cancelados$IRA, 60, replace = FALSE), CanceladosCotistas$IRA)##
## Wilcoxon rank sum test with continuity correction
##
## data: sample(Cancelados$IRA, 60, replace = FALSE) and CanceladosCotistas$IRA
## W = 1830, p-value = 0.877
## alternative hypothesis: true location shift is not equal to 0
Desenvolvido por Kássio Camelo
kassio.silva@ufersa.edu.br