如何在R中固定项目难度且含单值列时使TAM::tam正常运行?
解决TAM包
tam()函数的维度错误问题 错误原因
你遇到的错误来自两个核心问题:
- 仅输入1个受试者的数据,导致模型矩阵操作时出现维度不匹配;
item2的所有样本得分都是0(最大得分0),这类无变异项目会干扰模型的矩阵构建逻辑。
参数层面的解决方案
直接使用exclude.items参数排除无变异的item2即可解决问题,同时需要对应调整固定难度矩阵(只保留有效项目的难度值)。修改后的代码如下:
# 单个受试者数据 data <- t(c(item1 = 1, item2 = 0, item3 = 1)) # 调整固定难度矩阵:仅保留item1和item3的难度(对应排除item2) difficulty_matrix <- cbind(c(1, 3), c(1.5, 1.0)) # 加载TAM包并拟合模型 library(TAM) model_result <- tam(data, xsi.fixed = difficulty_matrix, exclude.items = "item2", verbose = F) # 提取受试者能力值 model_result$person$theta
补充说明
无变异项目(全0/全满分)无法为IRT模型提供能力估计的有效信息,因此必须排除。如果一定要保留所有项目,添加虚拟行是唯一可行的替代方案,但参数层面没有办法强制模型处理这类无效项目。
内容的提问来源于stack exchange,提问作者Julien
相关产品推荐
相关产品推荐

