Je peux vous proposer au moins deux packages qui permettent d'effectuer ces tâches: psych ( score.items
) et ltm ( descript
). Le package CTT semble également traiter MCQ mais je n'en ai aucune expérience. Plus d'informations peuvent être trouvées sur le site Web de W Revelle, The Personality Project , esp. la page dédiée à la psychométrie avec R qui fournit des instructions pas à pas pour importer, analyser et rapporter des données. De plus, la vue des tâches du CRAN sur la psychométrie comprend de nombreuses ressources supplémentaires.
Comme décrit dans votre lien, MC signifie «Score brut total moyen des personnes qui ont répondu à l'élément avec la bonne réponse», et MI pour «Score total moyen des personnes qui n'ont pas répondu à l'élément avec la bonne réponse». La corrélation point-bisériale (R (IT)) est également disponible dans le ltm
package ( biserial.cor
). Il s'agit essentiellement d'un indicateur du pouvoir de discrimination de l'item (puisqu'il s'agit de la corrélation de l'item et du score total), et est lié au paramètre de discrimination d'un modèle IRT 2 PL ou à la charge factorielle dans l'analyse factorielle.
Si vous voulez vraiment reproduire le tableau que vous montrez, je suppose que vous devrez envelopper une partie de ce code avec du code personnalisé, au moins pour sortir le même type de tableau. J'ai fait un exemple rapide et sale qui reproduit votre tableau:
dat <- replicate(10, sample(LETTERS[1:4], 100, rep=TRUE))
dat[3,2] <- dat[67,5] <- NA
itan(dat)
P R MC MI NC OMIT A B C D
[1,] 0.23 -0.222 2.870 2.169 23 0 23 22 32 23
[2,] 0.32 -0.378 3.062 1.985 32 1 32 20 14 33
[3,] 0.18 -0.197 2.889 2.207 18 0 18 33 22 27
[4,] 0.33 -0.467 3.212 1.896 33 0 33 18 29 20
[5,] 0.27 -0.355 3.111 2.056 27 1 27 23 23 26
[6,] 0.17 -0.269 3.118 2.169 17 0 17 25 25 33
[7,] 0.21 -0.260 3.000 2.152 21 0 21 24 25 30
[8,] 0.24 -0.337 3.125 2.079 24 0 24 32 22 22
[9,] 0.13 -0.218 3.077 2.218 13 0 13 29 33 25
[10,] 0.25 -0.379 3.200 2.040 25 0 25 25 31 19
Comme il s'agit de réponses aléatoires, la corrélation bisériale et la difficulté des éléments ne sont pas très significatives (sauf pour vérifier que les données sont vraiment aléatoires :). De plus, cela vaut la peine de vérifier d'éventuelles erreurs, car j'ai rédigé la fonction R en 10 '...
freq.resp <- raw.resp/apply(raw.resp, 1, sum, na.rm=T)
. L'erreur est que "dim (X) doit avoir une longueur positive" tandis que dim (raw.resp) est NULL. Serait-ce parce que mes données n'ont pas toutes les options avec des fréquences positives, mes tables ne sont pas toutes de la même longueur? Comment puis-je remplir les zéros de montable
invocation?freq.resp
générera une erreur. Je vais corriger le code (d'ici demain), cela vous montrera également comment concaténer des tables irrégulières avec peu de code.La fonction de paquetage psych alpha produit ce que vous recherchez.
Pour exporter cela, enregistrez l'objet et utilisez la fonction xtable pour produire le balisage LaTeX, qui peut ensuite être formaté par n'importe quel éditeur LaTeX.
la source
psych::alpha
fait un meilleur travail quescore.items
, merci d'avoir ajouté cela. Je ne me souviens jamais de celle que je devrais utiliser!