这是我的第一个问题,我对R很陌生。
我正在尝试使用R中的equateIRT软件包来等同于在两个不同时间进行的两种测试形式。这两种形式各由9个项目组成,其中一个项目在两种形式之间是共同的,而其他项目具有唯一性(但是,仅项目的措辞有所不同)。 在为t2和t3运行Rasch模型(我不在看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),每个项目包含三个项目的列表。
下一步是项目系数的直接链接。我使用功能目录。
t23 <- direc(mods = mod23,which = c(2,3),method = "mean-mean")
summary(t23)
但是,这将返回错误:
“ $<-.data.frame
(*tmp*
,“ tmp”,值= NA)中的错误:替换项有1行,数据项有0”
对我来说(就像我说过的,我对R非常陌生),它看起来像direc函数实际上要求的不是mod23的数据帧(并且不能强制为一个)。但是,mod23的格式与包装指南和使用它的论文中所描述的完全相同。我使用equateIRT检查了其他代码,但没有发现任何区别。