回答:
Rを複数の方法で使用して、マルチレベルGLMMをポアソン分布(過剰分散)に適合させることができます。いくつかのR
パッケージは、次のとおりです。lme4
、MCMCglmm
、arm
、などのA良いの参照がある見るためにゲルマンとヒル(2007)
rjags
パッケージを使用してこれを行う例をで示しますR
。R
and JAGS
(OpenBUGS
またはのようなWinBUGS
)間のインターフェースです。
ログθ I J = β 0 + β 1 T R E A T のM E N tはI + δ I J δ I J〜N (0 、σ 2 ϵ)i = 1 … I 、
rate models
JAGS
data{
for (i in 1:I){
ncount[i,1] <- obsTrt1[i]
ncount[i,2] <- obsTrt2[i]
## notice I have only 2 treatments and I individuals
}
}
model{
for (i in 1:I){
nCount[i, 1] ~ dpois( means[i, 1] )
nCount[i, 2] ~ dpois( means[i, 2] )
log( means[i, 1] ) <- mu + b * trt1[i] + disp[i, 1]
log( means[i, 2] ) <- mu + b * trt2[i] + disp[i, 2]
disp[i, 1] ~ dnorm( 0, tau)
disp[i, 2] ~ dnorm( 0, tau)
}
mu ~ dnorm( 0, 0.001)
b ~ dnorm(0, 0.001)
tau ~ dgamma( 0.001, 0.001)
}
ここでR
それを使用実装するコードは、(それが命名されたと言います。overdisp.bug
)
dataFixedEffect <- list("I" = 10,
"obsTrt1" = obsTrt1 , #vector of n_i1
"obsTrt2" = obsTrt2, #vector of n_i2
"trt1" = trt1, #vector of 0
"trt2" = trt2, #vector of 1
)
initFixedEffect <- list(mu = 0.0 , b = 0.0, tau = 0.01)
simFixedEffect <- jags.model(file = "overdisp.bug",
data = dataFixedEffect,
inits = initFixedEffect,
n.chains = 4,
n.adapt = 1000)
sampleFixedEffect <- coda.samples(model = simFixedEffect,
variable.names = c("mu", "b", "means"),
n.iter = 1000)
meansTrt1 <- as.matrix(sampleFixedEffect[ , 2:11])
meansTrt2 <- as.matrix(sampleFixedEffect[ , 12:21])
パラメータの事後条件をいじってみて、モデリングをより正確にするためにより多くのパラメータを導入することができます(これを考えたいです)。基本的に、あなたはアイデアを得る。
rjags
との使用の詳細JAGS
については、John Myles Whiteのページを参照してください
過剰分散を考慮するためにlme4パッケージを離れる必要はありません。観測値のランダム効果を含めるだけです。上記のBUGS / JAGSソリューションはおそらくあなたにとってはやり過ぎです。もしそうでなければ、比較のためにlme4の結果を簡単にフィットさせる必要があります。
data$obs_effect<-1:nrow(data)
overdisp.fit<-lmer(y~1+obs_effect+x+(1|obs_effect)+(1+x|subject_id),data=data,family=poisson)
これについては、http://article.gmane.org/gmane.comp.lang.r.lme4.devel/4727で非公式および学術的にElstonらによって説明されています。(2001)。
glmmADMBパッケージはまさにあなたが探しているものだと思います。
install.packages( "glmmADMB"、repos = "http://r-forge.r-project.org")
しかし、ベイジアンの観点では、MCMCglmmパッケージまたはBUGS / JAGSソフトウェアを使用できます。これらは非常に柔軟性があり、この種のモデルに適合できます。(および構文はRに近い)
EDITの @randelのおかげで
glmmADMB
とR2admb
パッケージをインストールする場合は、次のことをお勧めします。
install.packages("glmmADMB", repos="http://glmmadmb.r-forge.r-project.org/repos")
install.packages("R2admb")
install.packages("glmmADMB",repos="http://glmmadmb.r-forge.r-project.org/repos")
plus 経由でインストールする必要があると思いますinstall.packages('R2admb')
。
これまでのところ良い提案。もう1つあります。パッケージのrhierNegbinRw
関数を使用して、階層的な負の二項回帰モデルを近似できbayesm
ます。