内容:包含全息项目因子分析(多维项目反应理论),认知诊断、自适应测验、因子分析等,未来增加更多
安装
下载源码后
- python setup.py install
使用方法
详见源文件的demo部分
我的程序和其他程序参数估计对比
比较的数据源是LSAT,LSAT总共1000样本,5道试题
单维IRT区分度参数估计结果比较
R包ltm | R包mirt | 我的pypsy |
0.825 | 0.825 | 0.826 |
0.723 | 0.723 | 0.723 |
0.89 | 0.89 | 0.891 |
0.689 | 0.689 | 0.688 |
0.657 | 0.658 | 0.657 |
多维IRT区分度参数估计结果比较
R包mirt区分度1 | R包mirt区分度2 | 自编pypsy区分度1 | 自编pypsy区分度2 |
0.632 | 0.783 | 0.639 | 0.774 |
0.574 | 0.465 | 0.577 | 0.465 |
0.749 | 0.51 | 0.751 | 0.503 |
1.228 | -0.402 | 1.247 | -0.428 |
0.685 | 0 | 0.68 | 0 |
全息项目因子分析因子载荷结果比较
R包mirt因子载荷1 | R包mirt因子载荷2 | 自编pypsy因子载荷1 | 自编pypsy因子载荷2 |
-0.056 | 0.53207 | 0.09673262 | 0.49853455 |
0.0503 | 0.37252 | 0.15293697 | 0.3686808 |
0.1025 | 0.41418 | 0.21755961 | 0.41552741 |
0.6082 | -0.00764 | 0.60369058 | 0.10223677 |
0.2987 | 0.12592 | 0.32577455 | 0.17737587 |
使用算法简介
一、多维项目反应理论
第一步,计算近似polychoric correlation, 对这个相关矩阵进行因子分析,获得斜率初值,阈值初值是logistic反函数获得,同时对参数进行约束,因为多维的解空间是无限的。第二步,EM算法,E步用GH积分求期望,M步用单次牛顿迭代求极大
第三步,因子旋转,用基于梯度投影算法的正交VARIMAX旋转二、认知诊断
DINA模型可以用EM算法求项目参数,然后极大似然算法求被试参数,也可以用MCMC算法求解项目参数和被试参数
HO-DINA模型用MCMC算法求解参数
MCMC算法中,项目参数的先验分布都是4参数beta分布
三、因子分析
目前因子分析主要服务于多维IRT,抽取因子载荷的方法是主成分法,因子旋转方法是梯度投影算法
四、自适应测验
目前模拟的自适应测验是多维项目反应理论下的瑟斯顿IRT自适应测验,抽题规则是多维项目反应理论的最大信息法则,稍微改改可以变成通用的多维项目反应理论自适应测验
这个Python下的包还没有完成,API很简陋,计划还需要添加例如BKT和更多IRT和CDM模型,同时完善因子分析,加入结构方程模型等等
希望大家先学习交流,有兴趣可以共同完成,毕竟写程序很枯燥乏味