ブログ

ベイズと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. ブログ

    夏休みのまとめ

    こんにちは!エクスチュアインターン生の柳沼です。夏休みも終わりに近づい…

  2. Python

    市区町村一覧・自治体の一覧を取得する

    最初に顧客マスタには郵便番号や市区町村をデータを持っていることが多い…

  3. ブログ

    インドネシアのデジタルマーケティング

    こんにちは!インターン生の山本です!前回は東南アジアの…

  4. ブログ

    「Power BI」を使ってみよう!

    こんにちは、インターン生の山本です!前回私が「Power BI」の概…

  5. ブログ

    東南アジアのデジタルマーケティング

    こんにちは!インターン生の山本です!今回は、現在私が調…

  6. Tableau

    DirectionAPI+Tableauでドライブ時間の可視化(後編)

    だいぶ間が空いてしまいましたが、DirectionAPI+Tablea…

コメント

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

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

CAPTCHA


最近の記事

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

    【手順解説】MacでRedshiftに接続できない時の原因と対処法【Tablea…
  2. Databricks

    Databricks: Delta Lakeを使ってみる
  3. IT用語集

    ウォームスタンバイ、コールドスタンバイ、ホットスタンバイって何?
  4. Mouseflow

    mouseflow の フリクションイベント って何?
  5. ブログ

    大学3年生、マーケティングオートメーションを学ぶ
PAGE TOP