ブログ

ベイズとR


ベイズの定理の初めのほうをまとめておこうと思います。ミーハーなのでついでにプラグインの\(\LaTeX\) の練習も兼ねてます。(読み返すとかえって数式のせいで読みにくくなっている気もするのでとりあえず下にある青字の部分を読んで、困ったら”これならわかる!”を読んでみてください。)
参考は史上最強図解 これならわかる!ベイズ統計学StanとRでベイズ統計モデリング (Wonderful R)
〇楽しいR
Rで何ができるかをそれとなくなぞることができた。すべてのデータの相関係数を一度に出すことができる上に、GUIとCUIの違いのようになれればエクセルの数倍早く操作できるのではないかと思えました(最終物はExcelなので、まあデータの確認とか整理とかの面で)。ただ、慣れればというのが鬼門でこの本を見てもいまいち表題の通り楽しいだけで身についたりはしないので要練習ですね。眺めるのが一番正しい使い方だと思います。あと、Rstudio入れてやったほうがいいと思います。
〇史上最強図解 これならわかる!ベイズ統計学
・内容
集合の基本の式\(P(A|B) = \cfrac{P(B|A)P(A)}{P(B)}\)の説明から始まって,ベイズの展開公式・(突然連続関数にベイズの定理を使ってきてびっくりしますが)確率密度関数に対してのベイズの公式まで導いてくれます。僕のような数学弱者にも優しく同じことを何度も別の例を使って教えてくれる反面、さすがにくどいのではないのかと思うところも多々ありました。しかし、メールフィルターの応用例(すごく単純ですが)等ベイズ統計学すごいなー、と思わせてくれる本でした。
・ベイズの定理
\begin{align}
P(A)=\cfrac{n_{A}}{n_{U}} , P(A|B)=\cfrac{P(A \cap B)}{P(B)}
\end{align}
から考えるとベイズの公式自体はすごく単純なものですが、A<-H(Hは原因や仮定),B<-D(DはHのもとで生まれたデータ)と置き換えてやると、
\begin{align}
P(H|D) = \cfrac{P(D|H)P(H)}{P(D)}
\end{align}
P(D|H): 尤度(ある仮説からそのデータが得られる確率)
P(H):事前確率(ある仮説が正しい確率)
P(H|D):事後確率(データを考量して、ある仮説が正しい確率)
となって、さらに原因が \(H_{1},H_{2},…H_{n}\)と存在するとすると, \(P(D)=P(D \cap H_{1})P(H_{1})+P(D \cap H_{2})P(H_{2})+…+P(D \cap H_{n})P(H_{n}) \) より
\begin{align}
P(H_{i}|D) = \cfrac{P(D|H_{i})P(H_{i})}{P(D \cap H_{1})P(H_{1})+P(D \cap H_{2})P(H_{2})+…+P(D \cap H_{n})P(H_{n})}  (ベイズの展開公式)
\end{align}
 
◎例題として、モンティ・ホール問題を考えます。

  1. 箱が三つあります。
  2. 箱を一つ選んだあと、司会者が一つはずれの箱を消去してくれます。
  3. その後、改めて箱を選びなおすことができます。選びなおしたほうがよいでしょうか?

という問題です。
選んだ箱をA,司会者が空ける箱をB,余りをCと名付けて箱Aが当たりである仮説を\(H_{A}\),司会者がBを開けるという事象を\(D_{B}\)とおいて,
\(P(H_{A}|D_{B}) = \cfrac{P(D_{B}|H_{A})P(H_{A})}{P(D_{B} \cap H_{A})P(H_{B})+P(D_{B} \cap H_{B})P(H_{B})+P(D_{B} \cap H_{C})P(H_{C})}= \cfrac{1}{3}\)
\(P(H_{A})=P(H_{B})=P(H_{C})= \cfrac{1}{3},  P(D_{B}|H_{A})= \cfrac{1}{2} ,  P(D_{B} \cap H_{C} )= 1\)
となって、実は選びなおしたほうがよいという結果が出ます。
ここで、司会者がBを選んだことによってAが当たりである確率が変化したことをベイズ更新 といいます。
事前確率を得られたデータをもとにさらに研ぎ澄ませる感じでしょうか。
また、勝手にすべての箱が同様の当たりの確率であると仮定していますが、このように自然な勘や経験を生かした事前確率を含ませることができるのがベイズの定理の強みであるということです※。
※ただし後述のMCMCでは解析の再現性の低下を避けるために一様分布か薄い正規分布を使う。
 
 
実際には仮説というのは代表値がどんなものであるか、という指標であらわされると考えて\(H_{i} = \theta _{i}\) としてやり、これが連続な値をとると考えてPを確率密度関数に読み替えてあげると
 
\( \pi(\theta_{i}|D)= \cfrac{f(D|\theta_{i})\pi(\theta_{i})}{\pi(D)}\)
という式が出てきます。
 
・MCMC(マルコフ連鎖モンテカルロ法)
モンテカルロ法自体はwikipediaを読んでもらえるとよいのですが、イメージでいうと”円を描いた正方形の紙にマシンガンをぶっ放して(円の中の銃弾)/(打った銃弾の数)で円の面積を推定するという方法です。
ベイズを使って実際にデータを解析するとなると、事前確率\( \pi(\theta_{i})\)や尤度\(f(D|\theta_{i})\)を求めることはできますが、\( \pi(D) \)を求めるのは難しいです。ただ、\( \pi(D) \)は\(\theta\)に依らない正規化定数でとみなせるので、\(f(D|\theta_{i})\pi(\theta_{i})\)から乱数サンプルを多数発生させてその代用とするのがMCMCです。
stanはこれを扱うのに便利なフリーソフトで、心理学関連でよく使われているようです。
もう少し書きたいのですが、思ったよりベイズが長くなったので次回とします。
今試験中かつ風邪をひいている状態なのでなかなか読書が進みませんが読んだ本があったら追加していこうと思います。おそらく1.5週間以内に「まぐれ」の記事を書いて、それから次回の続きを書いていこうと思います。
 
 

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. ブログ

    ③DMPについてーKrux

    こんにちは!インターン生の藤本です。今日は海外DMP2つ目、Krux…

  2. ブログ

    まぐれ

    こんにちは、インターンの安岡です。今回は「まぐれ―投資家はなぜ、運を…

  3. ブログ

    ⑥DMPについてー日本に進出していないDMP

    こんにちは!インターン生の藤本です。今日は「日本に進出していないDM…

  4. ブログ

    「Power BI」を用いたダッシュボードの作成!①

    こんにちは!インターン生の山本です。前回「Power BI」を使って…

  5. ブログ

    サーバーがアクセス情報を取得する仕組み

    前回のブログ、Adobe Analytics 原理①では、どのようにし…

  6. ブログ

    マーケティングオートメーションの根幹:リードについて解説してみた!

    こんにちは!エクスチュアインターンの柳沼です。今回の目次はこちらです。…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


最近の記事

  1. 回帰分析はかく語りき Part3 ロジスティック回帰
  2. GCSへのSnowflake Open Catalogによる…
  3. VPC Service Controlsで「NO_MATCH…
  4. モダンデータスタックなワークフローオーケストレーションツール…
  5. Streamlit in Snowflakeによるダッシュボ…
  1. Adobe Analytics

    Adobe Analytics: RSIDを間違えてしまったデータを正しいRSに…
  2. ヒートマップ

    ユーザビリティの検証で気を付けたいこと、やってはいけないこと③
  3. Enterprise Data Warehouse

    爆速データウェアハウスなApache Druidを試す
  4. Mouseflow

    Mouseflow新機能その2 – JavaScriptエラーを見つ…
  5. ブログ

    マーケティングオートメーションの根幹:リードについて解説してみた!
PAGE TOP