如何开始应用项目反应理论以及使用什么软件?

机器算法验证 心理测量学 潜变量 项目反应理论
2022-01-20 16:19:21

语境

我一直在阅读有关项目反应理论的内容,我觉得它很有趣。我相信我了解基础知识,但我想知道如何应用与该领域相关的统计技术。以下是与我想应用 ITR 的领域类似的两篇文章:

第二个是我实际上想在这个时间点扩展的。

我已经下载了一个名为 jMetrik 的免费程序,它似乎运行良好。我认为就 IRT 而言它可能太基本了,但我不确定。

我知道“最好”的方法可能涉及学习 R;但是,我不知道我是否可以抽出时间来解决学习曲线问题。请注意,我们有一些资金来购买软件,但据我所知,似乎没有任何出色的 IRT 计划。

问题

  • 您对 jMetrik 的有效性有何看法?
  • 您如何建议我继续申请 IRT?
  • 应用 IRT 的最佳程序是什么?
  • 你们中有人经常使用 IRT 吗?如果是这样,怎么做?
4个回答

作为 IRT 的一个很好的入门者,我总是推荐阅读A visual guide to item response theory

可在www.rasch.org上找到对可用软件的调查。

根据我的经验,我发现Raschtest(和相关的)Stata 命令在大多数对拟合单参数模型感兴趣的情况下非常方便。对于更复杂的设计,可以求助于GLLAMM有一个很好的工作示例,基于 De Boeck 和 Wilson 的书,解释项目和响应模型(Springer,2004)。

具体来说,关于 R,在过去五年中有很多可用的包,例如,请参阅相关的 CRAN任务视图其中大部分在统计软件杂志(2007 年第 20 卷)的特刊中进行了讨论。正如在另一个回复中所讨论的,ltmeRm允许适应各种 IRT 模型。由于它们依赖于不同的估计方法——在使用条件方法时使用边际方法——选择一种或另一种主要取决于你想要拟合的模型(ltmeRmeRm不适合 2 或 3 参数模型)和您遵循的测量目标:人参数的条件估计具有一些很好的心理测量特性,而边际方法可以让您轻松切换到混合效应模型,如以下两篇论文中所述:

也有一些使用 MCMC 方法拟合 Rasch 模型的可能性,例如参见MCMCpack包(或WinBUGS / JAGS,但参见项目响应理论的 BUGS 代码,JSS (2010) 36)。

我没有使用 SAS 进行 IRT 建模的经验,所以我会把它交给更精通 SAS 编程的人。

其他专用软件(主要用于教育评估)包括:RUMM、Conquest、Winsteps、BILOG/MULTILOG、Mplus(未引用维基百科上已有的列表)。没有一个可以免费使用,但其中一些建议有时间限制的演示版本。当我尝试使用 jMetrik时(一年前),我发现它非常有限,并且所有功能都已在 R 中可用。同样, ConstructMap可以安全地替换为lme4,如上面链接的讲义所示。我还应该提到mdltmvon Davier 和 coll. 的混合 Rasch 模型(多维离散潜在特征模型),它应该与本书配套多元和混合分布 Rasch 模型(Springer,2007)。

对于第一个问题,我没有关于 jMetrick 的任何信息。

在应用 IRT 时(与任何其他统计程序一样),第一步是将其与尽可能多的不同类型的数据一起使用。有一个学习曲线,但我相信这是值得的。

IRT 的一个重要特征是 Rasch 模型和 IRT 模型之间的区别。它们是由不同的人为不同的目的而开发的。话虽如此,IRT 模型是 Rasch 模型的超集。

Rasch 模型是一种参数模型——它们假设问卷中的所有项目都同样可以预测潜在特征。

然而,IRT 模型是两个参数模型,它们允许问题在提供有关参与者能力信息的能力方面有所不同。

此外,还有与 IRT 模型类似的三个参数模型,只是它们允许猜测参数来说明参与者偶然获得正确答案的能力(这更多的是关注能力而不是性格测试)。

此外,还有多维 IRT 可以同时估计多个潜在能力。我对此了解不多,但这是我打算了解更多的领域。

二分法和多分法 IRT 方法之间也有区别。二分 IRT 模型是用于能力测试的模型,它们有正确和错误的答案。多头 IRT 模型用于性格测试,其中有多个答案,这些答案同样正确(在没有正确答案的意义上)。

我个人将 R 用于项目响应理论。我使用了两个主要包,eRm它们仅适用于 Rasch 模型,并且ltm适用于项目响应理论模型(二参数模型和三参数模型)。两者都有类似的功能,并且都为二分法 IRT 模型提供了更多的例程。我不知道 R 是否是 IRT 的“最佳”,它没有所有可用的 IRT 模型,但它肯定是最可扩展的,因为它可以相对容易地对这些模型进行编程。

我在 R 中几乎专门将 IRT 用于多分模型。我通常从非参数 IRT 方法(在包中提供mokken)开始测试假设,然后继续使用 rasch 模型,根据需要增加更多复杂性以获得良好的拟合。

对于多维 IRT,有一个包 `mirt',它提供了这个功能。我没有使用它,所以我无法真正发表评论。

如果你确实将这些包安装到 R 中,并调用 'vignette("packagename")' 函数,那么你应该得到一些有用的小插图(肯定是eRmmokken,可能对其他人来说),这可能对你有用(取决于你的水平数学复杂性)。

最后,还有许多适用于 rasch 和 irt 模型的好书。心理学家经常使用项目反应理论(虽然我不喜欢这种风格),并且在技术复杂性链的进一步上升,有两本非常全面和有用的教科书 -现代项目反应理论拉施模型手册:基础,最近发展和应用

我希望这有帮助。

jMetrik 比您想象的更强大。它专为研究人员需要在单个统一框架中执行多个程序的操作工作而设计。目前,您可以估计 Rasch、部分信用和评级量表模型的 IRT 参数。它还允许通过 Stocking-Lord、Haebara 和其他方法进行 IRT 规模链接。因为它包含一个集成数据库,所以 IRT 估计的输出可用于比例链接,而无需重塑数据文件。此外,所有输出都可以存储在数据库中,以便与 jMetrik 中的其他方法或 R 等外部程序一起使用。

您也可以使用脚本而不是 GUI 来运行它。例如,以下代码将 (a) 将数据导入数据库,(b) 使用答案键为项目评分,(c) 估计 Rasch 模型参数,以及 (d) 将数据导出为 CSV 文件。您可以将最终输出文件用作 R 的输入以进行进一步分析,也可以使用 R 直接连接到 jMetrik 数据库并使用结果。

#import data into database
import{
     delimiter(comma);
     header(included);
     options(display);
     description();
     file(C:/exam1-raw-data.txt);
     data(db = testdb1, table = EXAM1);
}

#conduct item scoring with the answer key
scoring{
     data(db = mydb, table = exam1);
     keys(4);
     key1(options=(A,B,C,D), scores=(1,0,0,0), variables=  (item1,item9,item12,item15,item19,item21,item22,item28,item29,item30,item34,item38,item42,item52,item55));
     key2(options=(A,B,C,D), scores=(0,1,0,0), variables=(item4,item6,item16,item18,item24,item26,item32,item33,item35,item43,item44,item47,item50,item54));
     key3(options=(A,B,C,D), scores=(0,0,1,0), variables=(item3,item5,item7,item11,item14,item20,item23,item25,item31,item40,item45,item48,item49,item53));
     key4(options=(A,B,C,D), scores=(0,0,0,1), variables=(item2,item8,item10,item13,item17,item27,item36,item37,item39,item41,item46,item51,item56));
}

#Run a Rasch models analysis.
#Item parameters saved as database table named exam1_rasch_output
#Residuals saved as a databse table named exam1_rasch_resid
#Person estimates saved to original data table. Person estimate in variable called "theta"
rasch{
     center(items);
     missing(ignore);
     person(rsave, pfit, psave);
     item(isave);
     adjust(0.3);
     itemout(EXAM1_RASCH_OUTPUT);
     residout(EXAM1_RASCH_RESID);
     variables(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13, item14, item15, item16, item17, item18, item19, item20, item21, item22, item23, item24, item25, item26, item27, item28, item29, item30, item31, item32, item33, item34, item35, item36, item37, item38, item39, item40, item41, item42, item43, item44, item45, item46, item47, item48, item49, item50, item51, item52, item53, item54, item55, item56);
     transform(scale = 1.0, precision = 4, intercept = 0.0);
     gupdate(maxiter = 150, converge = 0.005);
     data(db = testdb1, table = EXAM1);
}

#Export output table for use in another program like R
export{
     delimiter(comma);
     header(included);
     options();
     file(C:/EXAM1_RASCH_OUTPUT.txt);
     data(db = testdb1, table = EXAM1_RASCH_OUTPUT);
}

该软件仍处于早期开发阶段。我目前正在添加探索性因素分析和更高级的项目响应模型。与许多其他 IRT 程序不同,jMetrik 是开源的。所有测量程序都使用目前在 GitHub 上可用的心理测量库,https://github.com/meyerjp3/psychometrics欢迎任何有兴趣投稿的人。

您在这里有相当广泛的问题列表,但与许多研究人员非常相关!

我强烈建议您继续 IRT,但前提是您的情况符合要求。例如,它非常适合您使用的测试类型,并且可能最重要的是您拥有必要的样本量。对于二分多项选择数据,我推荐使用 3PL 模型(“客观测量”的 Rasch 论点非常没有说服力),500-1000 通常是最小样本量。无需猜测的二分法数据,例如对陈述有 Y/N 响应的心理调查,可以很好地与 2PL 配合使用。如果您有评级量表或部分信用数据,则有专门针对这些情况设计的多头模型。

恕我直言,应用 IRT 的最佳程序是 Xcalibre。它相对用户友好(简单的 GUI 以及一些命令行批处理类型,如果您出于某种原因需要它)并产生高度可读的输出(带有大量表格和数字的 MS Word 报告)。出于相反的原因,我建议不要使用 R。当然,缺点是它不是免费的,但你往往会得到你所支付的费用,正如他们所说的那样。www.assess.com上提供了完整的描述、示例输出和免费试用版