7.5 予測変数の選択

予測変数になりそうなものが数多くある場合、回帰モデルで使う最良の予測変数を選択するための戦略が必要になります。

よく行われている、でもお薦めしないアプローチは、予測対象変数と予測変数の散布図を描いて、それと気付く関係がなければ、その予測変数をモデルから落とすことです。これは有効ではありません。特に他の予測変数の影響がまだ考慮されていない時点では、散布図から関係を見ることがいつも可能とは限らないからです。

もう一つよく行われている、これまた有効でないアプローチは、全ての予測変数で線形重回帰して、\(p\)値が0.05より大きい変数を全て捨てることです。そもそも、統計上の有意さが予測上の価値を表すとは限りません。予測が目的でなかったとしても、良い戦略ではありません。2つ以上の予測変数の間に相関がある場合には、\(p\)値は誤解を招くおそれがあるのですから。(7.8節、参照).

そうしたお薦めしないアプローチの替わりに、予測正確性の指標を使いましょう。本節では、5つの指標を紹介します。glance()関数を使えば、出力できます。ここでは、米国個人消費のモデルに使います。

glance(fit_consMR) %>%
  select(adj_r_squared, CV, AIC, AICc, BIC)
#> # A tibble: 1 × 5
#>   adj_r_squared    CV   AIC  AICc   BIC
#>           <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1         0.763 0.104 -457. -456. -437.

これらの値を、他のモデルと比較します。CV、AIC、AICc、BICの指標ではそれらが最小となるモデルを、調整後\(R^2\)ではそれが最大となるモデルを、見つけたいのです。

調整後R\(^2\)

計算機で回帰を行うと、7.2節で議論した\(R^2\)の値がいつも出力されます。しかし、これはモデルの予測能力の良い指標ではありません。過去のデータでのモデルの当てはめの良さを測るもので、将来のデータでの予測性能は測っていないのですから。

加えて、\(R^2\)は「自由度」を考慮していません。どんな変数でも加えれば、たとえその変数が無関係でも、\(R^2\)の値は増加します。こうした理由があるので、モデルが良い予測をするか決めるのに、予測者は\(R^2\)を使うべきではありません。使うと、過剰な当てはめになります。

同じ発想としては、以下のように計算される2乗誤差和(SSE)が最小となるモデルを選択する、というのがあります。 \[ \text{SSE} = \sum_{t=1}^T e_{t}^2 \]

SSEを最小化することは、\(R^2\)を最大化することと同値で、常に最も変数の数が多いモデルを選択します。ですから、予測変数を選択する有効な方法ではありません。

これらの問題を克服するよう設計された、それに替わるものが、調整後\(R^2\)(“R-bar-squared”とも言います)です。 \[ \bar{R}^2 = 1-(1-R^2)\frac{T-1}{T-k-1} \] ただし、\(T\)は観測値の数、\(k\)は予測変数の数です。もはや予測変数を加えるたびに増加することはない点で、\(R^2\)から改良されています。この指標では、最良のモデルは\(\bar{R}^2\)の値が最大のものです。\(\bar{R}^2\)を最大化することは、(7.3)式で与えられる標準誤差\(\hat{\sigma}_e\)を最小化することと同値です。

\(\bar{R}^2\)最大化は、予測変数を選択する手法として、わりと上手く機能します。ただ、予測変数を多めに選択する側に間違える傾向があります。

交差検証 (CV)

時系列交差検証は、モデルの予測能力を決める一般的道具として、5.8節で紹介しました。回帰モデルでは、古典的な1個抜き交差検証が予測変数の選択にも使えます。 (Bergmeir et al., 2018) これは高速で、効率的にデータを使用します。以下のような手順になります。

  1. \(t\)時点の観測値をデータセットから除き、残ったデータを使ってモデルを当てはめる。次に、除いた観測値での誤差(\(e_{t}^*=y_{t}-\hat{y}_{t}\))を計算する。(これは残差ではありません。\(t\)時点の観測値は\(\hat{y}_{t}\)値の推計に使っていないのですから。)
  2. 1の手順を\(t=1,\dots,T\)で繰り返す。
  3. \(e_{1}^*,\dots,e_{T}^*\)からMSE(平均2乗誤差)を計算する。これをCVと呼ぶ。

時間のかかる手順に見えますが、CVを計算する高速な手法があり、全データセットに1つのモデルを当てはめる時間で足ります。効率的にCVを計算する方程式は、7.9節で述べます。この規準では、最良のモデルはCV値が最小のものです。

赤池情報量規準 (AIC)

密接に関係する手法が赤池情報量規準(AIC)で、以下のように定義されます。 \[ \text{AIC} = T\log\left(\frac{\text{SSE}}{T}\right) + 2(k+2) \] ただし、\(T\)は推計に使った観測値の数、\(k\)はモデル内の予測変数の数です。異なるコンピュータ・パッケージで、AICの定義は少しばかり違っていますが、選択されるモデルは全て同じになります。式の\(k+2\)項は、\(k\)個の予測変数の係数と切片と残差の分散の計\(k+2\)個のパラメータがモデル内にあるからです。ここでの発想は、モデルの当てはまり具合(SSE)に、推計する必要のあるパラメータの数でペナルティを与えることです。

AIC値が最小なモデルが、普通、予測のために最良なモデルです。\(T\)の値が大きいと、AIC最小化はCV最小化と同値になります。

修正赤池情報量規準 (AICc)

\(T\)の値が小さいと、AICは多めの予測変数を選択しがちなので、AICをバイアス修正したバージョンが開発されました。 \[ \text{AIC}_{\text{c}} = \text{AIC} + \frac{2(k+2)(k+3)}{T-k-3} \] AICと同様、AICc値が最小なのが最良なモデルです。

Schwarzのベイズ情報量規準 (BIC)

関連する指標がSchwarzのベイズ情報量規準(BIC、SBIC、SCなどと略記されるのが普通)です。 \[ \text{BIC} = T\log\left(\frac{\text{SSE}}{T}\right) + (k+2)\log(T) \] AICと同様、BIC値が最小なのが最良なモデルです。BICで選ばれるモデルは、AICで選ばれるモデルと同じか、2つ、3つ項が少ないモデルになります。パラメータの数に対し、AICよりもBICの方がより重いペナルティを課しているからです。\(T\)の値が大きくなると、BIC最小化は、\(v = T[1-1/(\log(T)-1)]\)とした\(v\)個抜きCV最小化に近付きます。

どの指標を使うべきか?

\(\bar{R}^2\)は広く使われており、他の指標より歴史は長いのですが、予測変数を多めに選択する傾向があるので、予測にはあまり向いていません。

多くの統計家はBICの使用を好みます。もし真の根底にあるモデルがあるのなら、十分なデータがあればBICはそのモデルを選択する、という性質があるからです。しかし、現実には、真の根底にあるモデルなどめったにありませんし、あったとしても、そのモデルを選択することが必ずしも(パラメータ推計が不正確かもしれないため)最良の予測を与えてくれるわけではありません。

結果として、AICc、AIC、CVの統計量は全て予測を目的としており、これらの1個を使うことをお薦めします。\(T\)の値が大きければ、どれを使っても同じモデルを選択することになります。本書のほとんどの事例では、予測モデルの選択にAICc値を使うことにします。

事例: 米国個人消費

米国個人消費を予測する重回帰の事例では、4つの予測変数を検討しました。4つの予測変数で、\(2^4=16\)通りのモデルがあり得ます。4つ全ての予測変数が実際役立つのか、あるいは1個かそれ以上の予測変数を落とせないか、今ではチェックできます。表7.1は、16通り全てのモデルを当てはめ、その結果を要約したものです。“⬤”は、その予測変数がモデルに含まれていることを表します。ですから、最初の行は4つの予測変数全てを含むモデルの予測正確性の指標を示しています。

結果はAICc値の順に並べています。ですから、最良のモデルは表の一番上に、最悪のモデルは表の一番下になります。

表 7.1: 米国個人消費を予測する4つの予測変数を使ったモデル全16通り
可処分所得 鉱工業生産 個人貯蓄 失業率 調整後R2 CV AIC AICc BIC
0.763 0.104 -456.6 -456.1 -436.9
0.761 0.105 -455.2 -454.9 -438.7
0.760 0.104 -454.4 -454.1 -437.9
0.735 0.114 -435.7 -435.5 -422.6
0.366 0.271 -262.3 -262.0 -245.8
0.349 0.279 -257.1 -256.8 -240.7
0.345 0.276 -256.9 -256.6 -243.7
0.336 0.282 -254.2 -254.0 -241.0
0.324 0.287 -250.7 -250.5 -237.5
0.311 0.291 -246.9 -246.7 -233.7
0.308 0.293 -246.1 -245.9 -232.9
0.276 0.304 -238.1 -238.0 -228.2
0.274 0.303 -237.4 -237.3 -227.5
0.143 0.356 -204.6 -204.5 -194.7
0.061 0.388 -186.5 -186.4 -176.7
0.000 0.409 -175.1 -175.0 -168.5

最良のモデルは4つの予測変数全てを含んでいます。しかし、結果をよく見ると、いくつか興味深い特徴が分かります。最初の4行のモデルとそれより下のモデルの間には明確な区分があります。このことは、可処分所得と個人貯蓄はともに鉱工業生産と失業率よりも重要な変数であることを示しています。また、最初の3行のCV、AIC、AICcの値はほぼ同じです。なので、鉱工業生産と失業率のどちらかの変数を落としても、似た予測を得られそうです。図7.5で示したように、鉱工業生産と失業率には強い(負の)相関があるので、鉱工業生産の中にある予測に使える情報のほとんどは失業率にも含まれているのですから。

ベストサブセット回帰

可能な場合、(上の事例で行ったように)全てのあり得る回帰モデルを当てはめて、これまで議論してきた指標の1個に基づいて最良のモデルを選択するべきです。これを、「ベストサブセット」回帰、あるいは「全てのあり得るサブセット」回帰と言います。

ステップワイズ回帰

予測変数の数が多いと、全てのあり得るモデルを当てはめることは不可能になります。例えば、予測変数が40個あると、あり得るモデルは\(2^{40} >\) 1兆になります! ですから、探索するモデルの数を限定する戦略が必要になります。

とても上手く機能するアプローチが、後方ステップワイズ回帰です。

  • 使えそうな予測変数全てを含むモデルから始めます。
  • 一度に1個の予測変数を除去します。それで予測正確性の指標が改善するなら、除去後のモデルを保持します。
  • これ以上改善しなくなるまで、これを繰り返します。

使えそうな予測変数の数があまりに多いと、後方ステップワイズ回帰は機能しませんが、その替わり、前方ステップワイズ回帰が使えます。その場合、切片だけを含むモデルから手順を始めます。予測変数を一度に1個加え、予測正確性の指標を最も改善したものをモデルに保持します。これ以上改善できなくなるまで、この手順を繰り返します。

後方か前方かのいずれかの替わりに、使えそうな予測変数のサブセットを含むモデルから始めることもできます。その場合、次の手順は後方か前方かのいずれかになります。一度に1個の予測変数を、後方なら加え、前方なら落とします。これらは、ハイブリッド手順と呼ばれます。

どのステップワイズ・アプローチも、あり得る中で最良のモデルにたどり着くとは限らないが、たいていは良いモデルにたどり着く、と認識しておくことは大切です。さらなる詳細については、 James et al. (2014) を参照してください。

予測変数選択後の推定に注意

本書では、(例えば、各予測変数の\(p\)値を見るなどの)予測変数の統計的推定は議論しません。それでも、予測変数の統計的有意性を見たいと言うのなら、 最初に予測変数を選択するどんな手順も、\(p\)値の背後にある想定を破っていることに注意してください。予測変数を選択するためにお薦めした手順は、モデルを予測に使う際に役立ちます。しかし、予測変数の予測対象変数への影響を調べたいのなら、役に立ちません。

参考文献

Bergmeir, C., Hyndman, R. J., & Koo, B. (2018). A note on the validity of cross-validation for evaluating autoregressive time series prediction. Computational Statistics and Data Analysis, 120, 70–83. [DOI]
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2014). An introduction to statistical learning: With applications in R. Springer. [Amazon]