- 読書ノート アーカイブ:http://yagays.github.com/blog/2012/10/20/archive-introducing-monte-carlo-methods-with-r/
練習問題 6.13
この問題は例6.3と同じく,線形回帰におけるパラメータの事後分布からメトロポリス・ヘイスティング・アルゴリズムを用いてサンプリングを行うことを目標とする.線形回帰の対象はmcsmパッケージに収められているchallengerデータセットで,過去に打ち上げられたスペースシャトルにおけるOリングの破損の有無と,その時の気温に関するものである.
a. glm()関数を使ってロジスティック回帰を行う
打ち上げられたスペースシャトルのOリングは破損しているかしていないかの2値で表されるため,今回はロジスティック回帰を用いた当てはめを行う.Oリングが破損している場合は1を,破損していない場合には0が割り当てられており,ある気温におけるOリングの破損確率は
で表される.今回はこのとをglm()関数を使って推定する.
なお,以下のコードではロジスティック関数を式変形してとして計算している.
1 2 3 4 5 6 |
|
この図は,横軸に気温(華氏),縦軸にOリングの破損の有無をプロットしたものである.また,glm()関数で推定したロジスティック曲線をオレンジ色で示しており,任意の気温における破損する確率と対応している.この図を見ると,華氏65前後で破損確率が50%となり,気温が高い場合は破損確率が低く,逆に気温が低い時には破損確率が高いことがわかる.
glm()関数のパラメータ推定の詳細は以下の通り.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
b. ロジスティック回帰で推定したパラメータの値を用いて,メトロポリス・ヘイスティング・アルゴリズムでサンプリングを行う
これは前回と殆ど変わらず.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
c. 5000回のマルコフ連鎖によるサンプル列を生成し,サンプリングで得られた推定値を使ったロジスティック曲線を図示する
実際に上で書いたコードを動かして,事後分布からのサンプリングを行い,得られたサンプルのうち4500回から5000回までの反復で生成した当てはめ曲線を灰色の曲線で表している.
また,パラメータとの系列の変動,自己相関プロット,系列の分布を以下の図で示している.
1 2 3 4 5 6 7 |
|
そして最後に,サンプリング推定値差の変動を示したのが以下の図である.glm()関数で推定した値を赤線で表示しており,そこからどれだけ離れているかを見ることができる.
1 2 3 |
|
d. サンプリングで得られたパラメータの分布から,華氏60,50,40度のときの故障の確率と標準誤差を推定する
サンプリングで得られた値を用いて,ある温度における故障の確率と標準誤差を求める.なお,今回はBurn-inによる推定値の切り捨てを行なっておらず,サンプリング回数5000回で得られた推定値を全て使っている.
1 2 3 4 5 6 7 |
|