2014-10-06 16 views
0

WinBUGS 패키지를 사용하여 differantial item functioning 모델을 만들고 있습니다. 성공적으로 간단한 모델을 만들었지 만 "예상 수집 연산자 c"라는 오류도 발생했습니다. 도와 주시면 매우 기쁩니다.WinBugs에서 "Expected collection operator c"오류가 발생했습니다.

# Model 
Model 
{ 

for (j in 1:40){ 
for (k in 1:5){ 
y[j,k] ~ dbern(p[j,k]) 
logit(p[j,k])<- u2[j] - beta[k] + gamma[k]*grp[j] 
} 
} 
# Random effect prior 
for (j in 1:40){ 
u2[j] ~ dnorm(0,tau.u2) 
} 
# Fixed effect prior 
for (k in 1:5){ 
beta[k] ~ dnorm(0, .0001) 
gamma[k] ~ dnorm(0,.0001) 
} 

tau.u2 <- pow(sigma.u2, -2) 
sigma.u2 ~ dunif (0, 100) 
} 

# Data 
list(y=structure(
    .Data=c(1, 1, 1, 1, 1, 
      1, 0, 1, 0, 1, 
      0, 1, 1, 1, 1, 
      1, 0, 0, 1, 1, 
      1, 0, 0, 0, 1, 
      0, 1, 1, 1, 0, 
      0, 1, 1, 1, 1, 
      1, 0, 0, 0, 1, 
      1, 0, 1, 1, 1, 
      0, 1, 0, 0, 0, 
      1, 1, 1, 0, 1, 
      0, 1, 1, 0, 1, 
      1, 1, 1, 1, 1, 
      0, 1, 0, 1, 0, 
      1, 1, 1, 1, 1, 
      0, 0, 1, 1, 1, 
      0, 0, 0, 1, 0, 
      1, 1, 1, 0, 0, 
      1, 0, 0, 0, 0, 
      0, 0, 0, 0, 0, 
      0, 1, 0, 0, 0, 
      0, 1, 0, 0, 0, 
      0, 0, 0, 0, 1, 
      0, 0, 0, 0, 0, 
      0, 1, 0, 0, 0, 
      0, 0, 0, 0, 0, 
      1, 0, 0, 1, 0, 
      1, 1, 1, 1, 0, 
      1, 1, 0, 0, 1, 
      0, 1, 1, 1, 1, 
      1, 1, 0, 0, 0, 
      0, 0, 0, 1, 0, 
      0, 1, 1, 1, 0, 
      1, 0, 1, 1, 0, 
      1, 0, 1, 0, 0, 
      0, 0, 1, 1, 0, 
      0, 0, 1, 1, 0, 
      0, 1, 0, 1, 0, 
      1, 1, 1, 1, 0, 
      0, 0, 0, 1, 1), 
     .Dim=c(40,5)), grp=c(1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 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)) 

#Initital values 
list(beta=c(0, 0, 0, 0, 0), gamma=c(0, 0, 0, 0, 0), sigma.u2=1, u2=0)) 

답변

1

모델에서 u2는 초기 값으로 하나의 숫자만을 제공하면서 40 개의 값을 갖는 벡터입니다. 오류는 u2 초기 값 다음에 커서를 놓았어야합니다.이 값은 오류의 위치를 ​​알려줍니다. "예상 수집 연산자 c"는 u2 = c (0,0,0, ... 즉 초기 값의 벡터)를 볼 것으로 예상한다는 것을 의미했습니다.

sigma.u2의 초기 값을 제공 했으므로 WinBUGS가 u2의 초기 값을 자동 생성하도록하는 것이 안전 할 것입니다.

+0

감사합니다. Chris Jackson ... – sibel

+0

감사합니다. 매우 유용합니다. –