読んでいる本(出典): Rによるベイジアン動的線形モデル (統計ライブラリー) | G.ペトリス, S.ペトローネ, P.カンパニョーリ, 和合 肇, 萩原 淳一郎 | 本 | Amazon.co.jp
前回:ノート1 / 次回:ノート3
目次:Rによるベイジアン動的線型モデル
今日読んだページ: 9~14ページ
以下、自分の解釈。誤っている可能性があります。
- やりたいこと(前回の範囲):
- を観測したとき、その観測値を実現させるモデルのパラメータ を知りたい。或いは、 には特に興味はなく次の観測値 そのものを予測したい。
- やりたいことへのベイズアプローチ(前回の範囲):
- のパラメトリックな事前分布と の下での の尤度関数は予め何か決め打っておいて、取得した観測値 の下でのパラメータ の事後分布を求める。
- といっても観測値がとる分布への制約をどう考えていけばよいのか:
- では の分布まで求まったら推定値をどう考えればよいのか:
二次損失、線形損失、0-1損失を実感してみるために、 の事後分布が以下のような離散分布(適当)になるケースを考える。
pi <- data.frame( theta=c( 1, 2, 3, 4, 5, 6, 7), p =c(0.1, 0.25, 0.23, 0.2, 0.1, 0.07, 0.05) )
このとき、
- の平均値: 3.36
- の中央値: 3
- の最頻値: 2
の分布と損失関数を図示すると下図のようになる。二次損失は(見た感じ) の平均値で最小に、線形損失は中央値で最小に、0-1損失は最頻値で最小になっていることがわかる。
※ 実際には 0-1 損失は の取りうる値でのみ でない値を取る。グラフが汚いのはサンプリングの問題。
ソースは以下。
plot(pi$theta, pi$p, xlim=c(0.5, 7.5), xlab="θ", ylab="PDF", type="h") quadratic.loss <- function(x){sum(pi$p * (pi$theta - x) * (pi$theta - x))} linear.loss <- function(x){sum(pi$p * abs(x - pi$theta))} zeroone.loss <- function(x){sum(pi$p * ifelse(x == pi$theta, 0, 1))} theta.target <- seq(0.5, 7.5, by=0.01) plot(theta.target, sapply(theta.target, quadratic.loss), xlab="a", ylab="Quadratic loss", type="l") plot(theta.target, sapply(theta.target, linear.loss ), xlab="a", ylab="Linear loss", type="l") plot(theta.target, sapply(theta.target, zeroone.loss ), xlab="a", ylab="Zero-one loss", type="l")