MAE5778 - Teoria da Resposta ao Item Fernando Henrique Ferraz Pereira da Rosa Robson Lunardi 11 de janeiro de 2005 Lista 1 1. Realize uma análise, utilizando o programa ITEMAN, de cada um dos itens e do teste como um todo, segundo a Teoria Clássica. No Anexo I, temos a saída da análise do questionário completo no ITE- MAN, utilizando a opção de correlação ponto-bisserial. A análise das saídas para cada uma das questões, revelou como merecedoras de destaque as questões 7, 12 e 17. O item 7 apresentou uma correlação ponto-bisserial razoavelmente baixa (39%), além de apresentar uma correlação ponto-bisserial positiva para uma alternativa incorreta (C). A questão 12 foi a que mostrou piores resultados, tendo um coeficiente de correlação ponto-bisserial negativo e próximo de zero, além de um índice de discriminação 0, indicando que o item não está discriminando entre os grupos de alunos. Pode ser possível que houve um erro no gabarito, tendo que a alternativa (D) apresenta resultados mais coerentes que a do gabarito (B). A questão 17 teve um coeficiente de correlação bisserial muito baixo (19%), além de um índice de discriminação também bem fraco (20%), indicando que ela não está discriminando bem os grupos e que não há uma boa correlação entre acertos e erros dessa questão com o escore total do teste. Outras questões que chamaram a atenção por razões similares foram a 8 e a 15, mas as evidências de que elas são inadequadas são mais fracas. A análise das estatísticas globais do teste revela que no geral ele está apresentando um desempenho razoável, com um α de 0.802 e um EPM de 2.01, consideravelmente menor que o desvio bruto dos scores, de 4.752. 2. Refaça a análise, após a eliminação de itens que você julgou não terem funcionado. Compare os resultados obtidos com aqueles do exercício anterior. Começamos tirando os items que apresentaram os piores resultados: 7, 12 e 17. No Anexo II, temos a saída do ITEMAN para esse caso. Nesta saída 1
podemos observar uma pequena melhora nos coeficientes de correlação ponto bisserial e índice de discriminação na maioria dos itens que ficaram. Notamos também uma queda nos valores do EPM (1.842) e da variância bruta dos scores (20.470) e um aumento no valor de α (0.834) indicando que houve uma melhora geral da prova. Procedemos então com a retirada dos dois itens que apresentaram os piores resultados (depois dos 3 já retirados) devido aos seus coeficientes de correlação ponto bisserial e índice de discriminação: 8 e 15. No Anexo III, temos a saída do ITEMAN para esse caso. Verificamos que em muitos itens que ficaram houve uma diminuição dos valores do coeficiente de correlação ponto bisserial e índice de discriminação. Observamos também que o valor de α com esta eliminação caiu um pouco (0.830) em relação ao último resultado obtido, apesar do EPM e da variância bruta dos escores terem caído um pouco. Devido a essa leve queda no desempenho geral do teste obtida com a retirada das questões 8 e 15, concluímos que que a prova que só considera a primeira eliminação (Anexo II) é a mais adequada. 3. Construa um programa para estimar: (a) os 5 primeiros itens, os seguintes parâmetros: índice de dificuldade, índice de discriminação, coeficiente de correlação ponto bisserial (para cada alternativa de resposta) e coeficiente de correlação bisserial (para cada alternativa de resposta). (b) o coeficiente alfa de fidedignidade e o erro padrão de medida (EPM) do teste. Construímos um conjunto de funções em R para realizar a análise clássica de itens. O código fonte segue no Anexo IV. Basicamente construímos uma classe trianal, uma função construtura para esse método e funções para imprimir os resultados e ler os dados. Para usar o programa, deve-se abrir uma sessão do R no diretório em que se encontra o arquivo fonte, e executar: > source( tri_class.r ) Com isso carrega-se as funções na memória. Lê-se então um conjunto de dados com a função le.dados(): > le01 <- le.dados( le_01.dat ) E gera-se um objeto de análise com a função analise() : > an1 <- analise(le01) 2
Como argumentos opcionais para analise(), pode-se especificar um gabarito alternativo ou ainda um subconjunto de questões que devem ser consideradas. Essas informações já estão disponíveis no arquivo de entrada, entretanto, para que possa-se fazer a análise mudando o gabarito e/ou as questões consideradas na análise sem a necessidade de se editar o arquivo de dados, foi adicionada essa funcionalidade. O comando abaixo por exemplo faz a análise das 4 primeiras questões somente: > an2 <- analise(le01,usa.questao=c(t,t,t,t,rep(f,18))) Para trocar o gabarito, procede-se da mesma forma. Para trocar o gabarito da questão 12 para D, por exemplo, fazemos: > gabarito <- le01$gabarito > gabarito[12] [1] "B" > gabarito[12] <- "D" > gabarito[12] [1] "D" > an3 <- analise(le01,gabarito=gabarito) Onde temos armazenados em an3 os resultados da análise. Por fim, basta imprimirmos o objeto resultante da análise para verificar os resultados. No item a) pede-se a análise para os 5 primeiros itens do teste. Para fazermos isso, basta usarmos a função print() no objeto adequado, especificando as questões que queremos observar: > print(an1,mostrar.questoes=1:5,global=false) Question 1 A 0.4653179 0.7207283 0.5882265 0.7382484 A 0.46531792 0.17142857 0.892156863 0.5882265 0.7382484 * B 0.25722543 0.32380952 0.098039216-0.2091873-0.2834648 C 0.10404624 0.14285714 0.000000000-0.2034865-0.3439407 D 0.02312139 0.03809524 0.000000000-0.0860195-0.2362007 E 0.13005780 0.27619048 0.009803922-0.3127053-0.4970636 NULO 0.02023121 0.04761905 0.000000000-0.1543285-0.4444033 3
Question 2 D 0.3583815 0.6305322 0.5226652 0.6709724 A 0.09826590 0.1428571 0.00000000-0.2044972-0.3513267 B 0.08959538 0.1142857 0.02941176-0.1075186-0.1897306 C 0.20809249 0.3333333 0.10784314-0.2371712-0.3358655 D 0.35838150 0.1047619 0.73529412 0.5226652 0.6709724 * E 0.18786127 0.1904762 0.10784314-0.0616127-0.0893056 NULO 0.05780347 0.1142857 0.01960784-0.1658558-0.3345741 Question 3 C 0.5433526 0.780112 0.6484235 0.8144313 A 0.19364162 0.35238095 0.009803922-0.3488436-0.5021019 B 0.10404624 0.15238095 0.009803922-0.1895415-0.3203703 C 0.54335260 0.19047619 0.970588235 0.6484235 0.8144313 * D 0.05491329 0.13333333 0.000000000-0.2272230-0.4659082 E 0.09248555 0.13333333 0.009803922-0.1952886-0.3414341 NULO 0.01156069 0.03809524 0.000000000-0.1771125-0.6261054 Question 4 E 0.66763 0.5210084 0.4611645 0.5981478 A 0.08381503 0.18095238 0.009803922-0.2533451-0.4559380 B 0.12427746 0.21904762 0.029411765-0.2228462-0.3585800 C 0.02601156 0.06666667 0.000000000-0.1520366-0.4005295 D 0.08959538 0.13333333 0.058823529-0.1330749-0.2348280 E 0.66763006 0.38095238 0.901960784 0.4611645 0.5981478 * NULO 0.00867052 0.01904762 0.000000000-0.1219972-0.4807907 4
Question 5 A 0.5635838 0.5565826 0.4516993 0.5687642 A 0.563583815 0.25714286 0.81372549 0.45169926 0.5687642 * B 0.063583815 0.06666667 0.04901961-0.05409001-0.1058914 C 0.052023121 0.10476190 0.02941176-0.13577451-0.2832665 D 0.161849711 0.22857143 0.07843137-0.17468867-0.2624581 E 0.153179191 0.32380952 0.02941176-0.29247666-0.4455333 NULO 0.005780347 0.01904762 0.00000000-0.14493139-0.6679198 Para fazer o item b, basta chamarmos a função print no mesmo objeto de análise, mas com o parâmetro global setado para verdadeiro: > print(an1,mostrar.questoes=null,global=true) Global Statistics questoes.efetivas 22.0000000 N 346.0000000 media 9.5317919 variancia 22.6439139 desvio 4.7585622 mediana 9.0000000 alpha 0.8207448 SEM 2.0147056 max.low 6.0000000 N.low 105.0000000 min.high 13.0000000 N.high 102.0000000 4. Para cada um dos 5 primeiros itens, construa um gráfico de dispersão para representar a relação entre a proporção de acerto e o escore médio, medidos em 7 classes de escore. Para esse fim, criamos a função triplot, com argumentos: > args(triplot) function (quest, obj, classes = 7) NULL Ela recebe o número de uma questão, um objeto de análise e o número de classes que desejamos dividir os dados. Ela então retorna um objeto da 5
classe triplot, que pode ser guardado ou no caso do método default em modo interativo (print), é feito o gráfico na tela. Com essa função, para gerar os gráficos pedidos, basta fazer: triplot(1,an1) triplot(2,an1) triplot(3,an1) triplot(4,an1) triplot(5,an1) Obtendo as Figuras: 6
Observamos que os gráficos dos itens analisados apresentam o comportamento esperado, com a curva lembrando uma curva logística com a > 0. Devido a generalidade do programa, é possível facilmente obter-se análises mais completas, assim como variar o número de classes de escore para os gráficos acima. No Anexo V temos uma análise completa das 22 questões, obtida com o comando: > print(an1) Temos também os gráficos de escore médio por proporção de acerto pra 7
as questões que retiramos do teste no Exercício 2 (Itens 7, 12 e 17). Em particular, observamos graficamente porque esses itens não foram apropriados. Para o item 12, temos que conforme o escore médio aumenta, não há crescimento algum na proporção acerto. Para a questão 17, temos que o crescimento da curva é muito lento, e para a questão 7, temos uma situação parecida. Temos ainda os gráficos de escore médio por proporção de acerto para a questão 1, mas com diferentes classes de escore (5, 7 e 12), respectivamente. O aumento no número de classes reflete em uma curva cada vez menos suave, conforme esperado. Por final temos o histograma dos escores, e o gráfico de barras das proporções de acertos, obtidos com os comandos: > hist(an1$outros$score) > barplot(an1$outros$prop.acerto) Sobre A versão eletrônica desse arquivo pode ser obtida em http://www.feferraz. net Copyright (c) 1999-2005 Fernando Henrique Ferraz Pereira da Rosa. É dada permiss~ao para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentaç~ao Livre GNU (GFDL), vers~ao 1.2, 8
publicada pela Free Software Foundation; Uma cópia da licença em está inclusa na seç~ao intitulada "Sobre / Licença de Uso". 9