2014-10-12 11 views
2

WinBUGS 패키지를 사용하는 다단계 차등 항목 기능 모델에서 작업하고 있습니다. 성공적으로 간단한 모델을 만들었지 만 "배열 인덱스가 1보다 작습니다."라는 오류가 발생했습니다. 네가 도울 수 있다면 나는 매우 기뻐할 것이다.Winbugs에서 "배열 인덱스가 1 미만입니다."오류가 발생했습니다.

# Model 
    Model 
    { 
    for (l in 1:50){ 
    y[l] ~ dbern(p[l]) 
    logit(p[l])<- u2[stu[l]] - beta[x[l]] + gamma[tea[l], x[l]]*grp[l] + alpha1[x[l]]*geo[l] + 
    alpha2[x[l]]*conf[l] + alpha3[x[l]]*ses[l] 
    } 
    for (t in 1:10){ 
    for (i in 1:10){ 
    gamma[t,i] ~ dnorm(gamma.hat[t,i], tau.gamma[i]) 
    gamma.hat[t,i]<-pi1[i] + pi2[i]*inq[t] 
    } 
    } 
    # fixed effect prior 
    for (i in 1:10){ 
    beta[i] ~ dnorm(0, .0001) 
    alpha1[i] ~ dnorm(0, .0001) 
    alpha2[i] ~ dnorm(0, .0001) 
    alpha3[i] ~ dnorm(0, .0001) 
    pi1[i] ~ dnorm(0, .0001) 
    pi2[i] ~ dnorm(0, .0001) 
    } 
    # Random effect prior 
    for (s in 1:5){ 
    u2[s] ~ dnorm(0,tau.u2) 
    } 
    tau.u2 <- pow(sigma.u2, -2) 
    sigma.u2 ~ dunif (0, 100) 
    for (i in 1:10){ 
    tau.gamma[i] <- pow(sigma.gamma[i],-2) 
    sigma.gamma[i] ~ dunif(0,100) 
    } 
    } 

    # Data 
    list(y=c(0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0), ses=c(0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1), conf=c(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1), geo=c(1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1), grp=c(1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1), inq=c(1, 3, 2, 1, 3, 2, 3, 2, 3, 2), stu=c(1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), tea=c(0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1), x=c(3, 2, 2, 1, 3, 2, 3, 3, 2, 2, 2, 3, 2, 3, 1, 3, 2, 2, 3, 2, 2, 3, 3, 2, 3, 2, 1, 2, 2, 1, 2, 3, 3, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 3, 2, 3, 2)) 


    #Initital values 
    list(beta=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), alpha1=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), alpha2=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), alpha3=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), sigma.gamma=(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), u2=c(0, 0, 0, 0, 0), pi0=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), pi1=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), sigma.u2=1, gamma=structure(
.Data=c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim=c(10, 10))) 

답변

1

색인은 버그에서 1이 아닌 0부터 시작합니다. 변수 stutea은 색인 생성에 사용되지만 값 0,1을받습니다. 대신 1,2가되어야합니다.

+0

Chris 님,이 오류 통지를 수정했으며 다른 오류 코드 (정의되지 않은 실제 결과 오류)를 발견했습니다. 아래 링크에서 공유했습니다. https://stats.stackexchange.com/questions/120669/undefined-real-result-error-at-winbugs 도와 주시면 매우 기쁩니다. – sibel

+0

. 답변드립니다. 이 질문에 답을 표시 할 수 있습니까? –

1

계속되는 것 : x. 길이가 다른 변수보다 짧아서 관찰이 누락되었을 수 있습니다.

+0

감사합니다. Gjabel, 변수 x를 변경했지만 동일한 오류 코드가 있습니다. – sibel