0

バイナリ データの多変量 Probit モデルをモデル化しようとしています。私はすべてを試してきましたが、WinBUGS がこのエラーを返します。アイデアや提案は大歓迎です。

model{ for (i in 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

モデルは構文的に正しく、データをロードできます。コンパイルすると、タイトルにエラーが表示されます。助けてくれてありがとう

4

1 に答える 1

0

ここでは、多変量正規分布の平均に 2 行 2 列の行列を入力しているように見えます。

z[i,1:2,k] ~  dmnorm(theta[i,,],with[i,,])I(-5, 5)    #latent variable (z<0) or Probit link

zただし、は長さ 2 のベクトルのみのように見えます。 の平均にベクトルを入力dmnormし、関連する分散共分散行列を与える必要があります (つまり、長さ 3 のベクトルを指定する場合は、3 by が必要です。 3 分散共分散行列)。現在、平均 (4 つのパラメーター) への 2 行 2 列の行列入力と、2 行 2 列の分散共分散行列があります。モデルの背後にある動機がよくわからないので、それ自体を修正する方法について実際に提案することはできませんがtheta、マトリックスをdmnorm.

于 2016-09-20T13:26:43.183 に答える