我正在尝试在 R 中拟合纵向项目响应理论 (IRT) 模型。我有一个在多个测量场合进行的测试。我想从分级响应模型 (GRM) 中检查个人因子得分(即能力水平)的增长曲线。我已经使用 R 中的 ltm 包来拟合 IRT 中的横截面 GRM 模型,但我不清楚如何(或者是否甚至可以在 ltm 中)扩展模型以处理跨时间对相同项目的重复测量。如何将增长曲线拟合到纵向 GRM 因子分数,以查看能力水平的均值/方差随时间的变化?如果 ltm 包无法做到这一点,哪些包/功能允许这样做?将特别感谢具体的代码示例。
以下是与我想要做的类似的经验示例(除了示例对二进制项目使用 Rasch 模型,而我将 GRM 用于多分数据):
例如,我希望能够估计和绘制个人的增长曲线,以检查能力水平随时间的平均变化(来自 McArdle & Grimm,2011):
而且,我希望能够估计样本的平均或原型增长曲线(来自 McArdle & Grimm,2011):
这是一个模拟数据集,在 3 个不同的时间点包含 20 个多分项(1-3 个响应量表):
library(mirt)
library(mvtnorm)
set.seed(1)
numberItems <- 20
numberItemLevels <- 2
sampleSize <- 1000
a <- matrix(rlnorm(numberItems, .2, .2))
d <- matrix(rnorm(numberItems*numberItemLevels), numberItems)
d <- t(apply(d, 1, sort, decreasing=TRUE))
Theta <- mvtnorm::rmvnorm(n=sampleSize, 0, matrix(1))
t1 <- simdata(a, d, N=sampleSize, itemtype="graded", Theta=Theta)
t2 <- simdata(a, d, N=sampleSize, itemtype="graded", Theta=Theta+.5)
t3 <- simdata(a, d, N=sampleSize, itemtype="graded", Theta=Theta+1)
dat <- data.frame(t1, t2, t3)