在R语言中拟合扩展的Rasch模型分析试题质量

Rasch 分析是获得客观的、最基本的累加型测量值(兼顾分析模型中的标准误和质量控制如拟合统计值)的一种分析方法,适用于通过随机观测有序、分级类反应获得的数据分析。

由Kaizong Ye,Liao Bao撰写

Rasch 模型是如何处理数据的呢?

在Rasch 模型,研究者使用概率估计的方法对某个具体问题的回答(答对/答错 )建模,提出了一个同时包括了人和问题参数的函数。

×

基本流程如下:

1. 开发考试或问卷工具

2. 确定样本,并实施考试或发放问卷

3. 计算和item 有关的统计值,比如试题或者问卷内问题的难度,区分度;以及工具本身信度效度等

4. 计算和考生有关的统计值(得分,总分等)


按照以上这种过程,我们看看会有什么问题,或需要改进的地方?

比如这个问题:“你觉得某某问题有多难?”

1 2 3 4 5

不难 有点难 不会做


这个问题的实施过程,实际就是用数字来表示考生/人的反应,所以顾名思义 项目反应理论 item response theory. 但最关键的是这个评分的尺度如何建立。



如何对考试或问卷,等任何工具测量/衡量人的反应后能做出客观的解释?这是心理测量/Rasch 模型要解决的问题。

在传统的考试设计理论和思维下,CTT Classic Test Theory, 通常的做法是,用一个总分来代表一个人的某项能力。比如你英语考试得了90, 他的了80, 我们会说你的英语比他好。至少在这个考试中的表现,你比他好。我们做出这样判断的依据是总分。


我们再来看看医疗中的例子:

假设两个病人都有肩膀痛的问题:张三男和李四男。

我们给他们关于肩膀痛的问卷,来看看他们的反应如何:

问题 反应 评分

手可以够着耳垂 有一点儿困难 2

拿起一杯水 有些困难 3

拉出桌子底下的椅子坐下 非常困难 4

总分 9


我们在来看李四男的反应

问题 反应 评分

挂重衣服到衣帽钩 有一点儿困难 2

把1加仑水放到头顶的货架上 有些困难 3

手举过头工作2分钟以上 非常困难 4

总分 9


以上两个例子的逻辑是?


张三男和李四男总分都一样9分,但是张三男的问题似乎容易些;

所以,你可能会认为李四男的肩膀功能会好一些,相比张三男。

注意:一样的总分,却表明不同的情况!

这是因为传统的方法忽略了每个问题的难度水平!


而实际情况是单个问题的难度水平依赖于不同的样本!也就是在一套试卷/一套问卷工具内,单个的问题难度依赖于不同的样本。

就是我们常说的,对他难的问题,对我可能很容易。

比如这个问题


在做俯卧撑的时候,我可以用三个手指头撑起身体

组1 儿童

7 / 3 难度值为 3/10=0.3

组2 大学生

2 /8

能力弱 到能力强的人 8/10=0.8


其他问题

1. 样本-考试/考试题依赖

2. 精度(标准误)对所有分数都一样

3. 基于序列尺度来计算总分是不恰当的

4. 不同尺度测量的结果无法比较

5. 更长的测量相应的会增加信度 reliability


考试/考题的依赖程度

百分比的变化


一个12岁女孩在1分钟仰卧起坐测试的得分

80% NCYFS I 测试

75th AAHPER 测试

55th The Chrysler Fund-AAU 测试


选择哪种测量尺度/水平?

序列还是区间



其他方面的考虑

混合的考试形式(真假判断,3阶或5阶混合的莱克特问卷尺度
Likert Scale)会导致总分的构成不平衡,因为不同题目基于不同的权重。


Rasch模型能解决这些问题吗?

作为一种概率模型,或者1参数项目反应理论

项目反应理论在1960年代的两种分支

  • Lord, Novick, Birnbaum 美国的情况

  • Rasch, Wright 欧洲的情况

项目反应理论在美国各种标准化测试中广泛应用

ACT, 或者计算机自适应考试 CAT.


在组合编制试卷/问卷的时候,它有很多优于传统CTT理论的地方。


Rasch 模型的基本内容

  • 处理个人的能力水平和问题不同特点二者之间的相互关系。

  • 如果人的能力比问题的难度高,那么这个人正确回答问题的几率就高;

  • 如果人的能力比问题的难度低,那么这个人正确回答问题的几率就低;

  • 如果人的能力和问题的难度一样,那么这个人正确回答问题的几率就是.50;



最早的模型是把正确答案的概率用模型表达为一个logistic 函数,来考察人的参数和问题参数的不同之处。

要使用该模型,要满足一些条件:

  • 数据类型应该是有序类数据,比如张三比李四个子高,李四比王五个子高,等等依此类推。
  • 不同于其他统计模型,Rasch 希望能达到测量工具的恒定有效,不管在哪种环境下,和题目,和参加的人无关。也就是说它的目标是去获得适合模型的数据。而不是仅仅用于描述某个数据集,也不是去根据模型和数据的拟合度去修订参数然后去接受或拒绝参数。

R语言扩展的Rasch模型

关于Rasch的主要功能。

对Rasch进行分析并生成对象

  • person.parameter(drmobj) 生成ppar类的对象。
  • 从dRm对象中绘制图表: plotPImap(), plotICC(), plotjointICC()
  • 从ppar对象中绘制图表:plot()
  • 从dRm对象中提取信息:coef(), vcov(), confint(), logLik(), model.matrix()
  • 从ppar对象中提取信息:confInt(), logLik()
  • eRm对象的层次结构

plotjointICC()只适用于dRm(二分法RM),对象 LRtest()适用于dRm和Rm对象,等等。


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

拟合RM

> rm.res

默认为(datamatrix, sum0 = TRUE, 其他选项)。

sum0表示约束条件(用于估计性)。TRUE总和为零,FALSE第一项设置为0。

输出给出难度参数。

约束条件和设计矩阵

> model.matrix
> model.matrix(sum0 = FALSE))
> summary(rm.res)

R语言使用Rasch模型分析学生答题能力

阅读文章


提取信息

项目的参数估计

> coef

项目参数估计值的方差-协方差矩阵

> vcov

项目参数估计的置信区间

> confint

条件对数似然

logLik

绘制ICCs


随时关注您喜欢的主题


> plot(res)

绘制单一的ICC

> plot( subset = 3)

绘制ICCs

> plotICC(rm.res, item.subset = 1:4, ask = F, empICC = list("raw"),
+ empCI = list(lty = "solid"))

绘制人-问题图

> plotPImap(rm.res)

人参数估计

person.para

如果数据中存在NA,则对每个NA模式的组别估计不同的人的参数。

人参数估计方法的结果

> logLik
> confint

注意:confint(pp)给出了所有受试者的数值,如果数据中存在NA,则输出每个NA组的置信区间。

个参数估计图

> plot(pp)

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds