【问题标题】:"Array index is less than one" error at WinbugsWinbugs 中的“数组索引小于一个”错误
【发布时间】:2014-12-07 02:43:50
【问题描述】:

我正在使用 WinBUGS 包开发多级差异项功能模型。我已经成功构建了更简单的模型,但我也收到了错误“数组索引小于一”。如果您能提供帮助,我将非常高兴。

    # 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)))

【问题讨论】:

    标签: arrays arraylist indexoutofboundsexception winbugs14


    【解决方案1】:

    在 BUGS 中,索引从 1 开始,而不是 0。变量 stutea 用于索引,但它们的值是 0,1 - 它们应该是 1,2。

    【讨论】:

    • 感谢 Chris,我已更正此错误通知,然后遇到另一个错误代码(未定义的实际结果错误)。我已经在下面的链接中分享了。 stats.stackexchange.com/questions/120669/…如果您能提供帮助,我将非常高兴。
    • 在那里回答。你能把这个标记为已回答吗?
    【解决方案2】:

    x 发生了什么事。它的长度比其他变量短一个,也许你错过了一个观察结果。

    【讨论】:

    • 感谢 Gjabel,我更改了变量 x,但我有相同的错误代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多