BPA: ポアソンGLM

BPA BUGSで学ぶ階層モデリング Baysian Population Analysis Using WinBUGS, Marc Kery & Michael Schaubの学習ノート
——————————————————————
ポアソンGLMの例として、i年計測値Ciをモデル化する。
以下に単一の共変量Xがある場合の年iにおける計測数CiのポアソンGLMを代数記述する。
1. 応答変数のランダムな部分(統計分布)
Ci ? Poisson(λi)
2. リンク関数と系統的な部分(対数リンク関数)
  log(λi)=ηi
3. 応答の系統的な部分(線形予測子ηi)
ηi = α + β * Xi

ここでは、λiは、算術軸上での年iにおける計数値の期待値(応答変数の平均)
ηiは、対数軸上での年iにおける計数値の期待値
Xiは、年iにおける共変量Xの値
αとβは、この共変量と計数値との線形対数回帰における2つのパラメータ

以下、シミュレーションで生成された仮想データと、実際のデータセットを使用したポアソンGLMデータの生成と解析例を示す。

3.3.1 仮想データの生成と解析
ハヤブサ(Falco peregrinus)のある個体群の計数値データを生成する関数を定義する。データはポアソン分布に従い、n年に渡る。ここで、パラメータは実際のデータを元にしている。
線形予測子には、時間に関する三次元多項関数
ηi = α + β1 * Xi^1 + β2 * Xi^2 + β3 * Xi^3

以下、まず頻度主義のGLMを示し、続いてベイズ主義でのGLMを示す。

実際にRで上記コードを動かしてみると、

dataの中身を覗いてみる

まずはsink()関数について、理解しておこう。
R コマンドの実行結果はデフォルトではウィンドウ (console) 内に表示されますが、下記のようにして任意のファイルに出力先を切り替えることができます。
> sink(“output.txt”)
出力先をウィンドウ (console) に戻すには、パラメータ無しで以下のように実行します。
> sink()

では、次にベイズ流解析を示そう。
そのままでは、共変量xiが40^3=64000となり、数値がオーバーフローを引き起こすようだ。
そこで、共変量の中央化や標準化を行う。ここでは、平均を引き、標準偏差で割る。

3.3.2 実際のデータセットの解析

3.4 産仔数のモデリング:ポアソンGLM

3.5 上限のある計数値データのモデリング;二項GLM
二項GLMの例として、年iにおける全観測つがい数(Ni)中の繁殖成功つがい数(Ci) を40年全体を対象としてモデル化する。
1. 応答のうちのランダムな部分(統計分布)
Ci ~ Ninomial(Ni, pi)
2. ランダムな部分と系統的な部分のリンク(ロジットリンク関数)
logit(pi) = log(pi/(1-pi) = ηi
3. 応答のうちの系統的な部分(線形予測子ηi)
ηi = α + β1 * Xi + β2 * Xi^2

ここでpiは、算術軸上での成功つがい数の割合の期待値であり、Ni回試行それぞれに対する応答の平均である。ηiは、それと同じ割合をロジットリンク軸としたもの。

3.5.2 実際のデータセットの解析


データを覗いてみる。

初めのMCMC150ループを見てみる。