重回帰モデルの基礎

複数の要因を同時に考慮して予測する

難易度 Lv 4 / 10想定時間:約25

できるようになること


単回帰では足りないとき

「単回帰と予測」の単元で、広告費 xx から売上 yy を予測する回帰直線 y^=a+bx\hat{y} = a + bx を学びました。

しかし、同じ広告費でも夏と冬で売上が違うとしたらどうでしょう。広告費だけでなく季節も売上に影響しているなら、広告費だけのモデルでは予測が不十分です。

さらに、広告費の効果を正しく見積もるためにも、季節の影響を分離して考える必要があります。広告費と季節が両方とも売上に影響しているとき、片方を無視したモデルでは、もう片方の効果が歪んで推定されることがあります。これを省略変数バイアス(omitted variable bias)といい、注目する変数以外の影響要因を無視したことで、推定値が本来の値からずれる現象です。

複数の説明変数を同時に扱うのが重回帰分析(multiple regression)です。


重回帰モデル

母集団における重回帰モデルは、pp 個の説明変数 x1,x2,,xpx_1, x_2, \ldots, x_p を使って yy を表します。

yi=β0+β1xi1+β2xi2++βpxip+εiy_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \cdots + \beta_p x_{ip} + \varepsilon_i

標本データから係数を推定した回帰式(予測に使う式)は次のようになります。

y^=b0+b1x1+b2x2++bpxp\hat{y} = b_0 + b_1 x_1 + b_2 x_2 + \cdots + b_p x_p

単回帰の y^=a+bx\hat{y} = a + bx は、p=1p = 1 の場合に相当します。

偏回帰係数の意味

偏回帰係数 bjb_j は、「他のすべての説明変数を固定したときxjx_j が1単位増えると y^\hat{y} がどれだけ変わるか」を表します。

たとえば、売上を広告費 x1x_1 と気温 x2x_2 で予測するモデルが

y^=50+2.0x1+1.5x2\hat{y} = 50 + 2.0 x_1 + 1.5 x_2

であれば、

ポイント

偏回帰係数は「他の変数を固定した」条件付きの効果です。単回帰で得た係数(他の変数を考慮していない)とは一般に値が異なります。これは、他の変数の影響が分離されたためです。

補足

偏回帰係数の大きさは変数の測定単位に依存するため、「広告費の係数 2.0」と「気温の係数 1.5」を直接比較して「広告費のほうが重要」とは言えません。単位に依存しない比較をしたい場合は、すべての変数をあらかじめ平均0・分散1に変換(標準化)してから回帰を行います。このとき得られる係数を標準化偏回帰係数といいます。


係数の推定

重回帰でも、単回帰と同じく最小二乗法(OLS)を使います。残差の二乗和

S=i=1n(yib0b1xi1bpxip)2S = \sum_{i=1}^{n} (y_i - b_0 - b_1 x_{i1} - \cdots - b_p x_{ip})^2

を最小にする b0,b1,,bpb_0, b_1, \ldots, b_p を求めます。

単回帰では公式で直接求められましたが、重回帰では説明変数が複数あるため、行列演算を用いて解きます。

b=(XX)1Xy\mathbf{b} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y}

ここで X\mathbf{X} はデータ行列、y\mathbf{y} は目的変数のベクトル、b\mathbf{b} は係数のベクトルです。この式の構造から、(XX)(\mathbf{X}^\top \mathbf{X}) の逆行列が存在しない場合(=説明変数が線形従属な場合)には係数が一意に求まらないことがわかります。これは後述するダミー変数トラップや多重共線性と直接つながる重要なポイントです。


自由度調整済み決定係数

単回帰で学んだ決定係数 R2R^2 は、重回帰でも使えます。ただし、重回帰には注意点があります。

説明変数を増やすと R2R^2 は必ず増加(または変化しない)します。まったく関係のない変数を追加しても R2R^2 は下がりません。

これでは「変数を増やすほどモデルが良くなる」という誤った判断につながります。そこで、変数の数にペナルティをつけたのが自由度調整済み決定係数(adjusted R2R^2)です。

Rˉ2=1n1np1(1R2)\bar{R}^2 = 1 - \frac{n - 1}{n - p - 1}(1 - R^2)

分母の np1n - p - 1 は残差の自由度です。nn 個のサンプルから切片を含む p+1p + 1 個のパラメータを推定するため、残差が自由に動ける次元が n(p+1)=np1n - (p + 1) = n - p - 1 になります。pp を増やすと分母が小さくなり、(1R2)(1 - R^2) にかかる係数が大きくなるため、R2R^2 の増加が小さければ Rˉ2\bar{R}^2下がります。

補足

R2R^2Rˉ2\bar{R}^2 の差が大きいときは、モデルに不要な変数が含まれている可能性があります。


ダミー変数

広告費や気温は数値で測れますが、季節(春・夏・秋・冬)のようなカテゴリ変数はそのままモデルに入れられません。

そこで使うのがダミー変数(dummy variable)です。kk 個のカテゴリがある場合、k1k - 1 個の0/1変数を作ります。

たとえば季節(4カテゴリ)の場合、冬を**基準(ベースライン)**として:

季節DD_{\text{春}}DD_{\text{夏}}DD_{\text{秋}}
冬(基準)000
100
010
001

モデルは次のようになります。

y^=b0+b1x広告費+b2D+b3D+b4D\hat{y} = b_0 + b_1 x_{\text{広告費}} + b_2 D_{\text{春}} + b_3 D_{\text{夏}} + b_4 D_{\text{秋}}

注意

kk 個のカテゴリに対して kk 個のダミー変数を作ると、切片と合わせて完全に線形従属になり、(XX)(\mathbf{X}^\top \mathbf{X}) の逆行列が存在しなくなるため係数が一意に求まりません。これをダミー変数トラップといいます。必ず1つのカテゴリを基準として省略し、k1k - 1 個のダミー変数を使います。


多重共線性

重回帰では、説明変数同士が強く相関しているとき問題が生じます。

たとえば「月間広告費」と「年間広告費÷12」は本質的に同じ変数であり、これを両方モデルに入れると係数は一意に定まりません(完全な多重共線性)。

実務で多いのは、完全ではないが強い相関があるケースです。たとえば不動産価格の予測で「駅からの徒歩分数」と「駅からの直線距離」を両方入れると、2つの変数は非常に似た情報を持っています。このとき係数は計算できますが、推定が不安定になります。このように説明変数間に強い線形関係がある状態を多重共線性(multicollinearity)といいます。

多重共線性が起きると

VIF(分散拡大因子)

多重共線性の程度を測る指標がVIF(Variance Inflation Factor)です。

VIFj=11Rj2\text{VIF}_j = \frac{1}{1 - R_j^2}

ここで Rj2R_j^2 は、xjx_j を他のすべての説明変数で回帰したときの決定係数です。Rj2R_j^2 が高いほど xjx_j は他の変数で説明できるため、多重共線性が疑われます。

VIFの値判断
1他の変数と無相関(問題なし)
5〜10相関係数を確認し、変数の整理を検討する
10以上深刻な多重共線性。変数の除外や変換が必要

対処法としては、相関の高い変数の片方を除外する、主成分を用いるなどの方法があります。


F検定:モデル全体の有意性

重回帰では、個々の偏回帰係数が0かどうかをt検定(H0:βj=0H_0: \beta_j = 0)で調べることができます。しかし、モデル全体として説明力があるかを検定するには、別の検定が必要です。それがF検定です。

検定統計量は、回帰変動と残差変動のそれぞれを自由度で割った平均平方の比です。R2R^2 を使って書くと、

F=R2/p(1R2)/(np1)F = \frac{R^2 / p}{(1 - R^2) / (n - p - 1)}

分子は「回帰で説明できた変動の1変数あたりの大きさ」、分母は「説明できなかった変動の1自由度あたりの大きさ」です。これは自由度 (p,  np1)(p,\; n - p - 1) のF分布に従います。F値が大きければ、モデル全体として説明力があると判断します。

補足

F検定が有意でも、すべての変数が有意とは限りません。また逆に、F検定が有意でなければ、個々のt検定の結果は信頼できません。


よくある誤解

「変数を増やせばモデルが改善する」

説明変数を増やすと R2R^2 は必ず上がりますが、Rˉ2\bar{R}^2 は上がるとは限りません。たとえば n=20n = 20p=1p = 1 のモデルで R2=0.60R^2 = 0.60 なら Rˉ2=0.58\bar{R}^2 = 0.58 ですが、無関係な変数を14個追加して p=15p = 15 にしても R2R^2 がわずかに上がっただけなら、Rˉ2\bar{R}^2 はむしろ低下します。変数の追加は、Rˉ2\bar{R}^2 が改善するかどうかで判断しましょう。

「偏回帰係数の大きさ=変数の重要度」

偏回帰係数の大きさは、変数の測定単位に依存します。広告費(万円単位)の係数と気温(°C単位)の係数を直接比較しても意味がありません。変数の重要度を比較するには、前述の標準化偏回帰係数を用います。

「有意な変数だけ残せば最良のモデル」

t検定で有意でない変数を機械的に除外するのは推奨されません。変数の除外は理論的な根拠に基づくべきであり、有意性だけを基準にすると、多重比較の問題やモデルの過学習が生じます。


まとめ

重回帰分析は、複数の説明変数を同時に扱い、それぞれの変数の独立した効果を推定する手法です。偏回帰係数 bjb_j は「他の変数を固定したときの xjx_j の効果」を表し、カテゴリ変数はダミー変数(kk カテゴリなら k1k-1 個)を用いて扱います。

モデルの評価には、不要な変数の追加による見かけ上の改善を防ぐ自由度調整済み決定係数 Rˉ2\bar{R}^2 を用います。また、説明変数間の強い相関(多重共線性)には VIF を確認して対処し、F検定でモデル全体の有意性を検定したうえで、個々のt検定と合わせて総合的に判断します。

ヒント

この単元ではモデルの構造と解釈を扱いました。残差の分析、外れ値の検出、モデル選択(AIC、交差検証)といった回帰診断の手法は、「回帰診断とモデル選択」で学びます。