StanとRでベイズ統計モデリング読書会 導入編(1章~3章)

947 views

Published on

「StanとRでベイズ統計モデリング」の読書会発表資料です。
今回の発表は導入編(1章~3章)です。
初回ということもあって,本の内容以外に清水が補足説明を加えているところもあります。

Published in: Data & Analytics

StanとRでベイズ統計モデリング読書会 導入編(1章~3章)

  1. 1. StanとRでベイズ統計モデリング 読書会 導入編(1章~3章) 清水裕士 関西学院大学社会学部
  2. 2. 自己紹介 • 清水裕士 – 関西学院大学社会学部 – 社会心理学研究センター研究員 • 専門 – 社会心理学 • 趣味 – Stan • Web – Twitter:@simizu706 – ブログ: http://norimune.net
  3. 3. 統計分析ソフトHAD
  4. 4. Stan初心者講習の資料 • http://www.slideshare.net/simizu706/stan-62042940
  5. 5. 中級編も
  6. 6. この会の目的 • 『StanとRでベイズ統計モデリング』 – 松浦健太郎著
  7. 7. この本の特徴 • Stan神@berobero11さんの本 – おそらく日本で(世界でも)トップレベルでStanに詳しく、 かつ、情報発信をしている人 • rstanのサイトやマニュアルの日本語翻訳チームをまとめて いる – 統計モデリングや機械学習、伝統的な統計モデルな ど幅広い知識がある • 敷居がとても低い – 簡単なモデルを丁寧に解説 – 数式があまり出てこない
  8. 8. ねらい • ベイズ統計モデリングに興味がある人 – Stanを触ったことない人 – 文系で数式もよく分からない人 – Stanによるモデリングに親しんでもらうことを目的 • Stanの布教 – みんなでMCMC(*´Д`)ハァハァしましょう
  9. 9. 読書会の方針 • 月に1回ペースぐらい • 担当者が1章を熟読して発表 – Stanコードがあれば、それも実行しつつ難しそうなポ イントを紹介 • 全員は当該の章を読んでくる – 発表のあと、質疑応答、議論など • 清水がわかる範囲で解説する
  10. 10. 今日の発表 • 清水が担当 • 導入編(1章~3章)について解説 – 本の内容+清水的解説 – とくに、数式の意味、読み方、そして統計モデリン グのことなどについて話します – 今日はStanもRも使いません
  11. 11. はじめに
  12. 12. 何について書かれた本? • Stan、とくにrstanについての解説 – Stanは確率的プログラミング言語のソフト名 – rstanはStanをRで動かすためのパッケージ名 • StanはPythonとかStataなどほかのソフトでも動く • Stanでできること – いろんな統計モデリング – 回帰分析などはもちろん、階層モデル、状態空間モ デルなど高度なモデルも可能 – ユーザーがそれらをカスタマイズすることも可能
  13. 13. 1章 統計モデリングとStanの概要
  14. 14. 1.1 統計モデリングとは • モデル – 必要なエッセンスだけを取り上げて,不必要な部分を大 胆に切り落としたもの • プラモデルとか。 • 確率モデル – エッセンスに数式を用いて,確率分布を取り入れたもの • 統計モデリング – 確率モデルをデータに当てはめて現象の理解と予測を促 すこと
  15. 15. 確率モデル • 確率分布 – 確率変数が取りうる各々の値に対して,その発生の しやすさを確率で表したもの – 二項分布,正規分布などなど • パラメータ – 確率分布を特徴づける値 • 正規分布なら平均値と分散(あるいは標準偏差) – 解析前には未知で,これを知ることが統計モデリング の1つの目的
  16. 16. 補足:統計モデリングとは • データ発生のメカニズムを知る – データが何らかの分布から発生している – その発生メカニズムを「確率分布」を使って表現 – データの予測に興味がある • 確率分布のパラメータを推測する – 確率分布の形を決める値のこと • 正規分布なら,平均値と分散 – 正規分布以外の確率分布も扱う
  17. 17. 真の分布=データ発生メカニズム 真の分布 データ 直接は知りえない 直接観測できる データの発生 我々の知らない複雑な確率分布
  18. 18. 確率モデルを選ぶ • データに合った,よく知っている確率分布 データ 確率モデル 我々の知っている簡単な確率分布 たとえば正規分布を当てはめる パラメータは未知
  19. 19. 統計モデリング • パラメータの推測 – 正規分布には平均値と分散,二つのパラメータ – パラメータが決まれば,確率分布の形が決まる • パラメータの推定原理 – 最小二乗法 – 最尤法 – ベイズ法
  20. 20. 予測分布 • 確率モデルに推定したパラメータを投入 – 平均が-0.05,標準偏差が1.15の正規分布 μ = -0.05 σ = 1.15 データ 予測分布
  21. 21. 予測分布≒データ発生メカニズム 真の分布 データ 直接は知りえない 直接観測できる データの 発生 予測分布 統計モデリング 確率モデルを選び, パラメータを推測 この二つが似ていれば, 将来のデータ生成を予測 することができる 我々の知らない 複雑な確率分布 我々の知っている 簡単な確率分布
  22. 22. 1.2 統計モデリングの目的 • 解釈 – 現象の仕組みを知りたい • データの生成メカニズムを知りたい • 説明しやすい,納得しやすいモデルを作りたい – パラメータの関係式から現象を解釈する • 回帰分析の回帰式なんかがそれにあたる • 予測 – これまで得られたデータから,未来に得られるであろ うデータの振る舞いを知りたい • 予測精度の高いモデルを作りたい
  23. 23. 解釈と予測 • 二つは密接に関連している – 背景知識とマッチした納得しやすいモデルは,頑 健性を備えている • ただし同じものではない – 予測精度だけを上げたいなら,機械学習のような 方法を使えば良い • 中身はブラックボックス(解釈不可能)だが,未来の データは完璧に予測(分類)することができる,とか
  24. 24. 解釈と予測から見る手法の違い • 古典的な統計学(分散分析とか) – 解釈重視 • 実験計画にあった解釈が可能 – しかし,強い制約がある • 等分散の仮定,球面性の仮定,正規性の仮定・・・ • 機械学習 – 予測重視 • 次に取るデータの振る舞いを正確に予測・制御可能 – しかし,解釈ができない • ノンパラメトリックな手法 • 将棋ソフトとかは,強くなればなるほど「なぜその手が選ば れたのか」が人間では理解できなくなる
  25. 25. 統計モデリング • その二つのバランスをとることが可能 – 予測を重視したい場合は,それに合わせたモデ リングを行う • パラメータを予測力が上がるように少し複雑に • 過学習が起こらない程度に程よい複雑さを目指す – 解釈を重視したい場合は,わかりやすいモデルを • 実質科学的知見に基づいたモデル構築と変数選択 いいとこどりができるのが統計モデリング!
  26. 26. 1.3 確率的プログラミング言語 • これまでの統計モデリング – モデル構築に,パラメータ推定のためのアルゴリズム 開発がセット • 新しいモデルを作ったら,そのたびに,対数尤度関数の偏 微分をしてそれをプログラミングする – 高度な数学とプログラミング知識が必要 • 確率的プログラミング言語を使うと – 分析者はモデル構築だけをすればいい – パラメータ推定はソフトウェアが勝手にやってくれる
  27. 27. 確率的プログラミング言語とは • probabilistic programming language – 「様々な分布の関数や尤度の計算に特化しかし た関数が豊富に用意されており,確率モデルを データに当てはめることを主な目的としたプログ ラミング言語」 • 確率モデルを書けば勝手に解いてくれる – 確率モデルを書いてデータを入れたら,ほぼ自動 的にパラメータを推定してくれる
  28. 28. 確率的プログラミング言語の利点 • モデル開発に専念できる – モデル記述と難しい推定計算を分離 – 分析者は前者だけやって,後者はソフトに任せる • 数学的な素養があまりいらない(清水補足) – 自分で微分とかして解く必要がない • プログラミングの知識もあまりいらない(清水補足) – モデル構築だけをすればよい – アルゴリズムをプログラミング化しなくていいので,バグも 減り,可読性も高い
  29. 29. Rの関数との違いは? • Rにも多様な関数がある – lm(), glm(),などなど – パッケージも豊富 • それぞれの関数は1つのモデルのみ対応 – 新しいモデルをやるたびにパッケージを探す必要 – 探しても見つからない場合は,そこで行き詰まる • 確率的プログラミング言語があれば! – ちょっとしたモデルの修正は手間がかからない – 最初の「習得コスト」は大きくても,できることは非常に多 いので,総合的には利益が大きい
  30. 30. 1.4 なぜStanなのか • WinBUGS – 一番最初に作られた確率的プログラミング言語 – エラーがわかりにくい – 2007年から開発が停滞 • JAGS – BUGSの思想を受け継いだ確率的プログラミング言語 – 一人が開発をしているのであまり更新されず,マニュ アルも整備されていない
  31. 31. Stan • 最新の手法が実装 – ハミルトミアンモンテカルロ法 • あるいはそれを改良したNUTSと呼ばれる方法 • BUGSやJAGSのアルゴリズムより性能がいい – 100分の1ぐらいの計算回数で収束する – 変分ベイズを行う自動微分変分ベイズ法 • 近似法だが,MCMCよりもずっと早い • 開発が活発 – マニュアルが充実 • モデルの用例も豊富 – エラーメッセージもわかりやすい – 新しい手法の実装や,バグの修正も早い
  32. 32. なぜrstanなのか • rstanとは – StanをR上で動かすためのパッケージ – StanはR以外にもPythonやStataなど,いろんな統計ソ フトで動かすことができる • Rのメリット – 作図機能が優秀 – データハンドリング機能が充実 – 使える確率分布も豊富でシミュレーションしやすい – 統計モデリングをするのにはいい環境
  33. 33. Stanコードの例 • データから正規分布のパラメータを推定 – パラメータは平均μと標準偏差σ
  34. 34. Stanでの分析例 • Rで乱数を作ってみる – 100人のデータを正規分布から生成 • 真値はμ=5,σ=2 • 分析結果
  35. 35. 2章 ベイズ推定の復習
  36. 36. 2.1 基本用語と記法 • 2章は本書を読む上で重要な情報満載 – 理系の人にとっては基礎的な内容 – しかし,文系にとっては難しい話が多い • 可能な限り具体的に説明します – ただ,本書を読む上で必要ない部分はざっくり 削ってたりします – 参考文献も読みつつ理解していくとよい
  37. 37. 確率分布 • 変数の各々の値についての発生しやすさ – 単に分布とも呼ぶ – 二項分布とか正規分布とか – 変数𝑎についての確率は𝑃(𝑎)と表記する • 確率分布の性質 – 総和あるいは積分すると1になる • 例:サイコロで1~6が出る確率は1 • 1にならないものは確率分布とは呼ばない
  38. 38. 確率質量関数 • 離散的な確率分布の関数 – probability mass function: PMF – サイコロなど,値がとびとびのもの – 二項分布,ポアソン分布,負の二項分布など • PMFの特徴 – 値と確率が一対一対応する • 1の目がでる確率は1/6 • 成功率0.5,試行数10の二項分布で5回成功する確率は 0.246,など – 総和が1になる
  39. 39. 確率質量関数(PMF)
  40. 40. 確率密度関数 • 連続的な確率分布の関数 – probability density function: PDF – 値が連続的で∞までの範囲がある(ない場合も) – 正規分布,ガンマ分布,ベータ分布 • PDFの特徴 – ある一点の値と確率が対応しない • 確率ではなく,確率密度と呼ばれる – 確率は,値の範囲に対応する • (定)積分した値が確率 – 積分したら1になる
  41. 41. 確率密度関数 • 平均=0,SD=0.1の正規分布 – 確率密度は1を超えることがある点に注意! • 確率密度は確率とは別物
  42. 42. 同時分布 • 複数の変数についての確率分布 – の中で,値の組が同時の生じる確率を表す – 変数𝑎, 𝑏の二つの場合,𝑃 𝑎, 𝑏 と書く • 周辺化 – 同時分布のうち,特定の変数について総和ある いは積分した分布 – 𝑝(𝑎, 𝑏)で𝑎について総和・積分をすると,𝑎が変数 でなくなるので消える → 𝑝(𝑏)になる
  43. 43. 例 • 性別と回答,二つの変数のクロス表 • 同時分布 – 総和は1になる 男性 女性 合計 はい 8 4 12 いいえ 2 6 8 合計 10 10 20 男性 女性 はい 0.4 0.2 いいえ 0.1 0.3
  44. 44. 同時分布と周辺化 • 周辺化 – 性別について総和をとると・・・ – はいの確率は0.4 + 0.2=0.6 – いいえの確率は0.1 + 0.3 = 0.4 男性 女性 はい 0.4 0.2 いいえ 0.1 0.3 はい 0.6 いいえ 0.4 周辺分布
  45. 45. 連続値の場合 • 同時分布の例:二変量正規分布 – 二つの正規分布についての組についての分布 • 周辺化(周辺分布) – 𝑦について積分すると,𝑥の正規分布が残る 𝑥
  46. 46. 総和と積分 • 同じようなもん – 𝑝(𝑎)𝑎 – ∫ 𝑝 𝑎 𝑑𝑎 – それぞれ,変数𝑎について足し合わせる • 積分のイメージ – 無数に細かく分けたものを足し合わせる
  47. 47. 条件付き確率 • ある変数が特定の値のときの別の変数が発 生する確率を表したもの – 𝑝(𝑎|𝑏) – 変数𝑏が与えられたときの変数𝑎の条件付き確率 • 同時確率においてbが特定の値を取る場合 の確率 – 𝑝 𝑎 𝑏 = 0 = 𝑝 𝑎,𝑏=0 𝑝 𝑏=0
  48. 48. 条件付き確率分布 • 性別=男性のときの条件付き確率分布 – 男性場合だけなので,8/10と2/10が条件付き確率に なる • 同時分布との関係 – 男性の確率𝑝(男性)は0.5なので, – 𝑝(はい|男性) = 0.4/0.5=0.8と計算することもできる 男性 はい 0.8 いいえ 0.2 男性 女性 合計 はい 8 4 12 いいえ 2 6 8 合計 10 10 20
  49. 49. 確率モデルと条件付き確率分布 • データ𝑦が二項分布から生成する確率 – 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙(𝑦)と書く • パラメータを入れるときは条件付き確率 – データ𝑦が成功率𝜃,試行数Nの二項分布から生 成される確率 – 𝐵𝑖𝑛𝑜𝑚𝑖𝑎𝑙(𝑦 | 𝜃, 𝑁) – 統計モデリングではよく出てくる表現方法
  50. 50. 𝑦 ~ 𝑝(𝑦) • 確率変数𝑦が確率分布𝑃(𝑦)に従う – ~(チルダ)は確率的な関係性を表す • データ𝑦が正規分布に従う場合 – 平均𝜇,SD=𝜎の正規分布 – 𝑦 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝑦 𝜇, 𝜎) – 単に,𝑦 ~ 𝑁𝑜𝑟𝑚𝑎𝑙(𝜇, 𝜎)と書くこともある
  51. 51. 正規化 • 関数の総和や積分が1になるようにすること – 確率分布の定義を満たすようにすること • 正規化定数 – 正規化するために,ある関数に定数をかけたり 割ったりする – その値を正規化定数という – これを知っているとベイズの定理が理解しやすく なるが,わからなくても本書の大半は理解できる
  52. 52. 偏微分 • 特定の変数についてのみ微分すること – 2変数𝑎, 𝑏の関数がある場合,𝑎を定数とみなして bのみで微分するような場合,偏微分という • 尤度関数を最適化するときに使う – 尤度については後述 – 本書の大半の理解には必須ではない
  53. 53. ベクトル • 数値が1次元に並んだもの – データの変数などは基本ベクトル – 本書では𝑥と表記される • 列ベクトルと行ベクトル – 列ベクトルは縦に並んだもの • 変数なんかも基本は列ベクトル – 行ベクトルは横に並んだもの • 転置 – 列ベクトルを行ベクトルにする(あるいはその逆) 𝑥 = 𝑥1 𝑥2 𝑥3 = 𝑥1 𝑥2 𝑥3 𝑇
  54. 54. 行列 • 数値が多次元に並んだもの – ベクトルが集まったものも行列 – データセットなんかも行列 – 本書では𝒙と太文字で表記される 𝒙 = 𝑥11, 𝑥12, 𝑥13 𝑥21, 𝑥22, 𝑥23 𝑥31, 𝑥32, 𝑥33
  55. 55. 本書の記法 • データを表す場合 – 最初を大文字にする – 統計モデリングでは,観測されたものは大文字で表 記されることが多い • 添字には二種類の意味 – パラメータの場合と,ベクトルの場合 – 𝜎 𝑌は変数Yの標準偏差であることを意味する – 𝜃 𝑘はベクトル𝜃のk番目の要素であることを意味する
  56. 56. ベクトルの要素の表記 • 添字のバージョン – 𝑌𝑛 – データ𝑌の𝑛番目の値 – 数学ではこっちを使う • 大カッコバージョン – 𝑌[𝑛] – データ𝑌の𝑛番目の値 – Stanの場合はこっちのほうがわかりやすいかも
  57. 57. 2.2 伝統的な統計学の問題点 • ベイズ統計学と伝統的な統計学 – おそらく本書では頻度主義統計学のことを「伝統 的な統計学」と呼んでいる・・・と思う – その二つの違いは,結局はパラメータを定数と考 えるか確率変数と考えるかの違い • 本書に合わせて「ベイズ」と「伝統」と表記 – 頻度と書くとたぶんいろいろややこしいことが・・・ あるのかないのか
  58. 58. パラメータの扱い • パラメータ – 確率分布を特徴づける値 • 正規分布なら平均値と分散(あるいは標準偏差) – 解析前には未知で,これを知ることが統計モデリングの1 つの目的 • パラメータをどう考えるか – 伝統:真の値があって,それは定数であると考える • 平均値は170だ!とか – ベイズ:確率的に変動するものと考える • 平均値は170が最も確率が高そうだが,165である確率もそれなり にはあるな・・・
  59. 59. 伝統的な考え方の問題 • パラメータを定数と考える – 確率的に変動するのはデータだけになる – 確率の解釈をデータの変動を中心にする必要 • 検定のロジック – 𝑝値は,帰無仮説が正しいという仮定のものとで, データ以上に極端な結果が得られる確率 – パラメータについては確率的なことは何も言えな いのでこんな周りくどい言い方になる
  60. 60. 伝統的な考え方の問題 • 信頼区間の考え方 – パラメータは定数なので,95%信頼区間も「この 範囲にパラメータが含まれる確率が95%」という 言い方ができない – 仮にデータをたくさんとったとき,この方法で設定 した範囲にパラメータが含まれることが95%あると いう面倒な言い方になる
  61. 61. 伝統的な考え方の問題 • 予測区間 – 将来のデータが散らばると予想される範囲のこと – 予測分布の95%の範囲だと考えればOK • 「伝統」だと予測区間の定義が難しい – そもそも「伝統」では将来のデータを,現在のデータ で推論したモデルで予測するという考え方に合ってい ない – 結果が再現されるかどうかについても「伝統」からは 主張が難しい
  62. 62. 「ベイズ」的な考え方 • パラメータを確率変数と考える – データが有限である以上,パラメータの推論は確率 的な幅があって然り – その幅も含めて推論できるのがベイズの長所 • 検定のロジック – 帰無仮説を設定せずとも,パラメータについての仮説 が正しい確率が直接わかる – たとえば差が0以上の確率は,差のパラメータの分布 を0以上で積分すればOK
  63. 63. 2.3 尤度と最尤推定 • 最尤推定 – 「伝統」で使われる推定方法 – 尤度を最大にするパラメータを求める方法 • 尤度って何 – データと(ある分布の)パラメータの当てはまり具 合を表す量 – 尤度が高いほうが,データに合ったパラメータに なっている,ということ
  64. 64. 確率モデルと尤度関数 • 確率モデル – データ𝑦がSD=1の正規分布に従うとする • ここでは説明しやすいようにSDは固定しておく – 𝑦 ~ 𝑁𝑜𝑟𝑚𝑎𝑙(𝜇, 𝜎 = 1) • 𝜇は未知数 𝜇を知りたい • 正規分布の式 – 𝑁𝑜𝑟𝑚𝑎𝑙 𝑦|𝜇, 𝜎 = 1 2 𝜋 𝜎2 exp − 𝑦−𝜇 2 2𝜎2 – 𝜎 = 1の場合, 1 2 𝜋 exp − 𝑦−𝜇 2 2
  65. 65. 確率モデルと尤度関数 • 1人のデータ𝑌をとったとする – 𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 𝜇 = 1 2 𝜋 exp − 𝑌−𝜇 2 2 • この場合,𝑌はすでにわかっている値なので定数 • わからないのはパラメータ𝜇 • 尤度関数 – 確率モデルについて,データを定数,パラメータを変 数とした関数を尤度関数と呼ぶ – 確率分布と違うのは,積分しても1にならない – 特定のデータが得られたときのパラメータの尤もらし さ
  66. 66. 尤度関数のプロット • Y[1]が3の場合 – 𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 = 3 𝜇 = 1 2 𝜋 exp − 3−𝜇 2 2 – 𝜇は3が一番尤もらしい
  67. 67. 尤度関数のプロット • Yが(1,2,3,4,5)の場合 5人のデータ – 𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 𝜇 = 1 2 𝜋 exp − 𝑌[𝑛]−𝜇 2 2 5 𝑛=1 – 1人より5人のほうが尤度の分散は小さい Πは繰り返し「かける」 ことを意味する Σは繰り返す「たす」の を思い出そう
  68. 68. 尤度は小さい値になりやすい • データが100人だと100人分かけあわせる – 確率密度はたいていは1より小さいので,100人分かけあ わせると,とても小さい値になる – そこで,対数尤度を使うことが多い • 対数 – log2 8 = 3 • 8が2の何乗かを計算するもの – 対数をとると,積が和になり,また0~1の値は負でそれな りに絶対値が大きくなるので計算もしやすい • 8 × 8 = 64 • log2(23 × 23) = log2(23+3) = 3 + 3 = 6 = log2(64) – 統計モデリングでは自然対数を使う
  69. 69. 最尤推定のイメージ • データを平均5の正規分布から100個生成 – ここから逆に,𝜇を推定したい
  70. 70. 𝜇の値を変えてみる • μ=7 • μ=6 対数尤度 -315.4664 対数尤度 -174.5069
  71. 71. 𝜇の値を変えてみる • μ=5 • μ=4 対数尤度 -133.5475 対数尤度 -192.5881
  72. 72. 対数尤度関数のプロット • 5付近で最大になっているのがわかる
  73. 73. 最尤推定の方法 • 対数尤度関数の最大値を求める – 関数を微分して,接線の方程式が0になる𝜇 – パラメータが複数ある場合は,パラメータごとに 偏微分をして,連立方程式を解く • 普通は解析的に解けないので数値的に解く • 伝統的な方法と統計モデリング – モデルが変わると対数尤度関数が変わる – モデルごとに微分して,数値的に解くためのアル ゴリズムを用意しないといけない
  74. 74. 最尤推定の問題 • 過学習しやすい – 最尤推定は,手元のデータのみでパラメータを推論 する – つまり,手元のデータに「だけ」当てはまったモデルを 作ってしまいがち • これを過学習(オーバーフィッティング)と呼ぶ • 解を求めるのが困難な場合がある – 尤度関数が複雑になると,大局的に尤度を最大にす る値に到達するのが困難 – 初期値を変えていろいろ試す必要がある • それでも最適解である保証はなかなか得られない
  75. 75. 2.4 ベイズ推定とMCMC • 「伝統」の問題点を解決する – その1つがベイズの定理を用いたベイズ推定と,マル コフ連鎖モンテカルロ法(MCMC) • 「ベイズ」の特徴 – パラメータを確率変数と考える – ベイズでは,パラメータを定数ではなく確率分布とし て推定する • パラメータが複数あったら,その同時分布 • でも実際,パラメータを評価するときは周辺分布を見る
  76. 76. ベイズの定理 • ベイズ推定はベイズの定理で解く – ベイズでは𝑝(𝜃|𝑌)が知りたい • データ𝑌を条件とした,パラメータ𝜃の確率分布 • 事後分布と呼ぶ – 𝑝(𝜃)はデータを得る前のパラメータの分布 • 事前分布と呼ぶ 𝑝 𝜃 𝑌 = 𝑝 𝑌 𝜃 𝑝 𝜃 𝑝 𝑌
  77. 77. ベイズの定理 • 事後分布は尤度関数と事前分布の積に比例 – ∝は比例することを意味する – 尤度関数に事前分布をかけても確率分布にならない • 𝑝(𝑌)で割れば確率分布になる • その意味で, 𝑝(𝑌)は正規化定数であるといえる • 𝑝(𝑌) – データYのみに依存する定数値 – 𝑝 𝑌 は積分計算が大変で直接は求まらない • え? 𝑝 𝜃 𝑌 ∝ 𝑝 𝑌 𝜃 𝑝(𝜃)
  78. 78. じゃあどうしましょう • マルコフ連鎖モンテカルロ法 – 通称MCMC(*´Д`)ハァハァ • 後半はいらない • 事後分布からパラメータをサンプリング – 事後分布がわからないのにサンプリング? – その辺の理屈は本書のレベルを超えるので,他 書で勉強してください
  79. 79. MCMCの利点 • 𝑝(𝑌)を求めずに事後分布が得られる – ベイズの定理を無理なく解くことができる – 過去のは無理なやり方で解いていたことも • 事後分布の周辺分布が簡単に得られる – パラメータを個別に評価するためには,事後分布 を周辺化する必要がある – MCMCでは直接周辺分布が得られる
  80. 80. マルコフ連鎖って何よ • ある状態から,別の状態に推移する確率だけが 決まっている • 推移確率行列 – AからBに移行する確率は0.25 – BからAは0.4 – CからCは0.3 A B C A 0.5 0.25 0.25 B 0.4 0.3 0.3 C 0.4 0.3 0.3
  81. 81. マルコフ連鎖 A B C 0.25 0.3 0.4 0.5 0.30.3 0.25 0.4
  82. 82. マルコフ連鎖 A A B C 0.5 0.25 Aからスタート Bに推移 A B C 0.4 0.3 0.3 Cに推移 A B C Bに推移 0.3 0.3 0.4
  83. 83. マルコフ連鎖 • 初期分布 – 最初にA,B,Cのどの状態にあるかを決めるもの – たとえば1/3,1/3,1/3 • 推移確率に従って状態を変えていく – 2時点目においてAである確率は, – 初期分布×推移確率行列 – というように,推移確率行列をかけていくことで計 算ができる
  84. 84. 定常分布 • マルコフ連鎖を続けていると・・・ – 各状態にたどり着く確率は変化しなくなってくる – それを定常分布という • 定常分布は推移確率行列のみから決まる – つまり,初期分布には依存しない – ついでに先ほどの推移確率行列の場合, – A=8/18,B=5/18,C=5/18という定常分布となる
  85. 85. 定常分布に収束 • 初期状態が1/3の場合 • 必ずBから始まる場合でも・・ – このように,初期状態にかかわらずステップ6ぐら いで定常分布に収束する 状態 初期分布 ステップ1 ステップ2 ステップ3 ステップ4 ステップ5 ステップ6 ステップ7 ステップ8 A 0.333333 0.433333 0.443333 0.444333 0.444433 0.444443 0.444444 0.444444 0.444444 B 0.333333 0.283333 0.278333 0.277833 0.277783 0.277778 0.277778 0.277778 0.277778 C 0.333333 0.283333 0.278333 0.277833 0.277783 0.277778 0.277778 0.277778 0.277778 状態 初期分布 ステップ1 ステップ2 ステップ3 ステップ4 ステップ5 ステップ6 ステップ7 ステップ8 A 0 0.4 0.44 0.444 0.4444 0.44444 0.444444 0.444444 0.444444 B 1 0.3 0.28 0.278 0.2778 0.27778 0.277778 0.277778 0.277778 C 0 0.3 0.28 0.278 0.2778 0.27778 0.277778 0.277778 0.277778
  86. 86. 連続分布でも同様に • 連続分布でも定常分布が存在する – いくつかの条件がいるが・・・ – MCMCを使う場合は,この条件を満たす • 連続分布の推移確率行列 – 状態=パラメータの値 • 先程の例の状態(A,B,C)の推移は,ベイズ統計では連続的 なパラメータの値の推移と同じ – あるステップでパラメータの値が決まれば,次のス テップでどのような値になるかが確率的に決まる
  87. 87. MCMCは何をやっているか • 定常分布をシミュレーションで求める – 事後分布が定常分布となるようなマルコフ連鎖を発 生させる – 各パラメータが推移する確率はいずれ収束し,それ が定常分布=事後分布となる • MCMCにもいろんな方法が – ギブスサンプラー – メトロポリス・ヘイスティング – ハミルトニアンモンテカルロ
  88. 88. MCMC法は何をやっているのか • パラメータの推定値をたくさん計算する – 1000とか2000とか – 推定値をどんどんマルコフ連鎖で生成する • 推定値の集合体が事後分布になる MCMCによる事後分布 解析的に求めた事後分布
  89. 89. MCMCのイメージ 0.38 初期値 0.87 0.76 0.75 マルコフ連鎖に従って乱数が生成 0.45 最初のほうのパラメータは初期値に依存してしまうので, 切り捨てることが多い→ウォームアップ,あるいはバー ンイン期間という 初期値から順番に,推定 された値に対応したマル コフ連鎖の推移確率行列 に従ってどんどん値が決 まっていく
  90. 90. 2000回走らせた場合 • ウォームアップ期間として100個を捨てた – 定常分布=事後分布に収束する
  91. 91. サンプルの集合体が推定結果 • サンプル列 – マルコフ連鎖によってサンプリングされたパラメー タの値の集合 – 初期値と乱数の種を決めて得られたサンプル列 をchainと呼ぶ – 普通は,複数のchainを得て評価する • トレースプロット(trace plot) – サンプル列をステップ数で並べた折れ線グラフ
  92. 92. トレースプロット
  93. 93. トレースプロット
  94. 94. 事後分布の確率密度
  95. 95. 収束していない事後分布
  96. 96. 収束していな事後分布
  97. 97. 事後分布の収束評価 • トレースプロットを見る – チェインがあっちゃこっちゃしてないか見る • 自己相関を確認 – 収束していないと、ひとつ前の値の影響を強く受ける • 収束すると、ランダムになる – 事後分布をサンプル列から適当な間隔でまびいて評価す ることで、自己相関が小さくなることがある • thinningと呼び、Stanで間引き間隔を指定できる • 複数のチェインの一致の程度を見る – Rhatという指標を見る 4章に詳しい
  98. 98. 事後分布の評価の仕方 • MCMCサンプル列を要約する – 平均値 → パラメータの期待値(EAPとも呼ぶ) • 確率が最大になる値はMAP推定値と呼ぶ • Maximum a posterioriの略 – SD → パラメータの推定精度 • 「伝統」でいうところの標準誤差のようなもの – 95%区間 → パラメータの信頼区間 • ベイズ信頼区間
  99. 99. 2.5 ベイズ信頼区間とベイズ予測区間 • ベイズ信頼区間 – 得られた事後分布の特定の信頼度の区間 • 信頼度が95%の場合、95%信頼区間 – MCMCなら分位点から簡単に計算可能 • 95%の場合は、0.025と0.975の分位点をみればよい • 信頼区間の重要性 – 事後分布は常に単峰で左右対称とは限らない • SDだけでは、パラメータの精度は評価できない – 相関係数などもゆがんだ分布になるので信頼区間を 使って評価する方がよい
  100. 100. 予測区間 • 将来得られるデータが散らばりうる範囲 – 予測分布の95%区間 • 流れ星の例 – しし座流星群の夜に流れ星の数を数える • 10分10回観測 • 𝑌 = 0,1,1,3,0,3,3,2,1,0だった – ポアソン分布に従うと仮定すると、次の10分に観測で きる流れ星の数はいくらぐらいだろうか? • 𝑌 ~ 𝑃𝑜𝑖𝑠𝑠𝑜𝑛(𝜃)
  101. 101. 最尤推定における予測 • 𝜃の最尤推定値は1.4 – ポアソン分布の平均パラメータ𝜃に1.4を代入した ものが予測分布 – 𝜃の標準誤差を加味して予測分布を作る場合も ある • ただしその場合は積分しないといけない
  102. 102. ポアソン分布 • 𝜃=1.4のポアソン分布 – 離散分布
  103. 103. ベイズ予測区間 • 積分によって求めることができる – 予測分布 = ∫ 𝑝 𝑦 𝜃 𝑝 𝜃 𝑌 𝑑𝜃 • 𝑝(𝑦|𝑌) • 事後分布で重みづけた確率モデル • MCMCで計算された𝜃を全部使う – 例えば1000個の𝜃がサンプリングされたら、 – 1000個のポアソン分布を作成し、乱数を生成 – 乱数によって形作られたものが予測分布
  104. 104. 予測分布
  105. 105. 最尤推定とベイズ推定の関係 • ベイズの定理 • 最尤推定は事前分布が一様分布のMAP – 最尤推定は尤度のみを使って推定 – もし事前分布𝑝 𝜃 が一様分布なら、尤度関数に すべて同じ値をかけたものが事後分布に比例 – その最大事後確率推定値(MAP)は尤度を最大 にする点と同じ 𝑝 𝜃 𝑌 ∝ 𝑝 𝑌 𝜃 𝑝(𝜃)
  106. 106. 2.7 本書の事前分布の選び方 • 事前分布の選び方 – 恣意的に選ぶのはよくない • 背景知識が不十分な場合は、特定の値がでやすいような事前分 布を選ぶのは適切ではない • 再現性の低下の元になる – 無情報事前分布 • 範囲の広い一様分布 • 分散がすごい大きい分布 – 弱情報事前分布 • ある程度の知識がある場合は、それを反映させた事前分布を用 いることも有効
  107. 107. 推定された𝜃
  108. 108. 3章 統計モデリングをはじめる前に
  109. 109. 3.1 データ解析の前準備 • データをとる前に – 背景知識の収集 • 該当分野においてよく使われる手法や仮定を調べる – 問題設定 • データから何を知りたいかをまとめる • 何を主張したいかをまとめる • どういうストーリー、図で主張するとよいかを考える – 解析計画 • どの手法を使うか • 解析のベストシナリオを描く • マイルストーンを考えておく
  110. 110. データ解析の前準備 • データをとった後で – データの分布の確認 • ヒストグラム・箱ひげ図を見る • 散布図・クロス表を見る • 時系列データの場合は折れ線グラフなど • データ分布の確認の重要性 – 分布の確認は、データの生成メカニズムを推測する うえでとても重要 • どの確率分布を仮定するかを類推するのに役立つ – 図の描写はRなどが便利
  111. 111. 3.2 統計モデリングの手順 • 1.解析の目的 – さきほどの問題設定と同じ • 2.データの分布の確認 – さきほどと同じ – これらは基本中の基本!
  112. 112. 統計モデリングの手順 • 3.メカニズムの想像 – データ生成のメカニズムやデータとデータをつなぐメ カニズムを考える • 4.モデル式の記述 – メカニズムを式に落とし込む – Y ~ normal(mu, sigma) など • 5.シミュレーション – Rなどをつかって、モデル式の性質を調べる – 仮定した確率モデルからデータをRで生成してみる
  113. 113. 統計モデリングの手順 • 6.Stanで実装 – Stanのコードを書いて実装し、パラメータ推定を実行する – Rで想定した確率モデルから生成した乱数データを分析し て、真値が得られるかの確認も重要 • 7.推定結果の解釈 – 推定結果やベイズ信頼区間などをもとに解釈をしたり、図 を描いたりする • 8.図によるモデルのチェック – モデルがうまく当てはまっていそうかを図でチェックする
  114. 114. モデリングの段取り • メカニズムの想像の仕方 – イラストで表現 • パス図、グラフィカルモデル、概念図など • 数式で表現する前段階でやっておくと便利 – まずはシンプルなモデルから • つい最初から複雑なメカニズムを考えがちだが、うまく モデルが書けなかったり、推定できなかったりする • 確実にうまくいくモデルから徐々に複雑に
  115. 115. モデリングの段取り • シンプルなモデルの例 – 当該分野の教科書に載ってるようなモデル – 説明変数を絞る – 確率変数はなるべく独立と考えて、多変量正規分布をい きなり使わない – グループ差や個人差は最初は考慮しない • データも最初は小さくする – データが大きいと計算時間がかかり、モデルの試行錯誤 にも時間がかかる – ランダムに抽出して1/10ぐらいにする – カテゴリの水準を限定する
  116. 116. 再現性のチェック • 再現性 – 同じ手順に従えば、毎回同じ結果が得られること – 推定結果の再現性をチェックして、モデルの安定性、 頑健性を確認する • チェックポイント – 異なるデータセットでも同じような結果になるか • データを数個除いて分析しても同じになるか – ソフトやアルゴリズムを変えても同じ結果になるか • Stan以外のソフトを使っても同じになるか – アルゴリズムが乱数に依存する場合、それらを変え ても同じ推定結果になるか
  117. 117. データ解析のサイクル – データ分析は、ベストモデルを一つ作成できれば それで終わる営みではない – 予測性能が低い場合は原因を考える – データの増加に伴い、複雑なモデルを作る – 新しい解釈が可能になり、予測精度も上がる
  118. 118. 3.3 背景知識の役割 • メカニズムを想像と背景知識 – 統計モデリングでは、データだけからデータ生成 のメカニズムが完全にわかるわけではない – そのため、背景知識が利用される • 背景知識が統計モデリングでは必須 • その当該分野における実質科学的知見(背景知識)を抜 きにしてはメカニズムを想定することはできない
  119. 119. 統計モデリングは不良設定問題 • 不良設定問題とは – 答えが与えられた情報だけでは一意に定まらないよ うな問題 – 背景知識などを利用して、可能なデータ生成メカニズ ムの選択肢を限定していく必要がある • モデルの「正しさ」を議論することはできない – 真のモデルがなにかはわからない – あるモデルが、別のモデルよりも正しいかどうかもよ くわからない • どちらがありえそうか、解釈しやすいか、納得できるか
  120. 120. すべての要素を考慮する必要はない • 知りたいことに関わらない問題は削る – 知りたいことと関係ない場合は、できるだけシン プルに表現 – 無駄に複雑にすることは、解釈可能性が落ちる • 問題設定によってモデルが変わる – 知りたいことによって、複雑にする部分、シンプル にする部分が変わる
  121. 121. 3.4 モデルの記述方法 • モデル式 – データとパラメータの関係性 – パラメータとパラメータの関係性 • 確率的な関係性 – Y ~ Normal(μ, 1) • チルダを使う Yは正規分布に確率的に従う • 確定的な関係性 – μ = α + βX • イコールを使う μはα + βXによって規定される
  122. 122. グラフィカルモデル • 確率モデルのパラメータ関係を図示 – ◯に黒文字のノードは推定される確率変数 • パラメータ – ●に白文字のノードは観測された確率変数 • データ – 矢印(有向リンク)は条件付き確率 – 線分(無向リンク)は同時確率 – 四角い枠は繰り返し • データ数分だけ繰り返す μ Y[n] n = 1,… 20
  123. 123. 3.5 情報量規準を使ったモデル選択 • 情報量規準 – AIC、BIC、あるいはWAIC、WBICなどなど • 前者よりも後者(WAIC、WBIC)のほうがよい • MCMCを使えばこれらは簡単に計算可能 – モデル選択に使える • 予測精度の高いモデルや、データにあったモデルをこれらの指標 で選ぶことができる • 情報量規準に頼りすぎるのはよくない – しかし、情報量規準は万能ではない – WAICが小さいモデルが常に良いモデルとは限らない – 本書では、情報量規準によるモデル選択は扱わない
  124. 124. 補足 Stanによるモデリング例
  125. 125. t検定の場合 • 条件によって平均パラメータが変わる X=0 X=1
  126. 126. t検定の場合 • 確率モデル – 𝑌1 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇1, 𝜎 – 𝑌2 𝑚 ~ 𝑁𝑜𝑟𝑚𝑎𝑙(𝜇2, 𝜎) – 𝜇2 = 𝜇1 + 𝛿 • 推定するパラメータは – Y1の平均パラメータ𝜇1と,差のパラメータ𝛿 – 二つの群の共通した標準偏差𝜎
  127. 127. Stanコードの例 • 確率モデル – 𝑌1 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇1, 𝜎 – 𝑌2 𝑚 ~ 𝑁𝑜𝑟𝑚𝑎𝑙(𝜇2, 𝜎) – 𝜇2 = 𝜇1 + 𝛿
  128. 128. 回帰分析 • 回帰分析の仮定 – 確率モデルは正規分布 – データはすべて独立に同一分散の分布から生成 • 心理統計的な回帰分析の書き方 – 𝑌𝑖 = 𝛼 + 𝛽 𝑋𝑖 + 𝑒𝑖 – 𝑒𝑖~ 𝑁(0, 𝜎)
  129. 129. 回帰分析の統計モデル • データの生成メカニズムを正規分布と仮定 – 𝑌[𝑛]~ 𝑁 𝜇[𝑛], 𝜎 • 平均パラメータ𝜇に線形モデルを仮定 – 𝜇 𝑛 = 𝛼 + 𝛽 𝑋[𝑛] • つまり,こういう確率分布となる – 𝑌[𝑛]~𝑁 𝛼 + 𝛽𝑋[𝑛] , 𝜎
  130. 130. 平均が𝛼 + 𝛽𝑋[𝑛]の正規分布 平均値がXの値によって変わる, 条件付き正規分布 すべてのXの値において,分散 が等しい正規分布を仮定 →均一分散の仮定 青い破線は95%予測区間
  131. 131. 回帰分析の場合 • パラメータは3つ – 𝛼, 𝛽, 𝜎 • 切片,回帰係数,残差SD • 確率モデル – 𝑌[𝑛]~ 𝑁 𝜇[𝑛], 𝜎 – 𝜇 𝑛 = 𝛼 + 𝛽 𝑋[𝑛]

×