空間統計を勉強している.空間相関を考慮した一般化線形モデルが地域ごとのカウントデータやバイナリーデータをモデル化するために提案されている.今回は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件の返信