0
我想为我的二进制数据建立一个多元Probit模型。 我一直在尝试一切,但WinBUGS作为回报给了我这个错误。 任何想法或建议受到热烈欢迎。WinBUGS错误:向量值关系z必须包含变量的连续元素
模型{ 的(我在1:NS){##环以上研究
for (k in 1:2){ ### loop over arm
for (j in 1:2){ ### loop over outcomes
r[i,k,j] ~ dbin(p[i,k,j],n[i,k,j]); ## Likelihood Function
p[i,k,j] <- phi(z[i,k,j])
z[i,k,1:2] ~ dmnorm(theta[i,1:2],with[i,,])I(-5, 5) #latent variable (z<0) or Probit link
theta[i,1] <- alpha[i,k,1] + beta[i,k,1]
theta[i,2] <- alpha[i,k,2] + beta[i,k,2]
} ###Close loop over outcomes
} ###Close loop over arms
alpha[i,2,1] <- 0
alpha[i,2,2] <- 0
alpha[i,1,1:2] ~ dnorm(0,.0001)
beta[i,2,1:2] ~ dmnorm(d[1:2],prec[,])
beta[i,1,1] <- 0
beta[i,1,2] <- 0
## priors on within study cov matrix
with[i,1:2,1:2] <- inverse(cov.mat[i,1:2,1:2])
#define elements of within-study covariance matrix
cov.mat[i,1,1] <- 1
cov.mat[i,2,2] <- 1
### prior from IPD data ######
cov.mat[i,1,2] ~ dbeta(a[i],b[i])
cov.mat[i,2,1] <- cov.mat[i,1,2]
a[i]<-31.97
b[i]<- 4.52
}#### Close loop over studies
for (i in 1:2) {
d[i] ~ dnorm(0.0000E+00, 0.0001) # overall treatment effects
}
## priors on between study cov matrix
prec[1:2,1:2]<-inverse(tau[1:2,1:2])
pi<-3.14/2
a1~dunif(0, pi)
rho.tau<-cos(a1)
sd[1]~dunif(0,2)
sd[2]~dunif(0,2)
tau[1,1]<-pow(sd[1],2)
tau[2,2]<-pow(sd[2],2)
tau[2,1]<-tau[1,2]
tau[1,2]<-sd[1]*sd[2]*rho.tau
} #END MODEL
这是我的数据:
list(ns=2)
t[,1,1] t[,1,2] t[,2,1] t[,2,2] r[,1,1] n[,1,1] r[,2,1] n[,2,1] r[,1,2] n[,1,2] r[,2,2] n[,2,2]
1 0 1 0 19 77 23 77 60 82 70 82
1 0 1 0 27 199 54 199 231 393 318 393
END
该模型是语法正确的,它可以让我加载数据。 一旦我编译,我得到标题中的错误。 感谢您给予的任何帮助
感谢您的回复。我试图将两个二元结果测量结果一起进行荟萃分析。 我有r_ikj,这是第i次研究(i = 1,...,n),第k次手臂(j = 1,2)和第j次结果(j = 1,2) )谁回应了这个理论,我假定这个数量遵循二项分布,例如rikj〜Bin(p_ikj,n_ikj)。我有每个研究,手臂和结果的患者人数总数,并且我决定使用probit模型将p_ikj映射到实际的线上。 p_ikj =φ(α_ij+β_ikj·X_K) 其中 z_ikj =α_ij+β_ikj·X_K + e_ikj, – statsmess
然后我假定 e_ik =(IK1,IK2)”〜BV N(0,R) ∀i,K,J, 这意味着 (zik1,zik2)” ~BN(THETA,SIGMA) 其中theta是等于 α_i1+β_ik1·X_K的向量 α_i2+β_ik2·X_K 和Sigma是相关矩阵,其中对角元素为1,非对角元素为ρho。 我修改了代码,我会尝试编辑最初的帖子来向你展示我是如何做到的。它仍然无法正常工作。 – statsmess