drkcore

2009/09/19 17:06:08

JAGSでロジスティック回帰モデル

macでwinbugsを頑張って動かすのもアレなので、潔くJAGSで。

マルコフ連鎖モンテカルロ法の5-1

ProductName マルコフ連鎖モンテカルロ法 (統計ライブラリー)
豊田 秀樹
朝倉書店 / ¥ 4,410 ()
在庫あり。

生態学のデータ解析 - R で JAGSによるとjagsの場合にはBUGS言語の文(式)の終わりにはセミコロンが必要。

model
{
  for(i in 1:N){
    r[i] ~ dbin(p[i],n[i]);
    e[i] ~ dnorm(0.0,tau);
    logit(p[i]) <- beta0+beta1*x1[i]+beta21*x21[i]+beta22*x22[i]
    +beta23*x23[i]+beta24*x24[i]+beta25*x25[i]
    +beta26*x26[i]+beta27*x27[i]+e[i];
  }
  beta0 ~ dnorm(0.0,1.0E-6);
  beta1 ~ dnorm(0.0,1.0E-6);
  beta21 ~ dnorm(0.0,1.0E-6);
  beta22 ~ dnorm(0.0,1.0E-6);
  beta23 ~ dnorm(0.0,1.0E-6);
  beta24 <- 0;
  beta25 ~ dnorm(0.0,1.0E-6);
  beta26 ~ dnorm(0.0,1.0E-6);
  beta27 ~ dnorm(0.0,1.0E-6);
  tau ~ dgamma(0.001,0.001);
  sigma<-1/sqrt(tau);
}

Rのコード

library(rjags)

data <- list(
r = c(1,13,44,155,92,100,18,0,0,2,1,0,2,0),
n = c(13,70,115,301,153,141,26,6,16,25,32,8,9,4),
x1 = c(0,0,0,0,0,0,0,1,1,1,1,1,1,1),
x21 = c(1,0,0,0,0,0,0,1,0,0,0,0,0,0),
x22 = c(0,1,0,0,0,0,0,0,1,0,0,0,0,0),
x23 = c(0,0,1,0,0,0,0,0,0,1,0,0,0,0),
x24 = c(0,0,0,1,0,0,0,0,0,0,1,0,0,0),
x25 = c(0,0,0,0,1,0,0,0,0,0,0,1,0,0),
x26 = c(0,0,0,0,0,1,0,0,0,0,0,0,1,0),
x27 = c(0,0,0,0,0,0,1,0,0,0,0,0,0,1),
N = 14)

inits <- list(beta0 = 0, beta1 = 0, beta21 = 0,  beta22 = 0, beta23 = 0, beta24 = 0, beta25 = 0, beta26 = 0,  beta27 = 0, tau = 1)

m <- jags.model(
  file = "model.txt",
  data = data,  
  inits = list(inits),
  n.chains = 1
)

update(m,10000)

x <- coda.samples(
    m,
    c("beta0","beta1","beta21","beta22","beta23","beta24","beta25","beta26","beta27", "sigma"),
    thin = 1, n.iter = 40000
)

summary(x)

plot(x)

サマリーの表示

> summary(x)

Iterations = 11001:51000
Thinning interval = 1 
Number of chains = 1 
Sample size per chain = 40000 

1. Empirical mean and standard deviation for each variable,
   plus standard error of the mean:

           Mean     SD Naive SE Time-series SE
beta0  -0.02576 0.4188 0.002094        0.03425
beta1  -3.11738 0.6059 0.003030        0.01815
beta21 -3.03168 1.4556 0.007278        0.03269
beta22 -1.52877 0.6757 0.003379        0.02993
beta23 -0.28549 0.6355 0.003177        0.04374
beta24  0.00000 0.0000 0.000000        0.00000
beta25  0.35897 0.5926 0.002963        0.02957
beta26  1.05996 0.6389 0.003194        0.04301
beta27  0.70287 0.7677 0.003838        0.03026
sigma   0.34110 0.3980 0.001990        0.03152

2. Quantiles for each variable:

           2.5%      25%      50%      75%   97.5%
beta0  -1.11529 -0.15412  0.02137  0.16865  0.7406
beta1  -4.48731 -3.46881 -3.06188 -2.70570 -2.0882
beta21 -6.39669 -3.83976 -2.86884 -2.05688 -0.6382
beta22 -2.90198 -1.87085 -1.54216 -1.21238 -0.0738
beta23 -1.27301 -0.63488 -0.39022 -0.08097  1.4261
beta24  0.00000  0.00000  0.00000  0.00000  0.0000
beta25 -0.87361  0.10421  0.34604  0.59078  1.7201
beta26  0.08425  0.72545  0.96155  1.25666  2.7809
beta27 -0.80720  0.33750  0.71085  1.10396  2.1284
sigma   0.02816  0.08266  0.19387  0.45606  1.3892

5章は事例がたくさん載っているので、この勢いで一通りやっておこう。

Comments