Upload
nishio
View
456
Download
2
Tags:
Embed Size (px)
DESCRIPTION
勉強メモ
Citation preview
調査観察データの統計科学 勉強記1
西尾泰和
今回の目的
• 2章の「入試選抜による選択バイアス」問題を、
実際に類似の問題に出会った時に解くことができるレベルまで理解する
• …ためにまずはこの問題を実際に解く
問題の定義
• 得たいもの:「入試の点数と、入学後の点数の関係を知りたい!」
入試の点数𝑦1
入学後の試験の点数𝑦2
こうなってほしい
真のモデルは𝑁 𝑦1, 𝑦2 50, 50 , ( 100, 70 , 70, 100 ))
データがない
• 入試で落ちた人の「入学後の点数」は不明
不明
合格者のデータから推定…
全然ダメだ!
モデルは二次元ガウス分布と仮定して合格者のデータからパラメータを最尤推定
何ができる?
• 不合格者のデータも使おう!
不合格者のy2の値は実際には存在しないが、 あえて「実際には存在しているけどたまたま欠測しただけ」と考える
反実仮想アプローチ
尤度の定義
「mが𝑦𝑜𝑏𝑠だけで決まる」条件下での尤度
この尤度を最大にするθが知りたい!
→argmax𝜃 𝑝(𝑦𝑜𝑏𝑠|𝜃) を計算すれば良い
Lを最小化する2つのアプローチ
• Lをパラメータθの各変数について偏微分して0と起き、連立方程式を解いたら極値を取るθがわかるよね、という解析的アプローチ (人間が頑張って数式を計算する)
• LをそのまんまPythonで実装して、 scipy.optimizeで最小値を求めるアプローチ (CPUが頑張って数値計算する)
2次元ガウス分布の負の対数尤度
毎回データを舐めるなんて遅そう?でもとりあえずやってみる
式をそのまんまコードにしてる:
1次元ガウス分布の負の対数尤度
観測データに対する負の対数尤度
足すだけ
Scipyに投げる
適当な初期値(平均0、分散1)から探索スタート
できた!
before
after
正解とのズレ
所要時間
• N=300: 0.67sec
• N=900: 1.68sec
• N=2700: 4.83sec
• N=8100: 15.24sec
意外と速くていろんな応用に使えそう。
速度が問題になるケースでは両群について十分統計量∑𝑦1, ∑𝑦2, ∑𝑦1
2, ∑𝑦1𝑦2, ∑𝑦22を計算することで尤
度関数からループを追い出せるはず。
指摘:今回パラメータが5個で、それが変わった時の速度の変化を調べてない 指摘:微分を計算してoptimizeに与えることで高速化って手も
まとめ
• 対数尤度関数を適当に実装してscipyに突っ込んだけど意外と速かった
• 意外と簡単に応用できることがわかったので実際に解いてみるアプローチはよさげ
• 次回はp.72「小学校での英語教育の有無で
国語の成績に有意差があるけど実は家庭環境の差が原因」問題を解く?