[问题] 利用R模拟受试在某些题目上乱猜的反应

楼主: btoco (望尽天涯路)   2014-02-05 17:33:44
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
新手(没写过程式,R 是我的第一次)
其实这个分类好难选啊XD
我有用过R的一些package进行分析,只是以前资料的产生
都是利用Excel来产出,目前想学习如何利用程式来达到此目的。
[问题叙述]:
在试题反应理论(IRT)中,借由受试者的能力参数、试题参数(难度、鉴别度、
猜测度)可以估计出该名受试通过某题的机率,再将其与随机产生的乱数进行比较
,就可以得到受试可能的答题反应。
目前在参考一些书籍与网络资源后,我已经可以产生正确的答题反应了,但接着我
想模拟产生低能力者(能力参数低于0)假性高分,随机答对的情况。也就是说这些
低能力者原本答错的试题被随机置换为正确(25%的答对率)。
[程式范例]:
#正确的答题反应
theta <<- sort(runif(100,-3,3)) #产生能力参数
delta <<- sort(runif(15,-2,2)) #产生试题难度参数
theta.matrix <<- matrix(theta,100,1) %*% matrix(1,1,15) #能力参数矩阵
delta.matrix <<- matrix(1,100,1) %*% matrix(delta,1,15) #难度参数矩阵
logs1 <<- theta.matrix-delta.matrix #能力-难度参数矩阵
probs <<- (1+exp(-logs1))^-1 #各题答对机率
Random_ <<- runif(100*15) #作为与答对机率比较的随机机率
Data <<- ifelse(matrix(Random_,100,15) > probs,0,1) #正确的答题反应
#异常作答反应
#假性高分:能力值低于0者被挑选出来,其答错试题被随机置换为正确答案。
Aberr1<<-which(theta <0, arr.ind=T)
..................................................................
其实到怎么产生作假的作答反应,我就整个卡住了。
我目前的想像是利用逻辑判断找出低能力者,再将他们答错的反应挑出后,
产生0、1的数列,其中1仅占25%。但怎么做到这样的想像,且还要将这些作答反
应置换回原先的正确答题反应中,产生一个假性高分的资料矩阵真的是陷入鬼打墙
的循环啊!!!
这样的问题,好像很简单,但真的不晓得怎么挑出人与产生这样的虚假反应,
再请各位先进与专家协助指点迷津了~
我也会继续尝试,感谢啊!!!!
[关键字]:
机率、矩阵置换、资料产生

Links booklink

Contact Us: admin [ a t ] ucptt.com