Explorando dados abertos do SISU 2021 - Aprovação e matrícula

Explorando dados abertos do SISU 2021

Dados abertos do SISU 2021

O site dadosabertos.mec.gov.br possui microdados detalhados sobre diversos programas do MEC. Aqui, serão utilizados os microdados do SISU 2021. Há um arquivo para a Chamada Regular, e um arquivo para a Lista de Espera.

Chamada Regular: https://dadosabertos.mec.gov.br/sisu/item/166-2021-relatorio-sisu-chamada-regular-1-2021

Lista de Espera: https://dadosabertos.mec.gov.br/sisu/item/167-2021-relatorio-sisu-lista-de-espera-1-2021

Após baixar os arquivos, partimos para as análises.

Análise da Chamada Regular

Vamos obter os nomes das colunas dos dados. As colunas têm os mesmos nomes na Chamada Regular e na Lista de Espera, mas mudam de ano para ano.

colunas_reg_2021 <- fread("ListagemChamadaRegular_2021-1.csv",nrow=1, 
               encoding="Latin-1") %>% colnames()

colunas_reg_2021
##  [1] "NU_ANO"              "NU_EDICAO"           "CO_ETAPA"           
##  [4] "DS_ETAPA"            "CO_IES"              "NO_IES"             
##  [7] "SIGLA_IES"           "SG_UF_IES"           "CO_CAMPUS"          
## [10] "NO_CAMPUS"           "SG_UF_CAMPUS"        "NO_MUNUCIPIO_CAMPUS"
## [13] "CO_IES_CURSO"        "NO_CURSO"            "DS_GRAU"            
## [16] "DS_TURNO"            "TP_MOD_CONCORRENCIA" "DS_MOD_CONCORRENCIA"
## [19] "NU_PERCENTUAL_BONUS" "NU_PESO_L"           "NU_PESO_CH"         
## [22] "NU_PESO_CN"          "NU_PESO_M"           "NU_PESO_R"          
## [25] "NOTA_MINIMA_L"       "NOTA_MINIMA_CH"      "NOTA_MINIMA_CN"     
## [28] "NOTA_MINIMA_M"       "NOTA_MINIMA_R"       "MEDIA_MINIMA"       
## [31] "NU_CPF"              "CO_INSCRICAO_ENEM"   "NO_INSCRITO"        
## [34] "TP_SEXO"             "DT_NASCIMENTO"       "SG_UF_CANDIDATO"    
## [37] "MUNICIPIO_CANDIDATO" "ST_OPCAO"            "NU_NOTA_L"          
## [40] "NU_NOTA_CH"          "NU_NOTA_CN"          "NU_NOTA_M"          
## [43] "NU_NOTA_R"           "NOTA_L_COM_PESO"     "NOTA_CH_COM_PESO"   
## [46] "NOTA_CN_COM_PESO"    "NOTA_M_COM_PESO"     "NOTA_R_COM_PESO"    
## [49] "NU_NOTA_CANDIDATO"   "NU_NOTACORTE"        "NU_CLASSIFICACAO"   
## [52] "ST_APROVADO"         "ST_MATRICULA"

São 53 colunas nos dados do SISU 2021 Chamada Regular. Vamos selecionar apenas aquelas que nos interessam.

cols_21<-c("NU_ANO","CO_ETAPA","DS_ETAPA",
           "SIGLA_IES",
           "NO_INSCRITO","NU_CPF","CO_INSCRICAO_ENEM",
           "ST_MATRICULA", 
           "ST_OPCAO","NU_CLASSIFICACAO","ST_APROVADO") 

Tendo as colunas de interesse, vamos carregar todas as linhas da Chamada Regular, selecionando apenas as colunas desejadas.

dados_reg_21 <- fread("ListagemChamadaRegular_2021-1.csv",
                     # nrow=50, # caso queira carregar poucas linhas
               select = cols_21,
               dec=",")

Vamos realizar algumas análises.

Exploração dos dados

dados_reg_21 %>% nrow()

Há 2413686 linhas na base de dados da Chamada Regular.

Com a função table(), conseguimos calcular a frequência em que determinado valor aparece na coluna de interesse. Consultando as colunas CO_ETAPA e DS_ETAPA:

table(dados_reg_21$CO_ETAPA)
table(dados_reg_21$DS_ETAPA)

…vemos que todos os estudantes estão na etapa 4, que tem descrição 1° CHAMADA.

Analisando a coluna ST_APROVADO:

table(dados_reg_21$ST_APROVADO)
## 
##       N       S 
## 2214729  198957

…vemos que há dois resultados possíveis: S ou N. Há 2214729 linhas com N, e 198957 linhas com S.

Analisando a coluna ST_MATRICULA:

table(dados_reg_21$ST_MATRICULA)
## 
##              CANCELADA DOCUMENTACAO REJEITADA              EFETIVADA 
##                   1166                   5509                 114244 
##         NÃO COMPARECEU               PENDENTE 
##                  78038                2214729

…vemos que há cinco respostas possíveis: CANCELADA, DOCUMENTACAO REJEITADA, EFETIVADA, NÃO COMPARECEU, PENDENTE.

O número de pessoas não aprovadas (N) é igual o número de pessoas com matrícula PENDENTE. O número de pessoas aprovadas (S) é igual a soma do número de pessoas nas outras quatro categorias (CANCELADA, DOCUMENTACAO REJEITADA, EFETIVADA, NÃO COMPARECEU). Ou seja, essas quatro categorias são destinos possíveis das pessoas aprovadas, enquanto todas as não aprovadas estão “pendentes”.

As pessoas aprovadas que não tiveram sua matrícula efetivada provavelmente tiveram suas vagas destinadas para a Lista de Espera. Somando os números de matrícula cancelada, documentação rejeitada e não compareceu, temos 84713 vagas que foram para a Lista de Espera, a serem preenchidas na Segunda Chamada em diante, presumidamente.

Comportamento dos inscritos

Quantas pessoas se inscreveram em apenas uma opção no SISU?

table(dados_reg_21$ST_OPCAO)
## 
##       1       2 
## 1250095 1163591

Há 1163591 linhas com OPÇÃO 2. 1250095 - 1163591 = 86504 estudantes se inscreveram em apenas uma opção.

Diferenciar cada inscrito

Na tentativa de diferenciar candidatos, podemos optar pelo Nome, CPF e número de Inscrição no ENEM. No entanto, sozinhos, nenhum desses dados são suficientes. O CPF e número de inscrição são incompletos, e por isso também se repetem. Usando a função table() descobrimos o nome mais comum e sua frequência.

table_inscrito<-as.data.frame(table(dados_reg_21$NO_INSCRITO))

O nome MARIA EDUARDA DA SILVA é o mais comum, aparecendo 178 vezes.

Usando a função table(table()) descobrimos a frequência do CPF e Número de Inscrição do ENEM mais frequentes.

table_cpf<-as.data.frame(table(dados_reg_21$NU_CPF))
tail(table(table(dados_reg_21$NU_CPF)))
## 
##  16  17  18  19  20  24 
## 122  14  24   2   7   1
table_enem<-as.data.frame(table(dados_reg_21$CO_INSCRICAO_ENEM))
tail(table(table(dados_reg_21$CO_INSCRICAO_ENEM)))
## 
## 2568 2572 2584 2585 2589 2593 
##    1    1    1    1    1    1

O CPF XXX.840.634-XX é o mais comum, aparecendo 24 vezes. O Número de Inscrição do ENEM 201XXXXXX061 é o mais comum, aparecendo 2593 vezes.

Assim, para fazer uma identificação única para cada estudante, podemos criar uma coluna INSCRITO_CPF_ENEM. Usamos gsub para remover X e símbolos.

dados_reg_21$INSCRITO_CPF_ENEM <- paste(dados_reg_21$NO_INSCRITO,
                       gsub("[X.-]", "",dados_reg_21$NU_CPF),
                       gsub("[X]"  , "",dados_reg_21$CO_INSCRICAO_ENEM))

table_table_inscrito_cpf_enem <- table(table(dados_reg_21$INSCRITO_CPF_ENEM))

table_table_inscrito_cpf_enem
## 
##       1       2 
##   86504 1163591

São 86504 estudantes que aparecem apenas uma vez na coluna INSCRITO_CPF_ENEM, o mesmo número de estudantes que se inscreveram apenas para uma opção. Os demais 1163591 estudantes se inscreveram para as duas opções a que tinham direito.

Análise da Lista de Espera

Vamos descobrir os nomes das colunas.

colunas_esp_2021 <- fread("ListagemListaEspera_2021-1.csv",nrow=1, 
               encoding="Latin-1") %>% colnames()

colunas_esp_2021
##  [1] "NU_ANO"              "NU_EDICAO"           "CO_ETAPA"           
##  [4] "DS_ETAPA"            "CO_IES"              "NO_IES"             
##  [7] "SIGLA_IES"           "SG_UF_IES"           "CO_CAMPUS"          
## [10] "NO_CAMPUS"           "SG_UF_CAMPUS"        "NO_MUNUCIPIO_CAMPUS"
## [13] "CO_IES_CURSO"        "NO_CURSO"            "DS_GRAU"            
## [16] "DS_TURNO"            "TP_MOD_CONCORRENCIA" "DS_MOD_CONCORRENCIA"
## [19] "NU_PERCENTUAL_BONUS" "NU_PESO_L"           "NU_PESO_CH"         
## [22] "NU_PESO_CN"          "NU_PESO_M"           "NU_PESO_R"          
## [25] "NOTA_MINIMA_L"       "NOTA_MINIMA_CH"      "NOTA_MINIMA_CN"     
## [28] "NOTA_MINIMA_M"       "NOTA_MINIMA_R"       "MEDIA_MINIMA"       
## [31] "NU_CPF"              "CO_INSCRICAO_ENEM"   "NO_INSCRITO"        
## [34] "TP_SEXO"             "DT_NASCIMENTO"       "SG_UF_CANDIDATO"    
## [37] "MUNICIPIO_CANDIDATO" "ST_OPCAO"            "NU_NOTA_L"          
## [40] "NU_NOTA_CH"          "NU_NOTA_CN"          "NU_NOTA_M"          
## [43] "NU_NOTA_R"           "NOTA_L_COM_PESO"     "NOTA_CH_COM_PESO"   
## [46] "NOTA_CN_COM_PESO"    "NOTA_M_COM_PESO"     "NOTA_R_COM_PESO"    
## [49] "NU_NOTA_CANDIDATO"   "NU_NOTACORTE"        "NU_CLASSIFICACAO"   
## [52] "ST_APROVADO"

Aqui são apenas 52 colunas, com ausência da coluna ST_MATRICULA.

cols_21<-c("NU_ANO","CO_ETAPA","DS_ETAPA","SIGLA_IES",
#          "NOTA_CANDIDATO","NOTA_CORTE", # ignorar estas colunas
           "NO_INSCRITO","NU_CPF","CO_INSCRICAO_ENEM",
           "ST_OPCAO",
          #"ST_MATRICULA", # ignorar esta coluna
           "NU_CLASSIFICACAO","ST_APROVADO") 

Mantemos as mesmas colunas de interesse.

dados_esp_21 <- fread("ListagemListaEspera_2021-1.csv",
                     # nrow=50, # caso queira carregar poucas linhas
               select = cols_21,
               encoding="Latin-1",dec=",")

Vamos realizar análises semelhantes.

Exploração dos dados

dados_esp_21 %>% nrow()

Há 774313 linhas na base de dados da Lista de Espera.

Com a função table(), conseguimos calcular a frequência em que determinado valor aparece na coluna de interesse. Consultando as colunas CO_ETAPA e DS_ETAPA:

table(dados_esp_21$CO_ETAPA)
table(dados_esp_21$DS_ETAPA)

…vemos que todos os estudantes estão na etapa 7, que tem descrição LISTA DE ESPERA.

Analisando a coluna ST_APROVADO:

table(dados_esp_21$ST_APROVADO)
## 
##      S 
## 774313

…vemos que, diferente da etapa anterior, só há um resultado possível: todos os estudantes estão com código S. Há 774313 linhas com S.

Criando uma coluna INSCRITO_CPF_ENEM, para fazer uma identificação única para cada estudante…

dados_esp_21$INSCRITO_CPF_ENEM <- paste(dados_esp_21$NO_INSCRITO,
                       gsub("[X.-]", "",dados_esp_21$NU_CPF),
                       gsub("[X]"  , "",dados_esp_21$CO_INSCRICAO_ENEM))

table_table_inscrito_cpf_enem <- table(table(dados_esp_21$INSCRITO_CPF_ENEM))

table_table_inscrito_cpf_enem
## 
##      1 
## 774313

…vemos que cada estudante só aparece uma vez, pois só podem concorrer a um curso na Lista de Espera.

Comportamento dos inscritos

Quantas pessoas estão com OPÇÃO 1 e quantas estão com OPÇÃO 2?

table(dados_esp_21$ST_OPCAO)
## 
##      1      2 
## 537777 236536

Há tanto estudantes na OPÇÃO 1 quanto na OPÇÃO 2.

Considerações

Os Dados Abertos permitem estudo detalhado do SISU, um processo seletivo para ingreso no ensino superior de suma importância. A transparência na divulgação dos dados é muito bem vinda, permite compreender melhor o processo e propor melhorias. Mesmo assim, esta iniciativa pode e deve ser aprimorada.

A falta de um Dicionário acompanhando estes Dados Abertos do SISU dificulta a análise por parte de pesquisadores. O Dicionário de Dados disponível no site do MEC não condiz exatamente com os dados disponibilizados, pois os nomes das colunas são diferentes. Também seria importante uma explicação mais detalhada do que quer dizer cada coluna e cada resultado. O que quer dizer o estudante ser “aprovado”? O que quer dizer a matrícula estar “pendente”? Se o estudante teve “documentação rejeitada”, ele está eliminado desta edição do SISU?

Ter uma identificação individual de cada estudante sem precisar recorrer a combinar várias colunas para isso facilitaria o trabalho do pesquisador. Poder se referir a estudantes com um número mais curto, sem ter que divulgar seu nome completo, protegeria a identidade destes estudantes e facilitaria a comunicação.

Os microdados do SISU 2022 possuem uma coluna referente a matrícula tanto nos dados da Chamada Regular quanto nos dados da Lista de Chamada. Isso indica um aprimoramento do serviço, mas ainda falta explicar as possíveis respostas para essa coluna.

Documento gerado em 2023-09-22 10:58:36.

As cotas e a ampla concorrência na UFV

Em agosto de 2012 foi sancionada a Lei 12.711, conhecida popularmente como Lei das Cotas. A partir de então, todas as universidades federai...