はじめよう実験計画

実験を早く終わらせるための技術

回帰モデルの選択手法について|AIC、Partial F-test、LASSO、Ridgeなど

はじめに

実験計画法に基づいて実験をした後、モデル(数式)を構築する方法はたくさんあります。通常の実験計画法の教科書では、要因が例えばx1,x2,x3、目的変数がyだとしたら、

 y= \beta_0+\beta_1x_1+\beta_2x_2+\beta_3x_3

の一次式や

 y= \beta_0+\beta_1x_1+\beta_2x_2+\beta_3x_3+\beta_{12}x_1x_2+\beta_{23}x_2x_3

のように交互作用項を加えた2次式を仮定します。当ブログで説明している決定的スクリーニング計画や、応答曲面計画のような試行回数の多い計画だと、さらにx1^2やx2^2の2乗項を加えたモデル式を仮定して、回帰分析を行います。

モデル選択とは、例えば、そもそもx1はモデルに含めるのが妥当なのか?x2x3の交互作用は含めるのが妥当なのか?という項の選択のことです。

実験計画法でモデル選択ってあったっけ?

実験計画法の枠組みでは、あまりモデル選択の手法について考えることは少ないかもしれません。というのも、実験計画法ではモデルに入れる項ははじめから決まっていて、その項の係数を推定することが重要なので「項を選ぶ」ためのモデル選択について深く考えてこなったからです。

しかしながら、モデルを作る以上、実験計画法においても、モデル選択はやはり重要です。実際、当ブログでも、決定的スクリーニング計画でAICを使うなど、モデル選択に少し触れたこともあります。

また、モデル選択は機械学習では中心的な話題の一つであることから、実験計画法、機械学習、モデル選択の関係を整理できればと思い、本記事を書くに至りました。

 

私の勝手なイメージ

私なりのモデル選択のイメージを図1に示しました。

機械学習でよく話題に上がるLASSO回帰やRidge回帰などは、コスト関数ベースです。通常の最小二乗法の最小二乗誤差に正則化項を追加したコスト関数を最小化するものです。

一方のStepwise法は、項を実際にモデルに追加したり、削除したりする手順であり、コスト関数ベースのモデル選択とは異なります。Stepwiseの指標は、図1の土台に示すようなAICやBICだったり、あるいは決定係数だったりしますが、基本となるのは赤丸に示したPartial F-testだと考えています。

Partial F-testは実験計画法において重要なので、今度どこかで書きたいと思います。

図1 モデル選択のイメージ(個人の感想)

図1の土台に示したのは、モデル選択のための評価基準であり、RMSE, AICなど、そのモデルに対して何らかの値を与える指標です。

以上で説明した手順(Stepwise等)、手法(LASSO等)、指標(AIC等)とまた別次元の概念と考えられるのが、クロスバリデーション(Cross validation)になります。

Cross validationは前述の要素とパラレルな関係にはなく、どのモデルに対しても実行できる検算?的な位置づけでしょうか。

そして、これらの諸概念が「モデル選択」という言葉に一緒くたにされて分かりにくくなってしまっているのではないかと私は考えています。

また、図1の右側には「正しいモデル?」とか「意味のある項?」とか「予測性能?」とか書いていますが、モデル選択には異なる目的があり、目的が違うと最終的に得られるモデルは大体は似ているけれど、同じにはならないということを意味しています。

 

ネットの意見

Stack Exchangeを見ていて、参考になるQ&Aを見つけたので、要点を和訳したいと思います。こちらがその質問↓

統計学の大学院1年生です。以前、モデルの変数を含めるかどうかの判定をするPartial F-testを習いました。最近、モデルの選択基準(AIC, BICなどのことだと思われる)の勉強をしたのですが、Partial F-testとモデルの選択基準は関係があるように思います。しかし、どの教科書にもこの関係性について書かれていません。Partial F-testはモデルの選択基準に含めるべきではないでしょうか?

これに対して、コミュニティの回答がこちら。

Stepwise法など、ある項を含めるか、含めないかの判断は多くの場合、Partial F-testに基づくものであり、その結果出来たモデルの良しあしを、AICなどの評価基準で評価している。個人的には、Partial F-testでなくて、最初からAICなどに基づいて、項の選択をしても良いと思う。

なるほどな~という感じです。実際、RのStepwise法の関数stepでは、デフォルトの選択基準はAICになっていて、Partial F-testはやってない。

ただ、Partia F-testとAICでは意味合いが違う。前者はある項をモデルに含める統計的有意性があるかを判断する手順であり、後者は、単にモデルが全体として誤差とモデルの項数のバランスが良いかを判断する指標である。つまり、モデルの項の取捨選択としてAICを使うのは、意味合いとしては間違っていることになるかな~と思いました。

ちなみに、原文はこちらです。以上。

stats.stackexchange.com