日々のメモ

統計解析や機械学習、ファイナンスについての勉強メモ

Rによる機械学習 最尤推定法その1

よくある例題を使って最尤推定法をやってみます

> training
 [1]  0.02841715  0.34097049  1.37103609  0.52697056  0.88287394  0.20673168
 [7] -0.92268387 -1.41716486 -0.94624667 -0.56053292  0.21504500
> test
 [1]  0.2744391  0.2354888  1.0005627  0.7502364  0.5542613  0.1038660
 [7] -0.7504576 -0.2694111 -0.9737203 -0.5597848  0.2300776

f:id:Kenjiqun:20160622203105p:plain

グラフはtrainingのデータをプロットしています

ある関数f(x)にノイズεが含まれていますことがわかっています
ノイズεは確率変数で何らかの確率分布に従っています

y=f(x)+ε

このデータからf(x)を推定することを考えます
こういった問題は最小二乗法や最尤推定法が用いられます

今回は最尤推定法を用いてf(x)を推定してみようと思います。
最尤推定法は以下のステップからなります

⓪ノイズの確率分布を仮定する。確率分布を定めるパラメータを導入する(平均、分散など)
①関数形を仮定する。関数を定めるパラメータを導入する(例えばg(x)=axのaがパラメータ)
②観測されたデータが出現する確率Pを計算する
③Pが最大になるようなパラメータを決める

最尤推定法は

「観測されたデータが最も出現確率が高いデータのはずだ」

という仮説のもとでパラメータを決定します

これは例えば表が確率q、裏が確率1-qででるコイン(pは未知)を5回投げて
表、表、表、裏、表
と出た時にq=4/5と推定するのが最も合理的だ、というのと同じ考え方です

ちなみにコインの例で最尤推定法を行うと
観測されたデータが出現する確率PはP=(1-q)q^4となってこれを最大化するようなpは

∂P/∂q=0よりq=4/5となります



TeXかなんかで数式を入れたかったのですが、何が一番良いのか模索中なので続きはまた次回