熱中症搬送人員数をマルコフ連鎖モンテカルロ法でベイズ推定する

 空間統計を勉強している.空間相関を考慮した一般化線形モデルが地域ごとのカウントデータやバイナリーデータをモデル化するために提案されている.今回はCARモデルを扱う.CARBayesでは空間相関を考慮しない通常のポアソン回帰モデルも扱えたため備忘録として公開する.

CARBayesのインストール

 CARBayesが未インストールであればインストールする.

> install.packages("CARBayes")

実行

 CARBayesのパッケージを呼び出し,解析を実行する.時間がかかる.なおyは熱中症搬送人員数,x1は最高気温,x2は平均水蒸気圧,x3はロジスティック関数を適用した月,x4は人口密度の対数,pは65歳以上人口である.

> library(CARBayes)
> formula = y ~ offset(log(p)) + x1 + x2 + x3 + x4
> resGLM=S.glm(formula = formula, data = HeatStroke9, family = "poisson", burnin = 5000, n.sample = 20000)
Setting up the model.
Generating 15000 post burnin and thinned (if requested) samples.
  |====================================================================================================================| 100%
Summarising results.
Finished in  1170.6 seconds.

結果

 結果を確認する.すべての係数が0をまたいでおらず,有意である.

> resGLM

#################
#### Model fitted
#################
Likelihood model - Poisson (log link function) 
Random effects model - None
Regression equation - y ~ offset(log(p)) + x1 + x2 + x3 + x4
Number of missing observations - 0

############
#### Results
############
Posterior quantities and DIC

                Mean     2.5%    97.5% n.effective Geweke.diag
(Intercept) -20.4983 -20.5312 -20.4656       532.0        -1.1
x1            0.2781   0.2772   0.2790       459.7         0.6
x2            0.0737   0.0730   0.0744       611.3         1.4
x3           -0.9234  -0.9328  -0.9140      1313.6        -0.7
x4           -0.1485  -0.1510  -0.1460      3320.2         0.5

DIC =  474365.3       p.d =  5.001884       LMPL =  -237201.5 

 最後にHeatStroke9に新しい列Bayesを追加し,csvファイルに書き出す.

> HeatStroke9$Bayes=as.integer(resGLM$fitted.values,0)
> write.csv(HeatStroke9, "v11.csv", fileEncoding = "CP932")

まとめ

 CARBayesを使って熱中症搬送人員数をマルコフ連鎖モンテカルロ法にて推定した.結果は割愛するが,glm関数を用いて推定した結果と同一であった.空間統計を併用した解析は次の機会に譲る.

“熱中症搬送人員数をマルコフ連鎖モンテカルロ法でベイズ推定する” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください