[問題] 利用R模擬受試在某些題目上亂猜的反應
[問題類型]:
程式諮詢(我想用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%。但怎麼做到這樣的想像,且還要將這些作答反
應置換回原先的正確答題反應中,產生一個假性高分的資料矩陣真的是陷入鬼打牆
的迴圈啊!!!
這樣的問題,好像很簡單,但真的不曉得怎麼挑出人與產生這樣的虛假反應,
再請各位先進與專家協助指點迷津了~
我也會繼續嘗試,感謝啊!!!!
[關鍵字]:
機率、矩陣置換、資料產生
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.249.127
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章