使用mirt包拟合2PL模型后,如何识别参数的标准误?
解决mirt包2PL模型参数标准误提取问题
嗨,我来帮你搞定这个问题!你已经在拟合模型时设置了SE=TRUE,但直接查看的结果里没看到标准误,是因为默认输出只展示了参数点估计和置信区间,得用专门的方法提取SE。
正确提取标准误的步骤:
- 先把拟合好的模型存为对象:
首先确保你把模型赋值给一个变量,比如:mod <- mirt(mydata, 1, itemtype = '2PL', SE = TRUE) - 用
coef()函数提取带SE的参数:
调用coef()并指定SE=TRUE,就能得到每个项目的参数和对应的标准误了。针对你提到的第59题,可以这样提取:
输出结果会是类似这样的结构,明确区分参数估计值和标准误:coef(mod, SE = TRUE)$`59`
注:par SE a1 36.859 [具体SE数值] d -12.266 [具体SE数值] g 0.000 NA u 1.000 NAg(猜测参数)和u(上渐近线)在2PL模型里被固定为0和1,所以没有标准误,这也是你之前看到NA的原因。
关于你看到的置信区间(CI):
你之前输出里的CI_2.5和CI_97.5其实是基于标准误计算出来的(置信区间公式:参数估计值 ± 1.96*标准误),如果临时需要,也可以通过置信区间反推SE:
SE_a1 <- (979.295 - (-905.576)) / (2*1.96) SE_d <- (421.117 - (-445.648)) / (2*1.96)
不过直接用coef(mod, SE=TRUE)提取的结果会更准确。
稀疏二元数据的注意事项:
你提到数据是稀疏二元的,注意到第59题的参数估计值(a1=36.859,d=-12.266)非常极端,这可能提示该题的反应模式偏态严重(比如绝大多数人答对或答错),这种情况下标准误可能不稳定。建议先检查该题的反应分布:
table(mydata$`59`)
如果确实是极端分布,可以考虑是否保留该题目,或者调整模型估计方法(比如使用边际极大似然估计时,设置estimator = 'MH-RM'来处理稀疏数据)。
内容的提问来源于stack exchange,提问作者Ester Silva
相关产品推荐
相关产品推荐

