はじめに
変数を増やすと、決定係数は上がるが予測は悪くなりうる
「説明変数は、全部入れれば入れるほどいいんじゃないの?」
売上を予測するモデルを作るとします。気温、曜日、広告費、近くの人口、競合の数。手元の変数を全部入れると、決定係数はどんどん上がります。これで完成でしょうか?
実は、変数を増やすほど、新しいデータでの予測はかえって悪くなることがあります。似た変数が混ざると、係数が暴れて読めなくなることもあります。2級ではソフトの出力を読むところまででしたが、準1級で問われるのは、その中身と、どの変数を残すかの判断です。
そこで登場するのが、今回の主役 重回帰モデル の行列表現です。行列で書くと、推定も検定も1本の式で見通せるようになります。そのうえで、変数選択、残差分析、一般化最小二乗推定、多重共線性、L1正則化法・L2正則化法 と順に進みます。
前回の記事では、確率過程の基礎を学びました。今回の記事では、回帰モデルの実践を、導出と判断の基準まで含めて解説します。
行列で書く重回帰モデル
予測値はyを平面に落とした影。残差は平面に垂直
はじめに、重回帰モデルの行列表現について解説します。
2級で学んだとおり、説明変数が p 個の 重回帰モデル は、yi=β0+β1x1i+⋯+βpxpi+εi でした。n 個の式を、行列でまとめて書きます。
y=Xβ+ε,E(ε)=0,V(ε)=σ2I
y は n 個の観測値を並べたベクトルです。X は n×(p+1) の 計画行列 で、1列目はすべて1、残りの列が説明変数です。β は切片を含む p+1 個の係数です。
最小二乗法は、残差平方和 (y−Xβ)⊤(y−Xβ) を最小にします。β で微分して0とおくと、次の 正規方程式 が得られます。
X⊤Xβ^=X⊤y
X⊤X に逆行列があれば、次の式で推定値が求まります。
β^=(X⊤X)−1X⊤y
単回帰の b=Sxy/Sxx が、そのまま行列に広がった形です。「x と y の関係」を「x 自身の広がり」で割っている、と読めます。
行列で書く利点は、性質が一度に分かることです。
【最小二乗推定量の性質】
- 不偏性: E(β^)=β
- 分散: V(β^)=σ2(X⊤X)−1
- 誤差分散の推定: s2=n−p−1∑ei2
点推定の記事で学んだガウス・マルコフの定理により、β^ は線形不偏推定量の中で分散が最小です。
予測値は、y^=Xβ^=Hy と書けます。H=X(X⊤X)−1X⊤ を ハット行列 と呼びます。y に帽子(ハット)をかぶせる行列です。
図形で考えると、イメージがはっきりします。X の列が張る平面に、y を真上から光を当てて落とした影が y^ です。影と本体の差である残差は、平面に垂直です。これが X⊤e=0 の意味で、正規方程式そのものです。H のトレース(対角成分の和)は p+1 で、これがモデルの自由度になります。
例題:偏差の行列から係数を求める
2つの説明変数の偏差平方和・偏差積和が、S11=10、S22=20、S12=10、S1y=30、S2y=40 でした。n=10、Syy=120 です。偏回帰係数と、b1 の t 値を求めましょう。
切片を除くと、正規方程式は偏差の行列で書けます。
(10101020)(b1b2)=(3040)
【解き方】
- 逆行列を求める: 行列式は 200−100=100 なので、対角が 0.2, 0.1、非対角が −0.1 の行列
- 係数を求める: b1=0.2×30−0.1×40=2、b2=−0.1×30+0.1×40=1
- 回帰変動を求める: b1S1y+b2S2y=60+40=100
- 残差変動を求める: 120−100=20 で、s2=20÷7=2.86
- 標準誤差を求める: 2.86×0.2=0.756 で、t=2÷0.756=2.65
答えは b1=2、b2=1、t=2.65 です。t0.025(7)=2.365 を超えるので、b1 は有意です。b2 の t 値は1.87で、有意ではありません。
試験のポイント:係数の標準誤差は、s2 に (X⊤X)−1 の対角成分を掛けて平方根をとります。
以上が、重回帰モデルの行列表現についての解説です。
決定係数と回帰の検定
全変動のうち回帰の割合がR²。F検定で全体を調べる
次に、モデル全体の当てはまりの測り方を説明します。
決定係数 は、全変動のうち回帰で説明できた割合 R2=1−Se/Syy でした。重回帰では、y と y^ の相関係数を 重相関係数 R と呼び、その2乗が決定係数に一致します。
例題では、R2=100÷120=0.833 です。2級で学んだ 自由度調整済み決定係数 は、Rˉ2=1−(20÷7)÷(120÷9)=0.786 です。モデル全体のF検定は、F=(100÷2)÷(20÷7)=17.5 で、F0.05(2,7)=4.74 を超えます。
準1級で大切なのは、一部の係数をまとめて検定する 方法です。大きいモデルから q 個の変数を除いた小さいモデルを考えて、H0: 除いた変数の係数はすべて0、を調べます。
F=Se1/(n−p−1)(Se0−Se1)/q
Se0 は小さいモデル、Se1 は大きいモデルの残差変動です。H0 のもとで、F は自由度 (q,n−p−1) のF分布に従います。言葉で言うと、「変数を足して減った残差変動は、たまたまの範囲か」を測っています。q=1 なら、t 検定の2乗と同じです。
以上が、決定係数と回帰の検定についての説明です。
変数選択とMallows' Cp規準
Cpが小さくkに近いモデルを選ぶ。荷物は多すぎず少なすぎず
続いて、変数選択 について解説します。
変数を増やすと、バイアスは減りますが、推定する係数が増えて分散が増えます。点推定の性質の記事で学んだ、バイアス・バリアンス分解の綱引きです。荷物を減らしすぎると必要なものが足りず、詰めすぎると歩けなくなる、登山の荷造りのようなものです。
選び方には、次の手順があります。
【変数選択の手順】
- 総当たり法: すべての組合せを調べる。変数が p 個なら 2p 通り
- 前進選択法: 変数なしから始めて、最もよい変数を1つずつ足す
- 後退消去法: 全部入りから始めて、最も不要な変数を1つずつ除く
- ステップワイズ法: 足すのと除くのを交互に行う
比べる物差しには、次の Mallows' Cp規準 がよく使われます。切片を含めて k 個の係数を持つモデルの残差変動を Se(k)、全部入りのモデルの誤差分散の推定値を σ^2 として、次の式で定めます。
Cp=σ^2Se(k)−n+2k
なぜこの形なのでしょうか? Cp は、予測値の平均二乗誤差の合計を σ2 で割った量の推定値です。モデルにバイアスがなければ E(Se(k))=(n−k)σ2 なので、Cp は k の近くになります。バイアスがあると、その分だけ Cp は k より大きくなります。つまり、第1項の「当てはまり」と第3項の「係数の数の罰」がつり合う点を探す規準です。
Cp が小さく、かつ k に近いモデルを選びます。全部入りのモデルでは、定義から必ず Cp=k になります。
例題:Cpで変数を選ぶ
n=30、説明変数は5個、全変動は400です。全部入りのモデルの残差変動は96で、σ^2=96÷24=4 です。候補のモデルは次のとおりです。
| 変数 | k | 残差変動 | R2 | 調整済み | Cp |
|---|
| x1 | 2 | 180 | 0.55 | 0.534 | 19 |
| x1,x2 | 3 | 112 | 0.72 | 0.699 | 4 |
| x1∼x3 | 4 | 108 | 0.73 | 0.699 | 5 |
| x1∼x4 | 5 | 100 | 0.75 | 0.710 | 5 |
| x1∼x5 | 6 | 96 | 0.76 | 0.710 | 6 |
【解き方】
- Cp を計算する: 例えば、x1,x2 のモデルは 112÷4−30+6=4
- 最小の値を探す: x1,x2 のモデルの4
- 部分F検定で確かめる: 全部入りと比べて F=(16÷3)÷4=1.33 で、F0.05(3,24)=3.01 より小さい
答えは「x1,x2 のモデルを選ぶ」です。
R2 は変数を足すほど必ず増えるので、規準になりません。調整済み決定係数も、足した変数の F が1を超えるだけで増えるので、変数の追加に甘い物差しです。
ただし、選んだ後のモデルの t 値やp値には注意が必要です。データを見て変数を選んだので、見かけより有意に見えるのです。AICなどの情報量規準は、モデル選択の記事で学びます。
試験のポイント:Cp の k は切片を含む係数の数です。全部入りのモデルでは Cp=k です。
以上が、変数選択についての解説です。
残差分析と一般化最小二乗推定
残差の形から不調を読む。分散が違えば重みをつける
さらに、モデルの前提の確かめ方と、前提が崩れたときの対処を見ていきましょう。
残差分析 は、残差のふるまいからモデルの前提を点検する作業です。健康診断の検査結果のように、残差のパターンから体の不調を読み取ります。
残差は e=(I−H)y で、V(e)=σ2(I−H) です。誤差 εi と違って、ei の分散は等しくありません。そこで、H の対角成分 hii を使って、ri=ei/(s1−hii) と揃えます。これを 標準化残差 と呼びます。
【残差のパターンと疑うこと】
- U字などの曲線: 2乗の項の不足など、モデルの形が違う
- 右へ広がる漏斗形: 誤差の分散が等しくない(不均一分散)
- 時間の順に波打つ: 誤差に相関がある(系列相関)
図を使った診断の詳しい方法は、次回の記事で学びます。
では、誤差の分散が等しくないときは、どうすればよいのでしょうか? 最小二乗推定量は不偏のままですが、最良ではなくなり、標準誤差の式も崩れます。
そこで、V(ε)=σ2Ω という一般の形を考えます。Ω は既知の正定値行列です。Ω=CC⊤ と分解して、モデルの両辺に左から C−1 を掛けます。すると、誤差の分散が σ2I に戻るので、変換後のデータにガウス・マルコフの定理が使えます。結果は次の式です。
β^G=(X⊤Ω−1X)−1X⊤Ω−1y,V(β^G)=σ2(X⊤Ω−1X)−1
これが 一般化最小二乗推定(GLS)です。誤差の大きな観測の発言力を下げる、というイメージです。声の大きさではなく、話の確かさで重みをつける会議のようなものです。
Ω が対角行列なら、各観測に重み 1/ωi を付ける 重み付き最小二乗法 になります。
具体的に見てみましょう。原点を通るモデル yi=βxi+εi で、V(εi)=σ2xi とします。店の規模が大きいほど売上のばらつきも大きい、という場面です。重みは 1/xi なので、推定値は次のようになります。
β^G=∑(1/xi)xi2∑(1/xi)xiyi=∑xi∑yi
データが (x,y)=(1,3),(2,5),(4,12) なら、β^G=20÷7=2.86 です。普通の最小二乗法では ∑xiyi/∑xi2=61÷21=2.90 で、大きい x の影響が強く出ます。
試験のポイント:不均一分散や系列相関があっても、最小二乗推定量は不偏です。失われるのは効率で、標準誤差の式も使えなくなります。
以上が、残差分析と一般化最小二乗推定についての説明です。
多重共線性と正則化
ひし形の角で触れると、係数がちょうど0になる
最後に、多重共線性と、その対処である正則化を見ていきましょう。
多重共線性 は、説明変数どうしの強い相関で係数が不安定になる現象でした。理由は、分散の式を見ると分かります。bj の分散は次のように書けます。
V(bj)=Sjj(1−Rj2)σ2
Rj2 は、xj を他の説明変数で回帰したときの決定係数です。1/(1−Rj2) が2級の補足で触れたVIFです。例題では x1 と x2 の相関が0.707で、Rj2=0.5 なので、VIFは2です。相関が0.95なら、VIFは約10.3まで増えます。
X⊤X の逆行列を計算するときに、行列式がほぼ0で割っている状態です。データが少し動くだけで、係数が大きく振れます。
そこで、係数の大きさに罰を与えて、振れを抑えます。これが 正則化 です。あえて少しバイアスを受け入れて、分散を大きく減らします。1つずつ見ていきましょう。
1. L2正則化法(リッジ回帰)
L2正則化法 は、係数の2乗の和に罰を与えます。
βmin{i∑(yi−y^i)2+λj=1∑pβj2},β^R=(X⊤X+λI)−1X⊤y
λ≥0 は罰の強さです。対角に λ を足すので、逆行列が安定します。ぐらつくテーブルの脚に、下駄を履かせるイメージです。
先ほどの例題の偏差の行列に λ=10 を足して解くと、(b1,b2)=(2,1) が (1,1) になります。相関のある変数の間で、効果がならされるのです。
2. L1正則化法(ラッソ)
L1正則化法 は、係数の絶対値の和に罰を与えます。ラッソ(lasso)とも呼びます。
βmin{i∑(yi−y^i)2+λj=1∑p∣βj∣}
ラッソの特徴は、係数がちょうど0になる ことです。つまり、推定と変数選択を同時に行えます。
違いがよく見えるのは、説明変数が互いに直交し、X⊤X=I のときです。最小二乗推定値を bj として、次のようになります。
【直交のときの推定値】
- リッジ: 1+λbj(一律に縮める)
- ラッソ: sign(bj)max(∣bj∣−λ/2, 0)(一定量を引き、足りなければ0にする)
例えば、b=(3,1,−0.4)、λ=1 なら、リッジは (1.5,0.5,−0.2) です。ラッソは (2.5,0.5,0) で、小さい係数が消えました。リッジは全員の給料を半分にし、ラッソは全員から一定額を引いて、足りない人を解雇するようなものです。
形で考えると、理由が分かります。罰の制約の領域は、リッジでは円、ラッソでは軸の上に角を持つひし形です。残差平方和の等高線は、ひし形の角で触れやすく、角では一部の係数が0になります。
【正則化の注意点】
- 説明変数を標準化してから使う。単位で罰の効き方が変わるため
- 切片には罰を与えない
- λ はクロスバリデーションで決める
- 正則化した推定量は不偏ではない
補足(ここは読み飛ばしてOK):
ベイズ法の言葉では、リッジは係数に正規分布の事前分布を、ラッソはラプラス分布の事前分布を置いたときの事後モードに当たります。2つの罰を混ぜた方法をエラスティックネットと呼びます。
試験のポイント:係数が0になるのはL1、一律に縮むのはL2です。λ=0 なら最小二乗法に戻り、λ を大きくするほど係数は0に近づきます。
以上が、多重共線性と正則化についての説明です。
細かい導出が分からなかったとしても問題ありません。ここでは、「R2 だけでモデルを選ばず、バイアスと分散のつり合いで判断する」という点だけ押さえておきましょう。
今回のまとめ
平面への影、Cpでの選択、罰で係数を抑える
それでは、今回の内容を振り返ります。
今回は重回帰分析を、行列の形から変数選択と正則化まで紹介しました。推定の式はきれいでも、変数を増やせばよいわけではありません。当てはまりと安定性の綱引きをどう決着させるかが、実践の中心です。
今回のポイントを振り返りましょう。
振り返り
- 最小二乗推定は β^=(X⊤X)−1X⊤y。予測値は y の平面への影。
- 係数の分散は σ2(X⊤X)−1。一部の係数の検定には部分F検定を使う。
- Mallows' Cp規準は、当てはまりと係数の数のつり合いを見る。小さくて k に近いモデルを選ぶ。
- 誤差の分散が等しくないときは、重みをつける一般化最小二乗推定を使う。
- 多重共線性には正則化が効く。L2は一律に縮め、L1は係数を0にして変数も選ぶ。
キーワードのおさらい
- 重回帰モデル: 複数の説明変数で目的変数を説明する線形モデル
- 決定係数: 全変動のうち回帰で説明できた割合
- 自由度調整済み決定係数: 変数の数の分だけ罰を与えた決定係数
- 変数選択: モデルに残す説明変数を決める作業
- 残差分析: 残差のパターンからモデルの前提を点検する作業
- 一般化最小二乗推定: 誤差の分散・共分散の構造を重みに使う推定法
- 多重共線性: 説明変数どうしの強い相関で、係数が不安定になる現象
- L1正則化法: 係数の絶対値の和に罰を与える方法。ラッソ
- L2正則化法: 係数の2乗の和に罰を与える方法。リッジ回帰
- Mallows' Cp規準: 残差変動と係数の数からモデルを評価する規準
さて、今回は残差のパターンを大まかに見ました。では、1つの点がモデル全体を振り回しているとき、どうやって見つければよいのでしょうか?
次回は、外れ値や影響の大きい点を見つける「回帰診断法」について紹介します。
それでは、次の記事へ進んでいきましょう。