線形モデル選択と正則化(機械学習)
\[Y=\beta_0+\beta_1 X_1+\ldots +\beta_p X_p+\epsilon\]
- 予測の正確性
- 真のモデルが線形ならば、線形モデルのバイアスは小さい。
- サンプルサイズが説明編して比較して大きければ、線形モデルは分散が小さい。
- モデルの解釈
- 関係ない説明変数がモデルに入ると解釈が複雑になる。
- 線形の場合にはそのような変数を特定するのが簡単になる。
- Subset Selection
- Shrinkage
- Dimension Reduction
Subset Reduction
最良の選択
線形のなかで2変数でも、ありうるモデルは\({}_rC_2=p(p-1)/2\)個ある。
すべての変数を考えると\(2^p\)個のモデルがある。
アルゴリズム
- \({\mathcal M}_0~\)をNull Model(predictorの入っていないモデル)とする。
- \(k=1,\ldots,p\)について
- \(k~\)個のpredictorの入った\(~{}_pC_k~\)個のモデルを推定する。
- \(~{}_pC_k~\)個のモデルの中から、\(R^2\)かRSSの意味で最良のモデル\({\mathcal M}_k~\)を選ぶ。
- \({\mathcal M}_0,\ldots~,{\mathcal M}_p~\)から、CV予測誤差、\(C_p\)、AIC、BIC、Adjusted \(R^2\)などを使い最良のモデルを選ぶ。
説明変数の数が同じ中での比較では、自由度修正は必要ないが、説明変数の数が異なるモデルの比較には修正が必要なため、上記の手順になる。
段階選択法
前向き選択
- \({\mathcal M}_0~\)をNull Model(predictorの入っていないモデル)とする。
- \(k=0,\ldots,p-1\)について
- \({\mathcal M}_k\)に入っていないpredictorを考える。
- \(p-k\)個の変数のうち\(R^2\)やRSSの意味で最良のものを加えたモデルを\({\mathcal M}_{k+1}\)とする。
- \({\mathcal M}_0,\ldots~,{\mathcal M}_p~\)から、CV予測誤差、\(C_p\)、AIC、BIC、Adjusted \(R^2\)などを使い最良のモデルを選ぶ。
総当たりならば\(2^p\)個のモデルの比較が必要だが、この手続きにより\(1+p(p+1)/2\)個のモデルの比較で十分になる。
後ろ向き選択
- \({\mathcal M}_p~\)をFull Model(predictorのすべて入ったモデル)とする。
- \(k=p,\ldots,1\)について
- \({\mathcal M}_k\)から1つのpredictorを除いたすべてのモデル考える。
- \(k\)個の変数のうち1つのpredictorを除いたモデルのうち、\(R^2\)やRSSの意味で最良のモデルを\({\mathcal M}_{k-1}\)とする。
- \({\mathcal M}_0,\ldots~,{\mathcal M}_p~\)から、CV予測誤差、\(C_p\)、AIC、BIC、Adjusted \(R^2\)などを使い最良のモデルを選ぶ。
総当たりならば\(2^p\)個のモデルの比較が必要だが、この手続きにより\(1+p(p+1)/2\)個のモデルの比較で十分になる。
混合選択法
forwardのあとにbackward
最適なモデル選択
Training error vs Test error
Test errorの意味で良いモデルを選びたい。
\(C_p\), AIC, BIC, and Adjusted \(R^2\)
MSEとRSSは関係しており、Least Squaresはtraining set RSSを小さくするので、training MSEはtest errorの過小推定になっており使えない。そこで、test errorの一致なり不偏推定量なりになるようにadjustしたもので評価しようという考えに至る。
\(d~\)個のpredictorを含むLeast Squaresに対して
\[C_p=\frac{1}{n}(RSS+2d\hat{\sigma}^2)\]
\(C_p\)はtest MSEの不偏推定量である。
最尤推定量に適用できる基準にAICがある。\(d~\)個のpredictorを含むgaussian Linear MLEに対してAICは
\[AIC=\frac{1}{n}(RSS+2d\hat{\sigma}^2)\]
となり\(C_p\)と一致する。
ベイズ統計の観点からの評価指標としてBICがある。
\[BIC=\frac{1}{n}(RSS+\log(n)d\hat{\sigma}^2)\]
\(R^2\)の自由度の修正という観点からadjusted \(R^2\)も用いられる。
\[\text{Adjusted}~R^2=1-\frac{RSS/(n-d-1)} {TSS/(n-1)}\]
クロスバリデーション
AICやBICなどは計算が簡単だが、そのための仮定も入っている。その意味で、Cross Validationはより好ましい。以前は計算機の能力の問題が顕著だったが、近年ではそれも和らいできている。
縮小法
目的関数に正則化項を加えることで、変数選択を行う方法を紹介する。
リッジ回帰
線形回帰のRSSは
\[\text{RSS}=\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p \beta_j x_{ij}\right)^2\]Ridge回帰ではこれに\(\beta\)の2乗に比例するペナルティ項を付け加えて評価を行う。
\[\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p \beta_j x_{ij}\right)^2+\lambda\sum_{j=1}^p \beta_j^2=\text{RSS}+\lambda\sum_{j=1}^p \beta_j^2\]\(\lambda\sum_{j=1}^p \beta_j^2\)をshrinkage penaltyという。\(\lambda\)はチューニングパラメタである。
\[\min_{\beta}\left\{\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_j x_{ij}\right)^2\right\}~~s.t. ~~\sum_{j=1}^p \beta_j^2\leq s\]Lasso
LassoではRSSに\(\beta\)の絶対値に比例するペナルティ項を付け加えて評価を行う。\(\lambda\)はチューニングパラメタである。
\[\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p \beta_j x_{ij}\right)^2+\lambda\sum_{j=1}^p |\beta_j|=\text{RSS}+\lambda\sum_{j=1}^p |\beta_j|\]
LassoはRidgeと比較してペナルティによって\(\beta\)が\(0\)になりやすい(後述)ので、変数選択や解釈が簡単になる。
これらは制約付き最小化問題としての解釈が出来る。
\[\min_{\beta}\left\{\sum_{i=1}^n\left(y_i-\beta_0-\sum_{j=1}^p\beta_j x_{ij}\right)^2\right\}~~s.t. ~~\sum_{j=1}^p|\beta_j|\leq s\]制約付き最小化問題の比較がFig.6.7であり、Lassoのほうが0が容易に得られることがわかる。Fig.6.7はRidgeが有利なDGPである。
Lassoの変数選択
Lassoとリッジ回帰の比較
Ridge回帰とLassoの関係を示すシンプルな例
\(n=p\)
\({\mathbf X}=diag(p)\)
Regression without intercept
とすると回帰は \[\sum_{j=1}^p(y_j-\beta_j)^2\] に簡単化される。最小2乗推定量は \[\hat{\beta}_j=y_j\] である。RidgeとLassoではそれぞれ目的関数 \[\sum_{j=1}^p(y_j-\beta_j)^2+\lambda\sum_{j=1}^p\beta_j^2\] \[\sum_{j=1}^p(y_j-\beta_j)^2+\lambda\sum_{j=1}^p|\beta_j|\] を考えればよく。その結果推定量は以下の表現を得る。 \[\hat{\beta}_j^R=y_j/(1+\lambda)\] \[\hat{\beta}_j^L=\left\{\begin{array}{ll} y_j-\lambda/2&\text{if }y_j\gt\lambda/2\\ y_j+\lambda/2&\text{if }y_j\lt-\lambda/2\\ 0&\text{if }|y_j|\leq\lambda/2 \end{array} \right.\]Ridge回帰とLassoのベイズ的解釈
チューニングパラメーターの選択
Cross Validationによる例?
次元を下げる方法
ここまで考えてきたdimension reduction
- predictorの部分集合を使う
- predictorの係数を0に近づける
- \(X_1,\ldots,X_p\)はpredictor
- \(M\lt p\)
- \(\phi_{1m},\ldots,\phi_{pm}~(m=1,\ldots,M)\)はパラメタ
\(Z_m\)を決定するパラメタをうまく選べば、単なる\(X\)による回帰と比較して\(Z\)による回帰は良い結果をもたらすかもしれない。
\(Z\)の定義に注意して線形部分を書き直し、\(X\)の係数を\(\beta\)と書けば、以下のような表現になる。 \[\sum_{m=1}^M\theta_m z_{im}=\sum_{m=1}^M\theta_m\sum_{j=1}^p\phi_{jm}x_{ij} =\sum_{j=1}^p\sum_{m=1}^M\theta_m\phi_{jm}x_{ij}=\sum_{j=1}^p\beta_jx_{ij}\] \[\beta_j=\sum_{m=1}^M \theta_m \phi_{jm}\] この\(\beta\)の表現は、
- \(\beta\)の取りうる値に制約をかけるので、バイアスの原因となる
- 一方説明変数の数を少なくすることで分散を小さくする。
主成分回帰
\(X_1,X_2\)の2変数の場合について\(Z_m\)の作り方を説明
\[\phi_{11}^2+\phi_{21}^2=1\]
という制約の下で
\[Z_1=\sum_{j=1}^2 \phi_{j1}X_j\]
の分散を最大にするよう\(\phi_{11},\phi_{21}\)を決定する。
\(Z_2\)は\(Z_1\)と相関せず、かつ分散が最大になるように\(\phi_{12},\phi_{22}\)を決定することで定める。
\(X\)の個数分まで、この操作は続けられる。
決定された\(\phi_{11}.\ldots,\phi_{PM}\)により\(Z_m\)を作り、OLS推定に利用する。
\(M\)の決定にはしばしばクロスバリデーションが用いられる。
部分的最小2乗法
- Principal Components Regressionでは、\(X\)の共分散構造のみから\(Z\)を決定した
- \(X\)の共分散構造のみから\(Z\)を決定したので「教師」入力がいらない
- 決定に\(Y\)の情報が入っていないので、\(Y\)の予測の観点では最良の決定方法にはなっていない
- \(X_j(j=1,\ldots,p)\)を標準化
- \(Y\)を\(X_j\)に単回帰しその組み合わせとして\(Z_1=\sum_{j=1}^p \phi_{j1}X_j\)の\(\phi_{j1}\)を決定する
- \(X_j\)を\(Z_1\)に回帰し残差を得る。
- \(Y\)をこれらの残差に回帰しその組み合わせとして\(Z_2=\sum_{j=1}^p \phi_{j2}X_j\)の\(\phi_{j2}\)を決定する
- この手順を繰り返す