该代码是用于项目反应理论三参数逻辑斯蒂克模型参数估计(模拟研究)。
出现问题:点击update 以后出现undefined real result,手册上说是因为先验分布信息太少,或者是初始值设置不合理,又或者是所有的初始值相等(刚开始是属于这种情况),然后修改了先验分布,将模型中的先验分布和模拟数据产生时使用的分布完全一致了,同时将初始值设置成使用相同的分布生成的数值,但还是出现相同的结果。求高人指点。
- model{
- for (i in 1:I){
- for(j in 1:J){
- u[i,j]~dbern(prob[i,j])
- prob[i,j]<-sigama[j]+(1-sigama[j])/(1+exp(-1.7*alpha[j]*(theta[i]-beta[j])))
- }
- theta[i]~dnorm(0,1)
- }
- for(j in 1:J){
- beta[j]~dnorm(0,1)
- alpha[j]~dnorm(1.5,4)I(0.3,)
- sigama[j]~dnorm(0.14,400)I(0,0.6)
- }
- }
- Data
- list(I=2000,J=20,u=structure(.Data=c(
- 0,1,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,
- 0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,0,0,0,
- 0,1,0,1,0,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,
- 1,0,1,1,0,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,
- .................................
- 0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
- ),.Dim=c(2000,20))
- INITIAL VALUES list(alpha=c(2.1331,1.8252,1.8848,1.609,1.669,1.6624,1.5103,1.5122,1.6146,1.6429,1.8947,1.9623,1.6214,2.3868,1.6428,2.172,1.919,2.5106,2.0182,1.6313),beta=c(1.1007,1.0543,0.51895,0.99238,0.4619,0.59792,1.0263,-0.33336,1.1728,-1.353,1.0457,0.82378,-1.3457,0.6132,1.1928,0.011381,0.26673,-0.15905,-0.56521,0.71893),sigama=c(0.20715,0.20956,0.19662,0.15638,0.21313,0.15161,0.20096,0.19024,0.23827,0.24752,0.23289,0.18999,0.16499,0.21994,0.16884,0.21252,0.16736,0.16157,0.23182,0.21544),theta=c(-0.25444,1.3489,0.45834,0.38372,0.64509,-0.8273,-1.5101,-0.13244,0.16715,1.2068,0.28735,-0.1192,-1.2243,-0.66822,0.4938,-0.90008,
- .................................
- 1.722,0.97676,-0.15226,0.46129,-0.22874,0.67841,1.1065,-0.14765,-1.4985,-0.085821,1.537,0.12976,0.67201,1.0312,0.10261,-0.7796,0.1932,-1.3479,-0.12929,1.3374,0.42234,-0.06213,-0.76458,0.43218,0.051087,-0.78618))
复制代码
|