Mogę zasugerować ci co najmniej dwa pakiety, które pozwalają na wykonanie tych zadań: psych ( score.items
) i ltm ( descript
). CTT pakiet wydaje się również do procesu MCQ ale nie mam doświadczenia z nim. Więcej informacji można znaleźć na stronie internetowej W Revelle, The Personality Project , esp. strona poświęcona psychometrii z R, która zawiera instrukcje krok po kroku dotyczące importowania, analizowania i raportowania danych. Ponadto widok zadań CRAN dotyczący psychometrii zawiera wiele dodatkowych zasobów.
Jak opisano w twoim linku, MC oznacza „Średni całkowity surowy wynik osób, które odpowiedziały na element z prawidłową odpowiedzią”, a MI oznacza „Średni całkowity wynik osób, które nie odpowiedziały na element z prawidłową odpowiedzią”. Korelacja punkt-biserial (R (IT)) jest również dostępna w ltm
pakiecie ( biserial.cor
). Jest to w zasadzie wskaźnik siły odróżniającej elementu (ponieważ jest to korelacja elementu i całkowitego wyniku) i jest związany z parametrem dyskryminacji modelu IRT 2-PL lub ładunkiem czynnikowym w analizie czynnikowej.
Jeśli naprawdę chcesz odtworzyć pokazaną tabelę, myślę, że będziesz musiał owinąć część tego kodu niestandardowym kodem, przynajmniej w celu wygenerowania tego samego rodzaju tabeli. Zrobiłem szybki i brudny przykład, który odtwarza twój stół:
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
Ponieważ są to losowe odpowiedzi, korelacja biserialna i trudność przedmiotu nie mają większego znaczenia (oprócz sprawdzenia, czy dane są naprawdę losowe :). Warto również sprawdzić możliwe błędy, ponieważ opracowałem funkcję R w 10 '...
freq.resp <- raw.resp/apply(raw.resp, 1, sum, na.rm=T)
. Błąd polega na tym, że „dim (X) musi mieć długość dodatnią”, podczas gdy dim (raw.resp) ma wartość NULL. Czy to możliwe, że ponieważ moje dane nie mają wszystkich opcji z dodatnimi częstotliwościami, moje tabele nie są tej samej długości? Jak mogę wpisać zera w swoimtable
wywołaniu?