Title
Name
Date
これまでの振り返り
対数尤度関数
対数尤度
パラメータ
最尤推定法とMCMCのイメージ
最尤推定法では対数尤度度が
⼤大きくなるように、パラメータが更更新される
7.
Title
Name
Date
これまでの振り返り
対数尤度関数
最尤推定法とMCMCのイメージ
対数尤度
パラメータ
最尤推定法では対数尤度度が
⼤大きくなるように、パラメータが更更新される
8.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
収束!(最大値 or 極小値が求まる)
対数尤度関数
対数尤度
パラメータ
最尤推定法では対数尤度度が
⼤大きくなるように、パラメータが更更新される
9.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度関数
対数尤度
そのときのパラメータが推定されたパラメータ
パラメータ
最尤推定法では対数尤度度が
⼤大きくなるように、パラメータが更更新される
10.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
(メトロポリス法)
パラメータをランダムに動かす
パラメータ
11.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
(メトロポリス法)
パラメータをランダムに動かす
パラメータ
対数尤度度が⼤大きくなったら、その⽅方向にパラメータを更更新する
12.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
(メトロポリス法)
パラメータをランダムに動かす
パラメータ
対数尤度度が⼤大きくなったら、その⽅方向にパラメータを更更新する
対数尤度度が⼩小さくなったら、ある確率率率で対数尤度度が⼤大きくなるように更更新する
13.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
(メトロポリス法)
パラメータをランダムに動かす
パラメータ
対数尤度度が⼤大きくなったら、その⽅方向にパラメータを更更新する
対数尤度度が⼩小さくなったら、ある確率率率で対数尤度度が⼤大きくなるように更更新する
フラフラさせる。対数尤度度が⼤大きいところに移動しやすい
14.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
(メトロポリス法)
パラメータ
パラメータごとの滞在回数をカウントする
15.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
(メトロポリス法)
パラメータ
パラメータごとの滞在回数をカウントする
ヒストグラムを作成する
16.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
対数尤度
スタート位置
注意点
(メトロポリス法)
パラメータ
1ステップごとに相関があるので、ステップ数が⼩小さいと分布に隔たりができる
解決⽅方法
^
収束するまで動かす -‐‑‒> Rの推定値をみる
スタートからある程度度のステップ数を捨てる -‐‑‒> burn-‐‑‒in
17.
Title
Name
Date
これまでの振り返り
最尤推定法とMCMCのイメージ
最尤推定法は
パラメータの点推定
MCMCは
パラメータの事後分布推定
Title
□
10.3階層ベイズモデルの推定・予測
○階層ベイズモデルの事後分布
尤度度関数のパラメータの事前分布
尤度度関数
33.
Title
□
10.3階層ベイズモデルの推定・予測
○階層ベイズモデルの事後分布
p(s) = (0から10^4までの連続⼀一様分布)
事前分布のパラメータsの事前分布
尤度度関数
尤度度関数のパラメータの事前分布
34.
BUGSコード
model
{
for (i in 1:N) {
Y[i] ~ dbin(q[i], 8) # 二項分布
logit(q[i]) <- beta + r[i] # 生存確率
}
!
beta ~ dnorm(0, 1.0E-4) # 無情報事前分布
for (i in 1:N) {
r[i] ~ dnorm(0, tau) # 階層事前分布
}
!
tau <- 1 / (s * s) # tau は分散の逆数
s ~ dunif(0, 1.0E+4) # 無情報事前分布
}
10.3.1 階層ベイズモデルのMCMCサンプリング
http://www.politicalbubbles.org/bayes_beach/manual14.pdf
35.
BUGSコード
model
{
for (i in 1:N) {
Y[i] ~ dbin(q[i], 8) # 二項分布
logit(q[i]) <- beta + r[i] # 生存確率
}
!
beta ~ dnorm(0, 1.0E-4) # 無情報事前分布
for (i in 1:N) {
r[i] ~ dnorm(0, tau) # 階層事前分布
}
!
tau <- 1 / (s * s) # tau は分散の逆数
s ~ dunif(0, 1.0E+4) # 無情報事前分布
}
10.3.1 階層ベイズモデルのMCMCサンプリング
○⽣生存数Y[i]は⼆二項分布
-‐‑‒ サイズ8
-‐‑‒ ⽣生存確率率率q[i]
!
○⽣生存確率率率q[i]は
ロジットリンク関数と
線形予測⼦子 β + r[i]
http://www.politicalbubbles.org/bayes_beach/manual14.pdf
36.
BUGSコード
model
{
for (i in 1:N) {
Y[i] ~ dbin(q[i], 8) # 二項分布
logit(q[i]) <- beta + r[i] # 生存確率
}
!
beta ~ dnorm(0, 1.0E-4) # 無情報事前分布
for (i in 1:N) {
r[i] ~ dnorm(0, tau) # 階層事前分布
}
!
tau <- 1 / (s * s) # tau は分散の逆数
s ~ dunif(0, 1.0E+4) # 無情報事前分布
}
10.3.1 階層ベイズモデルのMCMCサンプリング
○各パラメータの事前分布
-‐‑‒ β はひらべったい正規分布
-‐‑‒ r は標準偏差がsの正規分布
-‐‑‒ sは⼀一様分布
http://www.politicalbubbles.org/bayes_beach/manual14.pdf
37.
Stanコード
data {
int<lower=0> N;
int<lower=0> y[N];
}
parameters {
real beta;
real r[N];
real<lower=0> s;
}
transformed parameters {
real q[N];
for (i in 1:N) {
q[i] <- inv_logit(beta + r[i]);
}
}
model {
y ~ binomial(8, q);
beta ~ normal(0, 100);
r ~ normal(0, s);
s ~ uniform(0, 1.0E+4);
}
10.3.1 階層ベイズモデルのMCMCサンプリング
38.
10.3.1 階層ベイズモデルのMCMCサンプリング
data{
…
}
Stanコード
data {
int<lower=0> N;
int<lower=0> y[N];
}
parameters {
real beta;
real r[N];
real<lower=0> s;
}
transformed parameters {
real q[N];
for (i in 1:N) {
q[i] <- inv_logit(beta + r[i]);
}
}
model {
y ~ binomial(8, q);
beta ~ normal(0, 100);
r ~ normal(0, s);
s ~ uniform(0, 1.0E+4);
}
【⼊入⼒力力データ】
データ数
観測データ
39.
10.3.1 階層ベイズモデルのMCMCサンプリング
parameters{
…
}
Stanコード
data {
int<lower=0> N;
int<lower=0> y[N];
}
parameters {
real beta;
real r[N];
real<lower=0> s;
}
transformed parameters {
real q[N];
for (i in 1:N) {
q[i] <- inv_logit(beta + r[i]);
}
}
model {
y ~ binomial(8, q);
beta ~ normal(0, 100);
r ~ normal(0, s);
s ~ uniform(0, 1.0E+4);
}
【推定するパラメータ】
データ数
観測データ
個体ごとのパラメータrはN個
40.
10.3.1 階層ベイズモデルのMCMCサンプリング
transformedparameters {
…
}
Stanコード
data {
int<lower=0> N;
int<lower=0> y[N];
}
parameters {
real beta;
real r[N];
real<lower=0> s;
個体ごとのパラメータrはN個
}
transformed parameters {
real q[N];
for (i in 1:N) {
q[i] <- inv_logit(beta + r[i]);
}
}
model {
y ~ binomial(8, q);
beta ~ normal(0, 100);
r ~ normal(0, s);
s ~ uniform(0, 1.0E+4);
}
【他のパラメータから
作るパラメータ】
データ数
観測データ
確率率率qは
ロジットリンク関数と
線形予測⼦子(beta+r[i])で
与えられる
41.
10.3.1 階層ベイズモデルのMCMCサンプリング
model{
…
}
Stanコード
data {
int<lower=0> N;
int<lower=0> y[N];
}
parameters {
real beta;
real r[N];
real<lower=0> s;
個体ごとのパラメータrはN個
}
transformed parameters {
real q[N];
for (i in 1:N) {
q[i] <- inv_logit(beta + r[i]);
}
}
model {
y ~ binomial(8, q);
beta ~ normal(0, 100);
r ~ normal(0, s);
s ~ uniform(0, 1.0E+4);
}
【各パラメータを分布で表現】
データ数
観測データ
確率率率qは
ロジットリンク関数と
線形予測⼦子(beta+r[i])で
与えられる
normal(平均, 標準偏差);
42.
Title
Name
Date
10.3.2 階層ベイズモデルの事後分布推定と予測
βの事後分布sの事後分布
β, sは全個体共通のパラメータ。
43.
Title
Name
Date
10.3.2 階層ベイズモデルの事後分布推定と予測
r[i]の事後分布q[i]の分布
r[1], q[1]
r[1]が⼩小さい値をとりやすいと、q[1]の⽣生存確率率率は⼩小さくなる
44.
Title
Name
Date
10.3.2 階層ベイズモデルの事後分布推定と予測
r[i]の事後分布q[i]の分布
r[2], q[2]
r[2]が⼤大きい値をとりやすいと、q[2]の⽣生存確率率率は⼤大きくなる
45.
Title
Name
Date
10.3.2 階層ベイズモデルの事後分布推定と予測
r[i]の事後分布q[i]の分布
r[3], q[3]
r[3]がゼロ付近だと、q[3]は0.5を中⼼心とした分布となる
46.
Title
Name
Date
10.3.2 階層ベイズモデルの事後分布推定と予測
yのMCMCサンプル
⿊黒丸:観測データ
⽩白丸:β, sのMCMCサンプルで
予測した各yの平均値
⻘青丸:β, sのMCMCサンプルで
予測した各yの中央値
テキストでは中央値だったけど…
⽣生存数0とかは極端な値をとりやすいので
中央値が⼩小さいものになってしまう…
中央値⽣生存数0のカウントを
ソートしたグラフ
47.
Title
□
まとめ
個体差や場所差などの考慮が必要なGLMMでは、パラメータの最尤推定が難しい
→ MCMCを使ってみよう
事前分布のパラメータに、さらに事前分布が設定されているベイズ統計モデル
→ 階層ベイズモデル