スキップしてメイン コンテンツに移動

Bayes' theorem

Introduction
sorry, this page is Japanese only. 
今回はベイズの定理について書こうと思います。
ベイズの定理とは、イギリスのトーマス・ベイズによって発見された、条件付き確率に関する定理です。現在のベイズ推定で用いられる重要な定理です。どのような定理かを解説していこうと思います。

ベイズの定理
ベイズの定理とは

  • 確率P(B|A):事象Aが起こった後での事象Bの確率(事後確率)
  • 確率P(B):事象Aが起こる前の事象Bの確率(事前確率)
とするとき以下が成り立つことを示しています。

$$P(B|A) = \frac{P(A|B) P(B)}{P(A)}$$

例
例えば、次のように事象A、事象Bwo定義します。

  • 事象A:あるYoutuberが動画を投稿したとき、再生回数が100万回を超える
  • 事象B:あるYoutuberがお金を50万円以上使う動画を投稿する


この時確率P(A|B)、つまり50万円以上を使った動画が再生回数100万回を超える確率は、youtube内の50万円以上使っている動画を根こそぎ集め、その再生回数を得ることによって推定できそうです。では確率P(A|B)がわかった時、確率P(B|A)もわかる。これがベイズの定理の強みです。(当然確率P(A)とP(B)がわかっている必要はあります。)

確率P(B|A)とはあるYoutuberの動画が再生回数100万回を超えたとき、その同がで50万円以上使っている確率となります。これがわかれば、100万回動画が再生される原因は本当に50万円以上お金を使うことなのかがわかります。

確率P(A|B)が低い時を考えてみましょう。
つまり、50万円以上使った動画は再生回数100万回を超える確率は高い。しかし、100万回再生回数を突破したとき、その動画が50万円以上使っている可能性は低い。この状況はベイズの定理の式を考えいると理解しやすいです。

ベイズの定理の式を見てみると、P(B|A)は低く、P(A|B)が高いということは、確率P(A)が著しく高い。もしくは、P(B)が著しく低い。この二つがあげられます。

つまり、あるYouruberが100万回再生を突破する確率がかなり、高い。もしくは、あるYoutuberが50万円以上使う動画を投稿すr確率がかなり、低い。このどちらかが考えられます。P(A)が高いとき、そのYouruberが単に大人気なのであって、動画の再生回数が100万回を超える原因が50万円以上お金を使ったことにあるとは限りません。また、P(B)が低いとき、つまり、50万円以上お金を使った動画が少ないときは、たまたま、100万円を超えただけで、本当の原因が50万円以上使ったことにあるとは限りません。

このようにベイズの定理では、結果から原因を推定する力があります。

式の導出
最後にベイズの定理の式を導出しようと思います。まず条件付き確率の式を確認します。ある事象Bが起こった時、事象Aが起こっている確率(条件付き確率)は
$$P(A|B) = \frac{P(A,B)}{P(B)}$$
ただし、P(A,B)はAとBの同時確率を表します。
この式をベイズの定理の式の右辺に代入します。
$$\frac{P(A|B)P(B)}{P(A)} = \frac{\frac{(P(A,B)}{P(B)} P(B)}{P(A)} = P(B|A)$$

References
https://ja.wikipedia.org/wiki/ベイズの定理





コメント

このブログの人気の投稿

最尤推定

Introduction English ver 今日は最尤推定について加工と思います。これは統計的推定でよく使われる手法です。最尤推定の例も書こうと思います。初めに尤度の説明をし、そのあとで最尤推定の説明をします。 概要 尤度 最尤推定 最尤推定の問題点 尤度 前提条件から得られる観察データを考えます。この時、えられた観測データに対して前提条件が尤もらしい条件であるかの値を尤度といいます。 なにをゆっているのかわからない人がほとんどだと思います。。。 尤度の例を扱っていきます。 コインを投げることを考えます。このコインは確率Pで表、確率1-Pで裏を出すコインだとします。 例えば、100回コインを投げたとき、全て表だったとします。この時このコインが表が出る確率はかなり1に近いことが予想されます。 ではもし、表が出る確率PがP=0.5だとします。この時、表が100回連続で出る確率は$0.5^{100} = 7.88860e-31$になります。あり得ない確率ですね。これがP=0.5としたときのもっともらしさです。つまり、あまり現実的ではないということです。 もしP=0.99とするとき、100回とも表が出る確率は$0.99^{100} = 0.3666....$となります。つまり、P=0.99としたときの尤度は0.36くらいということです。よって、P=0.5よりかは現実見があることになります。まだまだ低い数字ではありますが。 観測データである、100回表が出るという事象を固定したとき、尤度はPを変数としたP(100回表|P)を尤度関数と呼びます。この関数の値を尤度と呼びます。 尤度が高いほうが尤もらしい値、つまり理にかなっているなと感じることができる値ということになります。 例えば、先ほどの例でゆうと、 P=0.5としたときの尤度は7.88860e-31でした。P=0.99としたときの尤度は0.3666でした。よってP=0.5より、P=0.99のほうが尤もらしい自然な値ということになります。 最尤推定 最尤推定とは得られた観測データからデータが依存している分布のパラメーターを推測するための手法です。 最尤推定では尤度を最大化して、最も尤もらしいパラメーターを求めます。 確率密度関数...

heap structure

Introduction 日本語 ver Today, I will write about heap structure. The heap structure is one of the data structure. My reason of studying heap structure is that I joined seminar of Ritsumeikan Univ. I used this  slide  in seminar of Ritsumeikan Univ. Overview data structure binary tree heap Implementation heap sort Data structure I will explain about data structure before explaining about heap. Data structure is how to keep data. Data structure is selected on the basis of operation which you want to.  Heap belong to data structure called priority queue. priority queue have purpose which  add data pick up minimum data (and remove)  Binary Tree Let, E and V are sets. The element $e \in E$ is called edge. The element $v \in V$ is called node. g:E->V×V is map to V × V from E. (E,V,g) is called graph. For example, The arrows are edge. The circles are node. This is expressed map. It is possible to go to node 3 from 1....

Pythonでグラフ理論

Introduction English ver 今日はnetworkxというpythonのモジュールについて書きます。 グラフ理論の定義などの情報は ここ の記事に書いてあります。 この記事ではグラフ理論の中身については扱いませんが、Pythonでのnetworkxというモジュールについてメモをしておきます。 Networkx Python3にはnetworkxはすでに入っています。 Python2の方はpipを使ってinstallしてください。コマンドラインで以下のコマンドを実行します。 pip install networkx ではNetworkxを使ってグラフを作っていきます。 初めにimportをしてインスタンスを作っていきます。 import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() 次にグラフにノード(頂点)とエッジ(枝)を入れていきます。 G.add_node(1) # add Multiple nodes G.add_nodes_from([2,3,4]) G.add_edge(1,2) # add Multiple edges G.add_edges_from([(3,4),(1,2),(4,6)]) ではこのGのグラフを描画していきましょう。 以下のコードで描画できます。 nx.draw(G) plt.show() Networkxはたくさんの関数を持っています。 また、随時追記していきたいと思います。 Reference https://qiita.com/kzm4269/items/081ff2fdb8a6b0a6112f http://akiniwa.hatenablog.jp/entry/2013/05/12/012459