医療職からデータサイエンティストへ医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。R複数のモデル候補があった場合、AIC(赤池情報量基準)を使ってモデル選択をすることがあります。このAICをなんとなく使ってしまっている人、そのモデル本当に目的としたモデルですか?今回は、AICについてその直感的な理解とAICの意味を追っていきます。Rでの実行法については、記事下にまとめてあります。今回のRソースコードAICの直感的理解そもそもAICとは、値が小さいモデルが良いモデルとされて、stepwiseなどでもモデルを選択する際に利用される指標です。ある目的変数yに対する重回帰モデルを、説明変数候補を変えて複数作ったとします。どのモデルが一番目的変数yに対するモデルとして適切なのでしょうか?といった場合に用いられます。AICは式で書くととなります。場合にxとなるもっともらしさ、pはパラメーターの数を表しています。尤度や対数尤度についてはこちらをご覧ください。部分は小さくなります。そこにパラメーターの数を足すことで、パラメーターを増やしすぎてもAICが小さくならないように調整しているというイメージです。一般的には、機械学習でいう所の罰則項のように感じますが、実はこのAIC、全く違う理論から導出されています。AICの意味とは?さて、具体的な導出方法は後回しにして、とりあえずAICとはどんな意味を持つのかを探っていきましょう。先ほどAICが小さいモデルは適切であると書きました。ここで一つの疑問が生まれます。そもそも何をもって適切と判断しているのでしょうか?そこを探ることでAICの正体に迫ることができそうです。今回の内容はこちらを参考にしています。岩波書店Amazon少し脱線しますひとつ例をあげてみます。表と裏の出る確率がちょうど0.5であるコインがあります。あなたはこのコインの表と裏の出る確率を知りません。そこで、コインを50回投げて表の出た数からその確率を推定することにしたので、実際にやってみると表が40回でました。ここから確率を40/50=0.8として、表が40回出るもっともらしさ、つまり対数尤度を求めてみましょう。コインの表がでる回数は二項分布に従うので、二項分布の式から対数尤度は以下のように導出します。表のでた回数を表します。して対数尤度を求めるととなります。表の出る確率が0.8のコインを50回投げて表が40回出るもっともらしさは-1.96ということです。するのがもっともらしいということになります。得られたサンプルの期待値となるので、当然と言えば当然ですね。するモデルがもっともらしくなりましたが、実際は25回前後ぐらい表が出るのが普通です。対数尤度を計算するということを100回ぐらい繰り返してみます。モデルがどれぐらいもっともらしいか分かりそうです。この試行を繰り返してみると図のヒストグラムのような結果になり、対数尤度の平均値は-14となりました。モデルはサンプルされたデータに対する対数尤度は大きいですが、新たな試行に対してはそんなにもっともらしくないため、対数尤度を過剰に見積もっていることが分かります。使って対数尤度を求める作業を100回繰り返す。100回の平均対数尤度を求める。1~4を20回ほど繰り返す。いうことをしてみましょう。青色がサンプルから求めた対数尤度(sample_lik)、赤色が新たな100回の試行から算出した平均対数尤度(mean_lik)です。バラツキはありますが、どの試行においても青色の対数尤度が赤色よりも大きくなっているようです。(軸ラベルのスペルを間違えているのはご愛嬌、、)このサンプルの対数尤度から平均対数尤度を引いてみると、その平均は約1になるため、サンプルの対数尤度は平均的に対数尤度1だけ大きく見積もっていることが分かります。二回使うことになり、バイアスがかかるために起こります。サンプルから求めた分散(標本分散)が母分散の推定値よりも小さくなることに似ています。このことから、サンプルから求められた対数尤度から1を引いた値が、新たなサンプルに対しての対数尤度の推定値としては良さげですね。見つめるAICさて、ここであらためてAICの式をみてみましょう。パラメーター数pを引いたものに、-2をかけています。ある時の変数xのもっともらしさ、二項分布の例ではサンプルから求めた対数尤度になります。パラメーター数は1です。AICの式では、サンプルに対する対数尤度からパラメーター数を引くことで、新たなサンプルに対しての対数尤度の推定値を求めていたのです。得られたデータに対してもっとも当てはまりの良いモデルを選択する基準ではなく、そのモデルを使って次のデータを当てはめた時に、平均的に当てはまりが良さそうなモデル、予測能力を最大化するためのモデルを選ぶ基準であると言えそうです。サンプルにもっともよく当てはまるモデルを選ぶ基準がAICだと思っていると、それは違うよということですね。このAICがなぜこんな形になるのか、数学的導出について興味のある方は、こちらが分かりやすくまとまっているかと思います。(pdf注意)https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/56989/1/yamaguchi.pdfhttps://www.jstage.jst.go.jp/article/bjsiam/10/3/10_KJ00005768707/_pdfまとめAICでのモデル選択が適切であるかどうかは議論がありますが、データの当てはまりの良さではなく、次にデーターを得た時に平均的に当てはまりが良いモデルを選択する基準であることは念頭に置いておきましょう。因果推論などの変数選択に使う場合は、注意が必要ですね。※本記事は筆者が個人的に学んだことをまとめた記事なります。数学の記法や詳細な理論、筆者の勘違い等で誤りがあった際はご指摘頂けると幸いです。今回はこちらの内容を参考にしました。09:34Tweet関連記事2019-07-13k-meansとk-means++を視覚的に理解する~Pythonにてスクラッチから~k-means(k平均法)は教師なし学習の中でもとても有名なアルゴリ...2019-06-29初歩からの機械学習:ロジスティック回帰~PythonとRでスクラッチから~前回は機械学習において最も基本的なアルゴリズムである最急降...2019-03-21じっくり学ぶ時系列解析~ARIMAの予測と季節調整SARIMA編~前回は時系列解析の流れ、そしてARIMAモデルをデータから同定す...2019-03-16じっくり学ぶ時系列解析~基礎編~前回は時系列解析の考え方や基本用語についてまとめました。学んだこと、日々の所感をまとめていきます。※本ブログは筆者が個人的に学んだこと感じたことをまとめたブログになります。所属する組織の意見・見解とは無関係です。medi_data0826引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。