2016-09-07 16 views
0

バイナリデータの多変量プロビットモデルをモデル化しようとしています。 私はすべてを試してきましたが、代わりにWinBUGSが私にこのエラーを与えます。 アイデアや提案は熱心に歓迎されます。WinBUGSエラー:ベクトル値の関係zは変数の連続する要素を含む必要があります

モデル{ ための(I 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 

モデルが文法的に正しく、それは私がすることができますデータを読み込みます。 コンパイルしたら、タイトルに誤りがあります。 ありがとうございました

答えて

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×3分散共分散行列を持つ必要があります)。現在、平均(4つのパラメータ)と2×2分散共分散行列への2×2行列入力があります。モデルの背後にある動機を実際には分かっていないので、それ自体を修正する方法についての提案は本当にありませんが、dmnormに行列を入れるのを防ぐために、thetaをもう少しインデックスする必要があるようです。

+0

返信いただきありがとうございます。私は2つのバイナリ結果測定をメタ分析することを試みています。 私は、i番目の研究(i = 1、... n)、k番目の腕(j = 1,2)およびj番目の結果(j = 1,2 )、そして私はこの量がrikj〜Bin(p_ikj、n_ikj)のような二項分布に従うと仮定しました。私は各研究、腕および成果の患者数の合計があり、私はプロビットモデルを使って実際の線上でp_ikjをマッピングすることに決めました。 p_ikj =φ(α_ij+β_ikj・X_K) z_ikj =α_ij+β_ikj・X_K + e_ikj、 – statsmess

+0

Iは、その e_ik =(IK1、IK2)」〜BV N(0、R)を想定シータは α_i1+β_ik1・X_K α_i2+β_ik2・X_K のベクトルに等しくなる∀i、K、J、 を意味 (zik1、zik2)」~BN(シータ、SIGMA) とシグマは、対角要素に1を、オフ対角にrhoを持つ相関行列です。 私はコードを修正しました。最初の投稿を編集して、私がどのように行ったかを示します。それはまだ仕事をしません。 – statsmess