Я могу предложить вам как минимум два пакета, которые позволяют выполнять эти задачи: psych ( score.items
) и ltm ( descript
). Пакет CTT , кажется, также обрабатывает MCQ, но у меня нет опыта работы с ним. Более подробную информацию можно найти на веб-сайте W Revelle, The Personality Project , esp. страница, посвященная психометрии с R, которая предоставляет пошаговые инструкции для импорта, анализа и отчета данных. Кроме того, представление задач CRAN по психометрии включает в себя множество дополнительных ресурсов.
Как описано в вашей ссылке, MC означает «Средний общий балл людей, которые ответили на вопрос с правильным ответом», а MI - «Средний общий балл людей, которые не ответили на вопрос с правильным ответом». Точечно-двоичная корреляция (R (IT)) также доступна в ltm
пакете ( biserial.cor
). Это в основном показатель силы различения предмета (поскольку это корреляция предмета и общего балла), и он связан с параметром распознавания модели IRT 2-PL или факторной нагрузкой в Факторном анализе.
Если вы действительно хотите воспроизвести таблицу, которую вы показываете, я думаю, вам придется обернуть часть этого кода пользовательским кодом, по крайней мере, для вывода таблицы такого же типа. Я сделал быстрый и грязный пример, который воспроизводит вашу таблицу:
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
Поскольку это случайные ответы, двойная корреляция и сложность предмета не очень значимы (за исключением проверки того, что данные действительно случайны :). Кроме того, стоит проверить возможные ошибки, так как я разработал функцию R за 10 минут ...
freq.resp <- raw.resp/apply(raw.resp, 1, sum, na.rm=T)
. Ошибка в том, что «dim (X) должен иметь положительную длину», тогда как dim (raw.resp) имеет значение NULL. Может ли быть так, что, поскольку у моих данных нет всех вариантов с положительными частотами, мои таблицы не имеют одинаковую длину? Как я могу заполнить нули в моемtable
вызове?