【问题标题】:Implement ConQuest score command in TAM在 TAM 中实施 ConQuest score 命令
【发布时间】:2015-03-02 11:47:47
【问题描述】:

在 IRT 软件 ConQuest 中,您可以使用命令“score”对使用相同的清单变量/原始数据但编码不同的多个维度/潜在变量进行建模。例如:

score (1,2,3) (0,1,2) (0,1,0) ! items(1-3);

“重新编码”原始分数从 1 到 3,第一个维度的 0、1 和 2 以及第二个维度(潜在变量)的 0、1、0。

您知道如何在 R 包 TAM 中实现相同功能(使用 lavaan 语法或其他方式)吗?我正在尝试运行 PCM 分析。

提前感谢!

KH

【问题讨论】:

    标签: r r-lavaan


    【解决方案1】:

    我在这里没有得到答复,但我联系了 TAM 包的作者 Alexander Robitzsch,这是他发给我的内容(经他许可发布):

    data(data.gpcm)
    psych::describe(data.gpcm)
    resp <- data.gpcm
    
    # define three dimensions and different loadings
    # of item categories on these dimensions
    I <- 3  # 3 items
    D <- 3  # 3 dimensions
    
    # define loading matrix B
    # 4 categories for each item (0,1,2,3)
    B <- array( 0 , dim=c(I,4,D) )
    for (ii in 1:I){
        B[ ii , 1:4  , 1 ] <- 0:3
        B[ ii , 1 ,2 ] <- 1
        B[ ii , 4 ,3 ] <- 1
                }
    dimnames(B)[[1]] <- colnames(resp)
    B[1,,]
      ##   > B[1,,]
      ##        [,1] [,2] [,3]
      ##   [1,]    0    1    0
      ##   [2,]    1    0    0
      ##   [3,]    2    0    0
      ##   [4,]    3    0    1
    
    # test run
    mod1 <- tam.mml( resp , B = B , control=list( snodes=1000 , maxiter=5)  )
    summary(mod1)
    

    当然,我必须根据自己的需要编辑代码,但大家可能会特别感兴趣:出于某种原因,B 矩阵仅在我还定义了 0 类别时才有效,尽管我的评分/data 只包含从 1 到 5 的值:

    B <- array( 0 , dim=c(9,6,5) ) # 9 items, 5 response cat. + 1, 5 latent dimensions
    for (ii in 1:I){
      B[ ii , 1:6  , 1 ] <- 0:5
      B[ ii , 2 ,2 ] <- 1
      B[ ii , 2 ,3 ] <- 1
      B[ ii , 6 ,3 ] <- 1
      B[ ii , 6 ,4 ] <- 1
      B[ ii , 4 ,5 ] <- 1
    }
    
    dimnames(B)[[1]] <- colnames(X)
    B[1,,]
    

    干杯, KH

    【讨论】:

      【解决方案2】:

      正如TAM 对上述答案的扩展,这里是如何使用mirt 包运行相同的代码,除了使用广义部分信用模型而不是 Rasch 模型(Rasch 模型需要显式模型正确识别的论据)。

      library(mirt)
      gpcm_mats <- list(B[1,,], B[2,,], B[3,,])
      sv <- mirt(resp, 3, itemtype = 'gpcm', 
                 gpcm_mats = gpcm_mats, pars = 'values') #starting values
      mod <- mirt(resp, 3, itemtype = 'gpcm', gpcm_mats = gpcm_mats)
      coef(mod, simplify=TRUE)
      

      【讨论】:

      • 感谢张贴这个,菲尔。这是我用于对内容和​​响应样式维度进行建模的代码:library(mirt) mats &lt;- list() mats[1:9] &lt;- list(matrix(c(0:4, 1,0,0,0,0, 1,0,0,0,1, 0,0,0,0,1, 0,0,1,0,0), 5)) model &lt;- mirt.model('T = 1-9 ARS = 1-9 ERS = 1-9 DRS = 1-9 MRS = 1-9 COV = ARS*ERS*DRS*MRS') mirtModel &lt;- mirt(X, model, 'gpcm', gpcm_mats = mats, method="QMCEM")
      • 但是请注意,gpcm_mats 属性仅在 mirt 包的开发版本中实现,可在github.com/philchalmers/mirt获得
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 2016-03-13
      • 2022-12-18
      • 2011-07-23
      • 2019-12-16
      相关资源
      最近更新 更多