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

news2024/11/16 23:42:05

 最近我们被客户要求撰写关于IRT的研究报告,包括一些图形和统计输出。几个月以来,我一直对序数回归与项目响应理论(IRT)之间的关系感兴趣。 在这篇文章中,我重点介绍Rasch分析。

最近,我花了点时间尝试理解不同的估算方法。三种最常见的估算方法是:

  • 联合最大似然(JML)

  • 条件逻辑回归,在文献中称为条件最大似然(CML)。

  • 标准多层次模型,在测量文献中称为边际最大似然(MML)。

阅读后,我决定尝试进行Rasch分析,生成多个Rasch输出。

例子

需要ggplot2和dplyr才能创建图表。

library(Epi) # 用于带对比的条件逻辑回归
library(lme4) # glmer
library(ggplot2) # 用于绘图
library(dplyr) # 用于数据操作

数据。

raschdat1 <- as.data.frame(raschdat)

CML估算

res.rasch <- RM(raschdat1)

系数

coef(res.rasch)

beta V1      beta V2      beta V3      beta V4      beta V5
1.565269700  0.051171719  0.782190094 -0.650231958 -1.300578876
beta V6      beta V7      beta V8      beta V9     beta V10
0.099296282  0.681696827  0.731734160  0.533662275 -1.107727126
beta V11     beta V12     beta V13     beta V14     beta V15
-0.650231959  0.387903893 -1.511191830 -2.116116897  0.339649394
beta V16     beta V17     beta V18     beta V19     beta V20
-0.597111141  0.339649397 -0.093927362 -0.758721132  0.681696827
beta V21     beta V22     beta V23     beta V24     beta V25
0.936549373  0.989173502  0.681696830  0.002949605 -0.814227487
beta V26     beta V27     beta V28     beta V29     beta V30
1.207133468 -0.093927362 -0.290443234 -0.758721133  0.731734150

使用回归

raschdat1.long$tot <- rowSums(raschdat1.long) # 创建总分
c(min(raschdat1.long$tot), max(raschdat1.long$tot)) #最小和最大分数

[1]  1 26

raschdat1.long$ID <- 1:nrow(raschdat1.long) #创建ID
raschdat1.long <- tidyr::gather(raschdat1.long, item, value, V1:V30) # 宽数据转换为长数据
# 转换因子类型
raschdat1.long$item <- factor(
  raschdat1.long$item, levels = p

条件最大似然


# 回归系数


item1        item2        item3        item4        item5
0.051193209  0.782190560 -0.650241362 -1.300616876  0.099314453
item6        item7        item8        item9       item10
0.681691285  0.731731557  0.533651426 -1.107743224 -0.650241362
item11       item12       item13       item14       item15
0.387896763 -1.511178125 -2.116137610  0.339645555 -0.597120333
item16       item17       item18       item19       item20
0.339645555 -0.093902568 -0.758728000  0.681691285  0.936556599
item21       item22       item23       item24       item25
0.989181510  0.681691285  0.002973418 -0.814232531  1.207139323
item26       item27       item28       item29        
-0.093902568 -0.290430680 -0.758728000  0.731731557           

请注意,item1是V2而不是V1,item29是V30。要获得第一个题目V1的难易程度,只需将题目1到题目29的系数求和,然后乘以-1。

sum(coef(res.clogis)[1:29]) * -1

[1] 1.565278

# 再确认两个模型是否等效
res.rasch$loglik #Rasch对数似然

[1] -1434.482

# 条件逻辑对数似然,第二个值是最终模型的对数似然
res.clogis$loglik

[1] -1630.180 -1434.482

#还可以比较置信区间,方差,...

#clogistic可让您检查分析的实际样本量:res.clogis$n

[1] 3000

显然,所有数据(30 * 100)都用于估算。这是因为没有一个参与者在所有问题上都得分为零,在所有问题上都得分为1(最低为1,最高为30分中的26分)。所有数据都有助于估计,因此本示例中的方差估计是有效的。

联合极大似然估计

# 标准逻辑回归,请注意使用对比
res.jml 
# 前三十个系数


(Intercept)        item1        item2        item3        item4
-3.688301292  0.052618523  0.811203577 -0.674538589 -1.348580496
      item5        item6        item7        item8        item9
0.102524596  0.706839644  0.758800752  0.553154545 -1.148683041
     item10       item11       item12       item13       item14
-0.674538589  0.401891360 -1.566821260 -2.193640539  0.351826379
     item15       item16       item17       item18       item19
-0.619482689  0.351826379 -0.097839229 -0.786973625  0.706839644
     item20       item21       item22       item23       item24
0.971562267  1.026247034  0.706839644  0.002613624 -0.844497142
     item25       item26       item27       item28       item29
1.252837340 -0.097839229 -0.301589647 -0.786973625  0.758800752

item29与V30相同。差异是由估算方法的差异引起的。要获得第一个问题V1的难易程度,只需将问题1到问题29的系数求和,然后乘以-1。

sum(coef(res.j

[1] 1.625572

多层次逻辑回归或MML

我希望回归系数是问题到达时的难易程度,glmmTMB()不提供对比选项。我要做的是运行glmer()两次,将第一次运行的固定效果和随机效果作为第二次运行的起始值。

使用多层次模型复制Rasch结果

提供个体-问题映射:

plot(res.rasch)

PIMAP

要创建此图,我们需要问题难度(回归系数* -1)和个体能力(随机截距)。


PIMAP_MLM

极端的分数是不同的。这归因于MML的差异。由于CML不提供人为因素,因此必须使用两步排序过程。

问题特征曲线

问题特征曲线:

plot(res.rasch)

国际刑事法院

在这里,我们需要能够根据学生的潜能来预测学生正确答题的概率。我所做的是使用逻辑方程式预测概率。获得该数值,就很容易计算预测概率。由于我使用循环来执行此操作,因此我还要计算问题信息,该信息是预测概率乘以1-预测概率。


## GGPLOT可视化
ggplot(test.info.df, aes(x = theta, y = prob, colour = reorder(item, diff, mean))) +
  geom_line() +ct response", colour = "Item",

下面将逐项绘制

ggplot(test.info.df, aes(x = theta, y = prob)) + geom_line() +
  scale_x_continuous(breaks = seq(-6, 6, 2), limits = c(-4, 4)) +
  scale_y_continuous(labels = percent, breaks = seq(0, 1, .

个体参数图

plot(person.parameter(res.rasch))

PERS_PAR

我们需要估计的个体能力:

ggplot(raschdat1.long, aes(x = tot, y = ability)) +
  geom_point(shape = 1, size = 2) + geom_line() +
  scale_x_continuous(breaks = 1:26) + 
  theme_classic()

PERS_PAR_MLM

问题均方拟合

对于infit MSQ,执行相同的计算。

eRm:


ggplot(item.fit.df, aes(x = mml, y = cml)) +
  scale_x_continuous(breaks = seq(0, 2, .1)) +
  scale_y_continuous(breaks = seq(0, 2, .1))  

COMP_ITEM_FIT

似乎CML的MSQ几乎总是比多层次模型(MML)的MSQ高。

eRm:


COMP_PERS_FIT

来自CML的MSQ几乎总是比来自多层次模型(MML)的MSQ高。我使用传统的临界值来识别不适合的人。 

测试信息

eRm:

plotINFO(res.rasch)

IIC

创建ICC计算测试信息时,我们已经完成了上述工作。对于总体测试信息,我们需要对每个问题的测试信息进行汇总:


IIC_MLM


IIC_OVER

最后,我认为使用标准测量误差(SEM),您可以创建一个置信区间带状图。SEM是测试信息的反函数。


扫描电镜

该图表明,对于一个估计的能力为-3的个体,他们的能力的估计精度很高,他们的实际分数可能在-1.5和-4.5之间。

经过这一工作,我可以更好地理解该模型,以及其中的一些内容诊断。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今天面了个阿里拿 38K 出来的,让我见识到了基础的天花板

前言 人人都有大厂梦&#xff0c;对于程序员来说&#xff0c;BAT 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#xff0c;…

【数集项目之 MCDF】(二) 从输入端 slave_FIFO

由于slave_FIFO调用了子模块同步FIFO SCFIFO.v&#xff0c;因此首先简单介绍同步FIFO的设计。 第一节 同步FIFOSCFIFO设计 同步FIFO实体是一组存储单元&#xff0c;因此需要先用数组方式来实现 reg [DATA_WIDTH - 1 : 0] fifo_buffer[DATA_DEPTH - 1 : 0]; 其中在参数中进行…

【随机分形搜索算法】一种新的全局数值优化的适应度-距离平衡随机分形搜索算法FDB-SFS附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

模型精度再被提升,统一跨任务小样本学习算法 UPT 给出解法!

近日&#xff0c;阿里云机器学习平台PAI与华东师范大学高明教授团队、达摩院机器智能技术NLP团队合作在自然语言处理顶级会议EMNLP2022上发表统一多NLP任务的预训练增强小样本学习算法UPT&#xff08;Unified Prompt Tuning&#xff09;。这是一种面向多种NLP任务的小样本学习算…

【HMS Core】运动健康服务上传平台的健康数据,能否获取到上传设备的SN码或者唯一设备码信息

问题描述 上传平台的健康数据&#xff0c;能否获取到上传设备的SN码或者唯一设备码信息 解决方案 DeviceInfo中包含华为设备唯一标识&#xff0c;您可以通过DeviceInfo进行查看。 DeviceInfo Android API&#xff1a;https://developer.huawei.com/consumer/cn/doc/developm…

价值年薪50W的软件测试进阶学习路线,终于让我从阿里P8手里抠出来了

作为一个男人我感觉必须得做点什么来证明一下自己&#xff0c;现在我又回来了&#xff0c;准备把自己的节操准备补一下。另外给各位未来的自动化测试工程师和测试开发工程师说一句&#xff0c;别的我不清楚&#xff0c;学习编程请从一而终 咱们学习编程就挺难的&#xff0c;有…

Matplotlib学习笔记(第二章 2.14 图像教程)

2.1.4 图像教程 使用Matplotlib绘制图像的简短教程。 启动命令 首先&#xff0c;让我们开始IPython。它是对标准Python提示符的最优秀的增强&#xff0c;它与Matplotlib结合得特别好。直接在shell上启动lPython&#xff0c;或者使用Jupyter笔记本(其中IPython作为运行的内核…

为什么 Android 要采用 Binder 作为 IPC 机制?

前言 Android 系统为了安全、稳定性、内存管理等原因&#xff0c;Android 应用和系统服务都是运行在独立的进程中的&#xff0c;但系统服务与应用进程之间&#xff0c;应用进程A与应用进程B之间需要通信和数据共享的。因此&#xff0c;Android 系统需要提供一套能够高效、安全…

js 踩了正则表达式的大坑!lastIndex属性

参考文章 踩坑情景 今天一来&#xff0c;被测试测出了一个问题&#xff0c;在使用vantUI的移动端项目中&#xff0c;我虽然对用户输入的值做了去除首尾空格的操作&#xff0c;但却忘记对用户输入的空值进行错误提示&#xff0c;fine&#xff0c;我选择给表单添加rules规则&am…

[附源码]JAVA毕业设计远程教学系统录屏(系统+LW)

[附源码]JAVA毕业设计远程教学系统录屏&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

40个高质量SSM毕设项目分享【源码+论文】

文章目录前言 题目1 : 基于SSM的房屋出租出售系统 <br /> 题目2 : 基于SSM的房屋租赁系统 <br /> 题目3 : 基于SSM的个人健康信息管理系统 <br /> 题目4 : 基于SSM的共享充电宝管理系统 <br /> 题目5 : 基于SSM的即动运动网站 <br />前言 &…

【C语言数据结构(基础篇)】第二站:顺序表

目录 一、线性表 二、顺序表的实现&#xff08;概念以及静态顺序表&#xff09; 1.创建三个工程文件 2.顺序表的概念 3.顺序表的定义 4.初始化顺序表 5.静态顺序表的尾插 三、顺序表的实现&#xff08;升级为动态顺序表&#xff09; 1.动态顺序表的定义 2.动态顺序表的…

艾美捷NCTC-135培养基化学性质和基本配方

艾美捷NCTC-135培养基背景&#xff1a; NCTC培养基&#xff0c;由马里兰州贝塞斯达国家癌症研究所&#xff08;NCI&#xff09;生物实验室组织培养科开发&#xff0c;用于建立和维持L929小鼠细胞株。 艾美捷NCTC-135培养基化学性质&#xff1a; 外观&#xff1a;白色至浅粉色…

[附源码]Python计算机毕业设计Django超市商品管理

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Android -- 每日一问:谈谈MVC、MVP和MVVM模式,你有在自己的项目中使用过吗?

经典回答 MVC 模式 全名是Model–View–Controller&#xff0c;是模型(model)&#xff0d;视图(view)&#xff0d;控制器(controller)的缩写&#xff0c;一种软件设计典范&#xff0c;用一种业务逻辑、数据、界面显示分离的方法组织代码&#xff0c;在改进和个性化定制界面及用…

[附源码]Python计算机毕业设计SSM基于的高速收费系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

防火墙双机热备配置实验

目录 一、实验拓扑 二、配置云 三、配置防火墙 四、分配FW的接口地址与安全区域 五、按图示进行配置 六、双机热备的配置 七、配置NAT 八、模拟双机热备的切换 一、实验拓扑 看上去挺复杂的其实这个实验还是比较简单的&#xff0c;Client1配置为IP 10.3.0.10 网关10.3.…

python教程十二 字典

字典 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割&#xff0c;每个对之间用逗号(,)分割&#xff0c;整个字典包括在花括号 {} 中 ,格式如下所示&#xff1a; d {key1 : value1, key2 : value2, key3 : value3…

学会模态计算,你就掌握了结构振动冲击计算的核心

模态计算对于认识结构振动特性至关重要&#xff0c;通过模态计算可以得到模态的固有频率&#xff0c;振型&#xff0c;参与系数和有效质量等参数&#xff0c;模态计算的这些参数我们应该很熟悉&#xff0c;但是如果正确合理的使用这些结果指导工程计算&#xff0c;是我们今天讨…

[附源码]Python计算机毕业设计滁州市围棋协会Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…