我编了一个单参数IRT的联合极大释然估计函数JMLE.1P(),但是报错:Error in JMLE.1P(data1$U_Matrix) : object 'theta.temp' not found 。其中data1$U_Matrix是作答矩阵。请问我是哪里出错了呢?谢谢!求大家指点!其中CMLE.theta.1P()和CMLE.beta.1P()这两个函数是我已经编好的能力参数和难度参数的条件极大似然估计函数。JMLE.1P()会调用上面两个函数。
#1PLM/Rasch moedel JMLE
#作答矩阵需事先排除满分和零分的被试数据,以及全对和全错的项目数据
if (!exists("CMLE.theta.1P")) source("CMLE.theta.1P.R")
if (!exists("CMLE.beta.1P")) source("CMLE.beta.1P.R")
JMLE.1P<- function(Resp.Matrix,n2=20,tol2=0.005){
N<- nrow(Resp.Matrix)
m<- ncol(Resp.Matrix)
T<- rowSums(Resp.Matrix)
mean_T<- mean(T)
sd_T<- sd(T)
p<- numeric()
for (j in 1:m) p[j]<- sum(Resp.Matrix[,j])/N
q<- 1-p
#取在题目上得分的被试的卷面总分平均分,一共有m道题,mean_Tp就有m个元素
mean_Tp<- numeric()
for (j in 1:m) mean_Tp[j]<- sum(Resp.Matrix[,j]*T)/sum(Resp.Matrix[,j])
#在题目上失分的被试的卷面总分平均分
mean_Tq=numeric()
for (j in 1:m) mean_Tq[j]<- sum((1-Resp.Matrix[,j])*T)/sum(1-Resp.Matrix[,j])