это мой первый вопрос, и я очень плохо знаком с R.
Я пытаюсь приравнять две формы теста, которые проводились в два разных времени, используя пакет equateIRT в R. Форма состоит из 9 элементов каждая, причем один элемент является общим для обеих форм, а другие элементы уникальны (однако отличается только формулировка элементов). После запуска моделей Rasch для t2 и t3 (я не смотрю на измерение t1) и сохранения моих коэффициентов и матриц дисперсии-ковариации, я сначала создал список, который содержал коэффициенты обеих форм (называемые estc). Затем я создал список дисперсионно-ковариационных матриц (называемых estv). Я назвал мои две формы test2 и test3.
estc <- list(para_t2, para_t3)
estv <- list(varcov_t2, varcov_t3)
tests <- paste("test", 2:3, sep = "")
Пакет equateIRT запрашивает определенный объект, называемый modIRT. Он определяется как список с длиной, равной количеству форм, содержащих списки оценочных коэффициентов и ковариационных матриц моделей IRT. Я назвал объект mod23.
mod23 <- modIRT(coef=estc, var=estv, names = tests, ltparam = FALSE, lparam = FALSE,
display = FALSE)
Я также создал небольшой план связей, который показывает мне, что у меня есть один общий элемент между моими двумя формами.
linkp(coef = estc)
Пока все работает. mod23 выглядит точно так, как ожидалось: список из двух элементов (test2 и test3), каждый из которых содержит список из трех элементов.
объект типа modIRT
Следующим шагом является прямое связывание коэффициентов элемента. Я использую функцию directc.
t23 <- direc(mods = mod23, which = c(2,3), method = "mean-mean")
summary(t23)
Однако это возвращает ошибку:
"Ошибка в $<-.data.frame
(*tmp*
," tmp ", значение = NA): замена имеет 1 строку,data имеет 0 "
Для меня (как я уже сказал, я очень плохо знаком с R), похоже, что функция direc на самом деле запрашивает фрейм данных, который не является mod23 (и не может быть принудительно приведен). к одному). Тем не менее, формат mod23 в точности соответствует описанию в руководстве по пакетам и документам, в которых он используется. Я проверил другие коды с помощью equateIRT и не могу найти никакой разницы.