sábado, 5 de maio de 2012

Vale a pena fazer as listas de exercícios?

Como vocês sabem, sou da filosofia de que a função primordial da prova é estimular o estudo. Por isso, as nossas provas premiam fortemente quem faz todas as listas de exercício: a primeira metade da prova consiste em questões tiradas das listas, sem alteração. O aluno que faz todas as listas e tira as suas dúvidas sobre todos os exercícios deveria faturar os cinco primeiros pontos da prova em quinze minutos. No entanto, resta a pergunta: esse aluno aumentou as suas chances de um bom desempenho na segunda parte da prova, que consiste em questões inéditas? A seguir, eu uso o R para testar estatisticamente a hipótese de que os alunos que gabaritam a primeira parte da prova têm um desempenho superior na segunda parte.

As notas dos alunos, em cada questão da P1, foram digitadas num arquivo CSV (tipo brasileiro) chamado "NOTAS_2012-1_P1.csv". Se você quiser reproduzir no seu computador a análise que eu fiz, baixe o arquivo neste atalho. É um bom exercício de utilização do R!

Depois de baixar o arquivo de dados, tome o cuidado de colocá-lo no diretório de trabalho do R. Para saber qual é esse diretório, como vimos em sala de aula, você pode usar a função getwd(). O primeiro passo da análise, é claro, é importar o arquivo de dados para um moldura na área de trabalho do R:
notasP1 <- read.csv2("NOTAS_2012-1_P1.csv")
Observe que usamos a "versão 2" da função de leitura dos arquivos CSV, porque o arquivo está no padrão brasileiro, no qual a vírgula é o separador decimal e ponto-e-vírgula indica a separação de colunas.

Vamos atar a moldura ao caminho de busca de nomes do R, para não precisarmos digitar o nome da moldura antes dos nomes das colunas (por exemplo, poderemos consultar as notas na primeira questão digitando Q1 ao invés de notasP1$Q1):
attach(notasP1)
Agora, criaremos três novas colunas na moldura. A primeira será chamada "Disc" e conterá a soma das notas na parte discursiva da prova, com questões tiradas das listas de exercícios. A segunda coluna será chamada "MultEsc" e conterá a soma das notas da segunda parte, questões inéditas de múltipla escolha. A terceira nova coluna será chamada "ETL" (significando "Estudou Todas as Listas") e conterá o valor lógico TRUE se o aluno gabaritou as questões discursivas; e FALSE, caso contrário. (Sim, é possível um aluno que estudou bem todas as listas errar uma questão discursiva por nervosismo ou carência mnemônica; assim como é possível um aluno apenas estudar os slides, não fazer as listas, e mesmo assim gabaritar as questões discursivas. Nesta análise, porém, vou ignorar essas duas possibilidades e usar o gabarito da primeira parte da prova como uma indicação de que o aluno "estudou bem todas as listas".)
notasP1["Disc"] <- Q1+Q2+Q3
notasP1["MultEsc"] <- Q4+Q5+Q6+Q7+Q8+Q9
notasP1["ETL"] <- notasP1$Disc == 5
Por que foi necessário especificar o nome da moldura na criação da terceira coluna "ETL", ao fazermos referência à coluna "Disc"? Porque a coluna "Disc" foi criada depois do comando attach(notasP1) e, portanto, ela não se encontra no caminho de busca. Digite Disc e o console reagirá dizendo que não consegue encontrar esse objeto! Para sanar isso, execute novamente o comando:
attach(notasP1)
Examine o conteúdo da moldura e observe que as três novas colunas foram criadas depois da última coluna original, chamada "TOTAL".

A esta altura, você já deve ter percebido que o 25º aluno faltou à prova: todas as suas notas contêm o valor NA, que significa "Not Available" ("não disponível"). Isto não é necessário para o teste que faremos, mas, só para lembrar um pouco da flexibilidade da indexação no R, vamos excluir esse aluno faltoso da moldura:
notasP1 <- notasP1[c(1:24,26:30),]
Digite de novo notasP1 e verifique que a 25ª linha da moldura foi excluída. (Se você obteve uma mensagem de erro ao digitar o comando acima, provavelmente esqueceu da última vírgula dentro de colchetes. E se você não entendeu a necessidade dessa vírgula, é hora de revisar a nossa aula sobre indexação em R.)

Estamos prontos para explorar os dados e investigar a questão que nos interessa: estudar bem todas as listas correlaciona-se com um bom resultado nas questões de múltipla escolha? Antes de realizar o teste formal, vamos aproveitar a oportunidade para lembrar de um diagrama muito utilizado em análise exploratória de dados chamado "diagrama de caixas" ("box plot" em inglês). Ele apresenta graficamente cinco observações especiais numa amostra qualquer de dados: o menor valor, o primeiro quartil, a mediana, o terceiro quartil e o valor máximo. Vamos gerar no R, e depois interpretar, o diagrama de caixas das notas na segunda parte da prova para os dois subgrupos de alunos, os que "estudaram bem todas as listas" e os que não. Digite no console o seguinte comando (observe a sintaxe da fórmula entre parênteses, similar àquela usada na função lm):
boxplot(MultEsc ~ ETL,
xlab="Estudou bem as listas",
ylab="Nota na 2ª parte da prova")
Você deveria ver o seguinte gráfico:



















O diagrama de caixas nos diz o seguinte, em palavras. No grupo de alunos que não estudaram bem as listas (a caixa à esquerda), houve uma grande dispersão de notas na 2ª parte da prova: a menor nota foi -1 (pode haver nota negativa, porque erros são penalizados nas questões de múltipla escolha) e a maior nota foi 5 (a maior nota possível). Além disso, o diagrama mostra que, desses alunos, 25% tiraram nota menor ou igual a 1; 50% tiraram nota menor ou igual a 2; e 75% tiraram nota menor ou igual a 3. Já no grupo de alunos que estudaram bem as listas (caixa à direita), a dispersão não foi tão grande: a menor nota foi 2 e a maior nota 5. Desses alunos, 50% tiraram nota menor ou igual a 3,5.

O diagrama de caixas mostra, numa rápida olhada, que o desempenho nas questões inéditas dos alunos que estudaram bem as listas foi melhor do que o desempenho dos que não estudaram bem as listas. Mas será que essa diferença de desempenho é estatisticamente significativa? Vamos testar essa hipótese através de uma regressão entre as notas nas questões de múltipla escolha e a variável binária ETL:
summary(lm(MultEsc ~ ETL))
O resultado é este:

Call:
lm(formula = MultEsc ~ ETL)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.07895 -1.07895 -0.07895  1.30000  2.92105 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   2.0789     0.3752   5.540 7.16e-06 ***
ETLTRUE       1.6211     0.6390   2.537   0.0173 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 1.636 on 27 degrees of freedom
Multiple R-squared: 0.1925,     Adjusted R-squared: 0.1626 
F-statistic: 6.436 on 1 and 27 DF,  p-value: 0.01728 

Como você pode ver, a variável ETL, quando verdadeira, i.e. assumindo valor 1, correlaciona-se com um aumento de 1,62 ponto na nota média nas questões de múltipla escolha. E esse aumento é sim estatisticamente significativo, ao nível de 5%, já que a hipótese nula de ausência de relação entre as variáveis tem p-valor igual a 1,73%. (Confesso que fiquei surpreso com uma significância tão grande, porque a amostra é pequena, apenas 29 observações.)

Em suma: estude bem as listas de exercício antes da prova, porque o seu desempenho em toda a prova será melhor!

PS: Você é capaz de realizar uma regressão entre as notas na segunda parte da prova e as notas na primeira parte? O resultado dessa regressão desmente ou confirma o resultado acima?

Nenhum comentário:

Postar um comentário