「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>データ分析]] --[[データ解析]] --[[統計解析]] --ベイズ統計 *目次 [#b42b4c5c] #contents *概要 [#k8287623] -標本を必ずしも必要としない、母数が確率的に動くとみなす。 -手元のデータが不十分であることを前提に新たに情報が得られるたびに考え方を更新する。 -ベイズの定理というものを中心に主観的に[[条件付き確率>#v372de91]]を考えるという特徴がある。 **ベイズ主義と頻度主義 [#pec5c9a9] ベイズ主義(ベイズ統計)と~ 頻度主義(一般的に扱われる統計) ||ベイズ主義|頻度主義|h |母数|確率定数|変数| |データ|変数|確率定数| **主観確率と客観確率 [#l6f0403f] 主観確率を扱う統計学 -得られたデータから確率を更新していく(ベイズ更新) -主観確率の数値に根拠データを要求しない。 **同時確率と条件付き確率 [#v372de91] ***[[同時確率>DS:数学的基礎 - 確率・統計#rf3abf38]] [#ab0f107a] -とある前提条件と、とある事象が同時に起こる確率 -同時確率P(事象∩前提条件) -P(A, B) = P(A∩B) ***[[条件付き確率>DS:数学的基礎 - 確率・統計#s7b6e130]] [#r5c6a728] -とある前提条件があったとき、とある事象が起こる確率 -条件付き確率P(事象|前提条件) #ref(1.jpg,left,nowrap,1,60%) ***同時確率と条件付き確率の関連 [#y5a4214d] -独立の場合 --同時確率 ---P(A∩B) = P(A) * P(B) --条件付き確率 ---P(B∣A) = P(B) ---P(A∣B) = P(A) -非独立の場合 --同時確率 ---P(A∩B) = P(A) * P(B∣A) ---P(A∩B) = P(B) * P(A∣B) --条件付き確率 ---P(B∣A) = P(A∩B) / P(A) ---P(A∣B) = P(A∩B) / P(B) ***逆問題=機械学習的 [#fe588334] -非独立の場合、条件付き確率の乗法定理によって >「事象X, 前提条件Yの条件付き確率から、~ 前提条件X, 事象Yの条件付き確率(原因の確率)」~ >(≒ 時間逆行の条件付き確率)を求めることができる >(≒ 時間逆行の条件付き確率)を求めることができる~ (時間順行と逆行 ≒ 順問題と逆問題 ≒ 機械学習的)。 -観測したP(B∣A)、P(A) 、P(B)を使用してP(A∣B)を推定できる。 --P(A∣B) = P(A∩B) / P(B) --P(A∣B) = (P(A) * P(B∣A)) / P(B) ***例:ある町の子供が飴玉で笑顔になる確率。 [#u2e6c132] -問題 --ある街の子どもたちは ---毎日1/4の確率で飴玉をもらうことができ、 ---飴玉をもらうと1/2の確率で笑顔になる。 --その街の笑顔な子どもが飴玉をもらっている確率は?~ (ただし,この街の子どもたちが笑顔でいる確率は1/3) -活用 --整理 ---P(A) = P(飴玉) = 1/4 ---P(B) = P(笑顔) = 1/3 ---P(B∣A) = P(笑顔|飴玉) = 1/2 ---P(A∣B) = P(飴玉|笑顔) = ? --回答~ P(飴玉|笑顔) = 笑顔な子どもが飴玉をもらっている確率 ---P(A∣B) = (P(A) * P(B∣A)) / P(B) ---P(A∣B) = ( (1/4)(1/2) ) / (1/3) = (1/8)/(1/3)=3/8 **ベイズの定理 [#za029df0] ***公式 [#l2e2b717] 「観測したP(B∣A)、P(A) 、P(B)を使用してP(A∣B)を推定する。」の Aを仮説H、BをデータDと置き換えた、 「観測したP(D∣H)、P(H) 、P(D)を使用してP(H∣D)を推定する。」の -P(H):事前確率:~ 事象Hの事前の発生確率。 -P(D∣H):尤度:~ 事象Hが観測された条件下での事象Dの発生確率。 -P(D):周辺尤度:~ 事象Dの確率。これは、すべてのHiについてP(Hi) * P(D∣Hi)を加算したもの。 -P(H∣D):事後確率:~ 事象Dが観測された条件下での事象Hの発生確率。 公式としては、 - P(H∣D) = (P(H) * P(D∣H)) / P(D) ※ &color(red){分子は左側が先に出てきて、次はひっくり返す。分母は右側}; ***展開公式 [#gae9075a] -P(D):周辺尤度を計算すると、 P(D)=∑P(D∣Hi)×P(Hi) - P(H∣D) = (P(H) * P(D∣H)) / P(D) - P(H∣D) = (P(H) * P(D∣H)) / ∑i P(Hi) * P(D∣Hi) ※ &color(red){展開公式の∑(総和)の各項目は分子の式と同じだが∑iのHiは(左側の)全ケースを表す。}; ***ベイズ更新 [#s0c30773] -まず、事象 H について、事前確率 P(H) を与える。これが初期の事前確率となる。 -観測されたデータ D をもとに、値を計算 --尤度 P(D∣H) :事象 H が与えられた条件下でのデータ D の発生確率。 --周辺尤度 P(D) :すべての事象 Hi について、尤度 P(D∣Hi) を事前確率 P(Hi) と掛け合わせた値を加算。 -ベイズの定理を用いて、各事象 H の事後確率 P(H∣D) を計算。 -新しい観測データが得られるたび、若しくは、新たな事象を追加する際、~ (多変数の場合のベイズの定理というものが有るらしいので、それを使って計算する)~ 事前確率を計算した事後確率で更新して、新たな事後確率を計算する。 *詳細 [#x252b1f8] **例 [#x38ac092] ***例:陽性時罹患率 [#t1a847d6] -陽性で実際に罹患者となる確率 --● p(C1):罹患者a% ---● p(P|C1):a * b% ---p(N|C1):a * (100-b)% --● p(C2):健康な人100-a% ---● p(P|C2):x=100-a% * y% ---p(N|C2):x=100-a% * (100-y)% -検査薬陽性で病気Xとなる確率 --病気Xには、10万人に20人の割合で罹患する。 --罹患者に検査薬Yを投与すると、80%の確率で陽性 --健康な人に検査薬Yを投与すると、95%の確率で陰性 ||合計|陽性(Y1)|陰性(Y2)|h |罹患者(X1)|20/100,000 = 0.0002|0.0002*0.8|0.0002*0.2| |健康な人(X2)|1 - 20/10,000 = 0.9998|0.9998*0.05|0.9998*0.95| --検査薬陽性で実際に病気Xの罹患者となる確率 ---P(X1|Y1)={P(Y1|X1)・P(X1)}/{P(Y1|X1) * P(X1) + P(Y1|X2) * P(X2)} ---P(罹患|陽性) = P(陽性|罹患) * P(罹患) / P(陽性) --- = 病気に罹患している確率 * (実際に罹患している人が検査で陽性となる確率 / 陽性になる確率) = (0.0002*0.8) / ((0.0002*0.8) + (0.9998*0.05)) = 0.00319042871385842472582253240279 ≒ 0.0032 ≒ 0.32% ***例:学校ABと男女 [#fa3bea18] -学校Aの生徒X人・男女比a:b、学校Bの生徒Y人・男女比c:dで、~ 入力データについて女子の時、学校A/Bに属する確率、的な問題。 --P(H∣D) = (P(H) * P(D∣H)) / ∑i P(Hi) * P(D∣Hi) ---この場合の全ケースは学校になる。Hi = C_sa, C_sb ---P(C_sa∣W) = (P(C_sa) * P(W∣C_sa) ) / ( (P(C_sa) * P(W∣C_sa) ) + (P(C_sb) * P(W∣C_sb) ) ) --p(C_sa):学校Aの生徒 = (X/X+Y) ---p(M|C_sa):学校Aの生徒場合で、男子生徒 = (a/(a+b)) ---p(W|C_sa):学校Aの生徒場合で、女子生徒 = (b/(a+b)) --p(C_sb):学校Bの生徒 = (Y/X+Y) ---p(M|C_sb):学校Bの男子生徒 = (c/(c+d)) ---p(W|C_sb):学校Bの女子生徒 = (d/(c+d) -学校Aの生徒1000人・男女比7:3、学校Bの生徒250人・男女比2:8で、~ ある入力データxiについて性別が女子であった時、学校Aに属する確率を求めよ。 --p(C_sa):学校Aの生徒(1000/1000+250)=100/125=4/5 ---p(M|C_sa):学校Aの生徒場合で、男子生徒(7/10) ---p(W|C_sa):学校Aの生徒場合で、女子生徒(3/10) --p(C_sb):学校Bの生徒(250/1250)=1/5 ---p(M|C_sb):学校Bの生徒場合で、男子生徒(1/5) ---p(W|C_sb):学校Bの生徒場合で、女子生徒(4/5) --P(H∣D) = (P(H) * P(D∣H)) / ∑i P(Hi) * P(D∣Hi) ---P(C_sa∣W) = (P(C_sa) * P(W∣C_sa) ) / ( (P(C_sa) * P(W∣C_sa) ) + (P(C_sb) * P(W∣C_sb) ) ) ---P(C_sa∣W) = ( (4/5) * (3/10) ) / ( (4/5) * (3/10) ) + ( (1/5) * (4/5) ) ) ---P(C_sa∣W) = (12/50) / ( (12/50) + (4/25) ) = (12/50) / ( (12/50) + (8/50) ) = 12/20 = 6/10 = 0.6 ***例:工場ABCと不良品の確率 [#cf949ea5] -工場ABCの生産量と各工場の不良品の確率から、不良品の場合、どの工場で生産された確率が最も高いか? --P(H∣D) = (P(H) * P(D∣H)) / ∑i P(Hi) * P(D∣Hi) ---この場合の全ケースは工場になる。Hi = C_fa, C_fb, C_fc ---P(C_fa∣F) = (P(C_fa) * P(F∣C_fa) ) / ( (P(C_fa) * P(F∣C_fa) ) + (P(C_fb) * P(F∣C_fb) ) + (P(C_fc) * P(F∣C_fc) ) ) ---P(C_fb∣F) = (P(C_fb) * P(F∣C_fb) ) / ( (P(C_fa) * P(F∣C_fa) ) + (P(C_fb) * P(F∣C_fb) ) + (P(C_fc) * P(F∣C_fc) ) ) ---P(C_fc∣F) = (P(C_fc) * P(F∣C_fc) ) / ( (P(C_fa) * P(F∣C_fa) ) + (P(C_fb) * P(F∣C_fb) ) + (P(C_fc) * P(F∣C_fc) ) ) --工場の確率(製造比率) ---A : 1/3 ---B : 1/9 ---C : 5/9 --各工場の不良品の確率 ---AF : 1/8 ---BF : 1/2 ---CF : 3/8 -不良品が工場Aの確率、Bの確率、Cの確率~ 分母は同じなので分子が最大のものが最大になる。 --ちなみに分母は、 = (1/3 * 1/8) + (1/9 * 1/2) + (5/9 * 3/8) = (1/24) + (1/18) + (5/24) = (3+4+15)/72 = 22/72 --分子は ---不良品が工場A: ((1/3)*(1/8))=1/24 ---不良品が工場B: ((1/9)*(1/2))=1/18 ---不良品が工場C: ((5/9)*(3/8))=15/72=5/24 ***例:迷惑メール [#ked17cc2] ([[ベイジアンフィルタ>#x0ff52d4]]) -迷惑メールのXが原因で、URL付きのYが結果 --事前確率:迷惑メールは全体の30%(主観による設定) --迷惑メールの中でURL付きである確率は60%(観測による結果) --正常メールの中でURL付きである確率は10%(観測による結果) ||合計|URL有り(Y1)|URL無し(Y2)|h |迷惑メール(X1)|0.3|0.3*0.6|0.3*0.4| |正常なメール(X2)|1 - 0.3 = 0.7|0.7*0.1|0.7*0.9| -URL付きで迷惑メールである事後確率:P(H∣D)~ --P(H∣D) = (P(H) * P(D∣H)) / ∑i P(Hi) * P(D∣Hi) --P(H∣D) = (迷惑メールの確率(事前確率) * 迷惑メールの中でURL付きである確率(尤度)) / 全メールの中でURL付きである確率(周辺尤度) --P(H∣D) = (0.3*0.6) / (0.3*0.6) + (0.7*0.1) = 0.18 / 0.18 + 0.07 = 18/25 = 0.72 -新たな事象を追加する際、事前確率を計算した事後確率で更新して計算する。~ (多変数の場合のベイズの定理というものが有るらしいので、それを使って計算する) --タイトルに「出会い」が含まれていた場合の事後確率。 --本文に「出会い」が含まれていた場合の事後確率。 --初めは事前確率は不明でも、新たな事象を追加して事後確率を上げていけば良い。 --タイトル、本文に含まれる語句ごとの出現確率(=特徴)を抽出、 --点数をつけ、スパムと正常なメールを判別するための閾値を導き出す。 **フィルタ、モデル等 [#neb846b6] ***ベイジアンフィルタ [#x0ff52d4] -[[ナイーブベイズ・アルゴリズム>#s0c30773]]を利用した~ 単純ベイズ(ナイーブベイズ)分類器(クラシファイア)を応用し、~ 対象となるデータを解析・学習し分類する為のフィルタの総称。 -学習量が増えるとフィルタの分類精度が上昇するという特徴をもつ。 -個々の判定を間違えた場合、ユーザが正しい内容に判定し直すことで再学習を行う。 ***ベイズモデル [#w036ba0b] [[統計モデル>統計解析#s24982db]]のパラダイムシフトとして~ 記述能力と汎化能力のトレードオフを回避するパラメタθ~ 自体にも統計モデルを想定するような統計モデルの一種 -さまざまな情報を分布の形で表現する統計モデル -データを与えたもとでのパラメタの確率分布を推定する -単純なモデルでは現実にそぐわない。~ 多くのパラメタが必要な非線形モデルにおいて、~ 様々な潜在変数を統一的に解析できる枠組。 --顕在変数と潜在変数~ 潜在変数(観測できないデータ)を観測モデルにプラグインして~ 潜在変数も説明しながらデータが観測されるメカニズムを表現できる。~ (潜在変数を無視した解析は本質的な理解とは遠い解析になるリスクを有する) ---顕在変数:観測データとして取得できる。 ---潜在変数:観測データとして取得できない。 --構造~ 以下のような統計モデルを有機的に結合~ ([[軸(t)>マーケティング#y15e06e2]]毎のパラメタが出てくる) ---パラメタaの不確実性を表す統計モデル ---パラメタθtの不確実性を表す統計モデル ---パラメタytの不確実性を表す統計モデル --枠組(モデル統合)~ 理論だけではなくドメイン知識も利用できる。 ---観測モデル ---階層モデル ---事前分布 ---潜在変数 1,2,...w -マルコフ連鎖モンテカルロ法(MCMC) --ベイズ階層モデルを推定する枠組み --[[ベイズの定理>#za029df0]]を使ったデータ解析技術が飛躍的に進歩 --R、Pythonで比較的簡単に実装可能 --二つのステップ ---マルコフ連鎖シミュレーションを通じたサンプリング ---モンテカルロ積分による期待値の計算 -プロセス --複数のモデルを立てる。 --全てのモデルを推定・比較する。 --最も妥当と考えられる構造を特定する。 --情報の変換と活用。 --上記を繰り返す。 ***ベイジアンネットワーク(BN) [#w7d99984] -特徴 --非線形で分布の密度関数を特定できない場合、 --複数の離散的な変数間の依存関係を考慮し、 --幅広い範囲の確率分布を表現出来る。 --理論面 ---現象を複数の確率変数として近似するノンパラメトリック・モデル ---確率的構造モデル(確率的グラフィカル・モデルとも呼ばれる)~ 確率的な因果構造(依存関係)をモデル化(構造化)して表現する。 ---条件付き確率表で不確実な現象を確率モデルで表現~ (背景の条件付き確率で等価なため、決定木に変形も可能) ---「データによる[[機械学習>機械学習(machine learning)]]」と「事前知識の利用」ができる(データ・知識融合) ---確率推論([[ベイズの定理>#za029df0]]に基づいた確率伝播法)が実行可能で ---[[エキスパート・システム>機械学習(machine learning)#n78b56a5]]で利用可能、[[機械学習で学習可能>機械学習(machine learning)#dd0f4610]] --応用面~ 目的:知りたい対象の変数の事後確率分布を計算する。 ---関係のある変数間に条件付き確率表があり、 ---現象は各確率変数の同時分布として表現 ---その変数でも入力・出力にできる。 ---依存関係を絞ることで記述量・計算量を劇的に削減可能。 -確率的構造モデル --確率推論のモデル ---複雑な因果関係の推論を有向非巡回グラフ構造により表す ---個々の変数の関係を条件つき確率で表す --ネットワーク~ 重み付けグラフのこと。 ---ノード~ ・離散的な確率変数~ ・観測ノード、未観測ノード、隠れノード ---有向リンク~ ・定性的依存性:グラフ構造~ ・定量的依存性:条件付き確率(表 / パラメトリック・モデル) ---条件付独立~ 変数間の関係(相互依存関係)を表す。 -条件付き確率表 --[[条件付き確率>#v372de91]]の表 --条件付き確率表の作成 ---完全データの場合~ クロス集計表を正規化し条件付き確率表に変換 ---不完全データの場合~ ・事前確率分布を考慮し補完~ ・初期モデルを使って確率推論を行い~ EMアルゴリズムにより欠損部を推定~ ・連続分布による近似で欠損データを補完 -学習と推論~ --学習 ---確率変数の選択~ 情報量の高い重要な変数の抽出 ---条件付き確率の学習~ ・離散確率変数:条件付き確率表を学習により作成(頻度分布から確率化)~ ・連続確率変数:パラメトリック・モデルのパタメタ学習(最小二乗法、最尤法) or 離散化~ ---グラフ構造の学習~ BNで使う条件付き確率表では(離散確率変数の場合)~ ・クロス集計表ではカイ二乗検定により変数間の独立・従属性を判定~ ・条件付き独立性に基づく構造学習の判定は計算コストが大きいので~ モデルの情報量基準を局所的に繰り返し変数間の独立・従属性を判定~ ・情報量基準:AIC、BIC/MDL、C4.5~ (データの適合度とモデルの自由度による評価基準~ ・モデルを選択(ベイズ比検定~ (ノードの探索戦略や制約条件で計算量を抑える --推論 ---確率伝播法(Belief Propagation~ 上流からのBeliefと下流からのBeliefをベイズの定理で統合 ---ネットワーク構造によっては厳密な確率にならない問題~ Junction Tree アルゴリズム(1本の順方向の構造へ変換)~ Loopy Belief Propagation(近似計算) ***その他、グラフ構造の確率モデル [#p5dfe0f3] -[[HMM(隠れマルコフモデル)>機械学習(machine learning)#mcb6a10f]] -パターン認識に使われる。 --[[ナイーブベイズ>#x0ff52d4]] --ベイジアンクラシファイア **活用例 [#g41ea723] ***診断・コールセンター [#k5fc145a] ([[ベイジアンネットワーク>#w7d99984]]) -医者の診断の効率化 -コールセンター効率化 -ソフトウェアのAIアシスタント ***レコメンド [#i36d30bb] ([[ベイジアンネットワーク>#w7d99984]]) -EC/金融の商品の推薦 -優良顧客の推薦 -対話的ナビゲーション -マッチング・ビジネス -出先でのレコメンド~ (ユーザ適用型カーナビ) ***[[社会現象・データ>人工知能(AI)#q63cc197]] [#rd362857] ([[ベイジアンネットワーク>#w7d99984]]) -需要の予想 -サーベイランス -行動の予測(シミュレート~ 確率的行動モデリング --事故防止 --子供の事故防止(デンバーⅡ行動モデル+事故履歴の相互作用結果 -価値創出のための循環型アプローチ~ サービスシステムの価値構造モデリング -製造系DXをサービス分野で応用~ サービス間の動線を横断的に分析してマーケティング的に利用する。 ※ [[ステークホルダー・マネジメント>PMP:共通#qac125bd]]が重要である模様 ***[[顧客行動理解>マーケティング#y15e06e2]] [#f1a475b2] [[ベイズモデルのマルコフ連鎖モンテカルロ法(MCMC)>#w036ba0b]]を使用して、~ 消費者の行動の結果データで観測されている変数だけでなく、~ その背後に存在する観測できない潜在変数までも含めて因果性を評価する。 -異質性 --★消費者の異質性 --時間的異質性 --店舗の異質性 --製品の異質性 --地域の異質性 --銘柄の異質性 --企業の異質性 -潜在変数 --ブランドロイヤルティ --家庭内の在庫量・消費量 --消費者の経験 --消費者の将来を予知する能力 --消費者の嗜好性、好き嫌い、興味の有無 --潜在変数の評価 ---在庫量弾力性 ---心理的財布の閾値 ---, etc. **推論・経験モデル [#s6513f07] -コンピュータの性能向上による[[機械学習>#ob2d3d6c]]、[[深層学習>#f3978ffd]]の進展 -クラシックな機械学習([[ベイジアンフィルタ>#x0ff52d4]]、[[ベイズモデル>#w036ba0b]]) -2つの段階で推論モデルを構築する。 --1つが学習する段階~ 推論モデルを試行錯誤により「逆問題」で構築していく。 --もう1つが“推論”する段階~ 学習段階で作られた推論モデルから「順問題」で解いていく。 >※ [[データ分析 > 順問題と逆問題>データ分析#jb893ab1]] *参考 [#x57eff0b] -あの病気にかかる確率は? ベイズの定理 | システム開発部Blog~ https://enjoyworks.jp/tech-blog/4013 -ベイズ統計とは?普通の統計と何が違う?徹底解説!|Udemy メディア~ https://udemy.benesse.co.jp/data-science/data-analysis/bayesian-statistics.html -統計解析とは?統計解析と機械学習の違い、~ 統計解析の使いどころ|NTTデータ数理システム~ https://www.msiism.jp/article/what-is-statistics-analysis.html -迷惑メールの判別~ http://www.stat.go.jp/naruhodo/15_episode/toukeigaku/meiwaku.html **YouTube [#g35009b7] -ベイズ統計 - AIcia Solid Project~ https://www.youtube.com/playlist?list=PLhDAH9aTfnxIU4Hd1G1UdIVzHpgKfyEnw -ベイズ統計学 - データサイエンス研究所~ https://www.youtube.com/playlist?list=PL7BUpEjz_maTJeE_eebghTVgJQSlEargd **Wikipedia [#t0c0bf17] -ベイズ統計学~ https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%A4%E3%82%BA%E7%B5%B1%E8%A8%88%E5%AD%A6 ***... [#y0638c12] -ベイズの定理~ https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%A4%E3%82%BA%E3%81%AE%E5%AE%9A%E7%90%86 -ベイズ推定~ https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%A4%E3%82%BA%E6%8E%A8%E5%AE%9A ***アルゴリズム・モデル [#pcb4c6ae] -単純ベイズ分類器~ https://ja.wikipedia.org/wiki/%E5%8D%98%E7%B4%94%E3%83%99%E3%82%A4%E3%82%BA%E5%88%86%E9%A1%9E%E5%99%A8 -ベイジアンフィルタ~ https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%A4%E3%82%B8%E3%82%A2%E3%83%B3%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF -マルコフ連鎖モンテカルロ法~ https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%82%B3%E3%83%95%E9%80%A3%E9%8E%96%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83%AD%E6%B3%95 -ベイジアンネットワーク~ https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%A4%E3%82%B8%E3%82%A2%E3%83%B3%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF