You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从mirt对象提取项目参数数据框?附部分参数固定建模需求

从训练好的mirt对象提取df.param格式参数数据框

要从已训练好的mod(mirt对象)中提取和df.param结构完全一致的参数数据框,直接用mirt包的extract.mirt函数提取参数细节,再转换为长格式数据框即可,具体步骤如下:

  1. 提取模型参数列表
    用extract.mirt(mod, 'pars')获取每个项目的完整参数信息,包括项目名、参数值、是否允许估计等核心字段。

  2. 转换为df.param格式的数据框
    通过循环处理每个项目的参数,拼接成标准的df.param结构:

library(mirt)

# 从训练好的mod中提取参数列表
par_list <- extract.mirt(mod, 'pars')

# 转换为df.param格式的数据框
df.param_from_mod <- do.call(rbind, lapply(par_list, function(item_pars) {
  data.frame(
    item = item_pars$item,
    name = names(item_pars$value),
    parnum = seq_along(item_pars$value),
    value = unname(item_pars$value),
    est = item_pars$est,
    stringsAsFactors = FALSE
  )
}))

验证格式一致性

你可以用all.equal(df.param, df.param_from_mod)检查两个数据框的结构和数值是否完全匹配(因设置了随机种子,参数值会和模拟结果完全一致)。

固定部分参数重新建模

拿到这个数据框后,只需把要固定参数的est列改为FALSE,再传入mirt函数重新拟合即可。比如要固定item1的难度参数:

# 定位item1的难度参数(name为d的行),将est设为FALSE
df.param_from_mod$est[df.param_from_mod$item == 'item1' & df.param_from_mod$name == 'd'] <- FALSE

# 用修改后的参数框重新拟合模型
fixed_mod <- mirt(dat, model = 1, itemtype = '2PL', pars = df.param_from_mod)

内容的提问来源于stack exchange,提问作者Julien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:19