統計学 学習ノート

統計検定の4級から1級まで、出題範囲の順に記事と練習問題で学ぶ

2級-25 推測統計の基礎

回帰分析 — 重回帰モデル

  • 回帰直線の傾きの推定と検定
  • 重回帰モデル
  • 偏回帰係数
  • 回帰係数の検定
  • 多重共線性
  • ダミー変数を用いた回帰
  • 自由度調整(修正)済み決定係数

はじめに

「駅から1分遠くなると、家賃はいくら下がるの?」

部屋探しをしていると、こんな疑問がわきますよね。駅徒歩と家賃のデータを集めて、回帰直線を引けば答えが出そうです。ところが、駅から遠い部屋は広いことが多いので、話はそう単純ではありません。

実は、変数を1つだけ見ると、他の要因の影響が混ざってしまいます。例えば、駅徒歩だけで回帰すると、1分あたり0.02万円しか下がらないのに、広さをそろえて比べると0.12万円も下がる、ということが起こります。「遠いぶん広い」という効果が、駅徒歩の効果を隠していたのです。

そこで登場するのが、今回の主役 重回帰モデル です。複数の説明変数を同時に使い、それぞれの効果を切り分ける方法です。

前回の記事では、カイ二乗統計量で質的変数の関連を調べました。これで、検定の道具がそろいました。単回帰の記事では「傾きの検定は後の記事で学ぶ」と予告しましたよね。今回の記事では、回帰直線の傾きの検定から始めて、重回帰モデルの読み方までを解説します。

回帰直線の傾きの推定と検定

はじめに、回帰直線の傾きの推定と検定について解説します。

単回帰の記事では、データから直線 y^=a+bx\hat{y} = a + bx を求めました。でも、求めた傾き bb は、たまたま集まった標本から計算した値です。別の6日間を調べれば、別の傾きになります。味見のたびに味の感想が少し変わるのと同じです。

そこで、データの背後に次の 回帰モデル を考えます。

yi=β0+β1xi+εiy_i = \beta_0 + \beta_1 x_i + \varepsilon_i

β0\beta_0、β1\beta_1 は母集団の切片と傾き、εi\varepsilon_i は誤差です。誤差は、互いに独立に平均0、分散 σ2\sigma^2 の正規分布に従うと仮定します。bb は β1\beta_1 の推定値という位置づけです。

β1=0\beta_1 = 0 なら、xx は yy の説明に役立ちません。そこで、H0:β1=0H_0: \beta_1 = 0 を検定します。検定統計量は、これまでと同じ「物差し何本分か」の形です。

t=bSE(b),SE(b)=sSxx,s=Sen−2t = \frac{b}{\mathrm{SE}(b)}, \qquad \mathrm{SE}(b) = \frac{s}{\sqrt{S_{xx}}}, \qquad s = \sqrt{\frac{S_e}{n-2}}

SeS_e は残差変動、SxxS_{xx} は xx の偏差の2乗の合計です。H0H_0 のもとで、tt は自由度 n−2n-2 の t分布に従います。自由度が n−2n-2 なのは、aa と bb の2つを推定したからです。

傾きの95%信頼区間も、同じ部品から作れます。

b±t0.025(n−2)×SE(b)b \pm t_{0.025}(n-2) \times \mathrm{SE}(b)

例題:気温と売上の傾きの検定

単回帰の記事の例題では、6日間のデータから b=3b = 3、Se=40S_e = 40、Sxx=70S_{xx} = 70 が得られました。傾きを有意水準5%で検定し、95%信頼区間を求めましょう。t0.025(4)=2.776t_{0.025}(4) = 2.776 です。

【解き方】

  1. 仮説を立てる: H0:β1=0H_0: \beta_1 = 0、H1:β1≠0H_1: \beta_1 \neq 0
  2. 残差の標準誤差を求める: s=40÷4=3.16s = \sqrt{40 \div 4} = 3.16
  3. 傾きの標準誤差を求める: SE(b)=3.16÷70=0.378\mathrm{SE}(b) = 3.16 \div \sqrt{70} = 0.378
  4. 検定統計量を計算する: t=3÷0.378=7.94t = 3 \div 0.378 = 7.94
  5. 7.94 > 2.776 なので、H0H_0 を棄却する
  6. 信頼区間を求める: 3 ± 2.776 × 0.378 より、1.95〜4.05

答えは「有意水準5%で傾きは0ではなく、気温1度あたりの売上の増加は1.95〜4.05本の範囲と推定される」です。

この tt の2乗は、分散分析表のF比の63と一致します。単回帰では、傾きの t検定とF検定は同じ結論になります。

以上が、回帰直線の傾きの推定と検定についての解説です。

重回帰モデルと偏回帰係数

次に、重回帰モデルと偏回帰係数について説明します。

重回帰モデル は、説明変数が2つ以上ある回帰モデルです。説明変数が pp 個あるとき、次のように書きます。

yi=β0+β1x1i+β2x2i+⋯+βpxpi+εiy_i = \beta_0 + \beta_1 x_{1i} + \beta_2 x_{2i} + \cdots + \beta_p x_{pi} + \varepsilon_i

係数は単回帰と同じく最小二乗法で、残差の2乗の合計が最も小さくなるように決めます。手で解くことはまずなく、ソフトに任せます。試験でも、問われるのは計算ではなく出力の読み方です。

ここで大切なのが、偏回帰係数 の意味です。偏回帰係数とは、他の説明変数を一定にしたまま、その変数だけを1増やしたときの yy の変化量です。

例えば、徒競走でシューズの効果を調べるなら、走る人も天気も同じにして、シューズだけを替えて比べますよね。偏回帰係数は、それをデータの上で行っているようなものです。「散布図と相関」の記事で学んだ偏相関係数と、似た発想です。

具体的に見てみましょう。ある街の30部屋のデータから、家賃 yy(万円)を、広さ x1x_1(m²)、駅徒歩 x2x_2(分)、築年数 x3x_3(年)で説明すると、次の式が得られたとします。

y^=5.20+0.15x1−0.12x2−0.04x3\hat{y} = 5.20 + 0.15x_1 - 0.12x_2 - 0.04x_3

【係数の読み方】

  • 広さの係数0.15: 駅徒歩と築年数が同じなら、1m²広いと家賃は0.15万円高い
  • 駅徒歩の係数−0.12: 広さと築年数が同じなら、1分遠いと家賃は0.12万円安い
  • 築年数の係数−0.04: 広さと駅徒歩が同じなら、1年古いと家賃は0.04万円安い

予測も簡単です。30m²、徒歩10分、築15年の部屋なら、5.20 + 4.50 − 1.20 − 0.60 = 7.90 で、予測の家賃は7.9万円です。

冒頭の話に戻りましょう。駅徒歩だけの単回帰の傾き−0.02と、重回帰の−0.12が違っていたのは、単回帰の傾きに「遠いと広い」の効果が混ざっていたからです。このように、同じ変数でも、モデルに入れる変数が変わると係数は変わります。

もう1つ注意があります。係数の大きさだけで、どの変数の影響が強いかは比べられません。広さの単位をm²から坪に変えるだけで、係数の数字は変わってしまうからです。

試験のポイント:偏回帰係数を説明するときは、「他の変数を一定にしたとき」という言葉が必ず付きます。

以上が、重回帰モデルと偏回帰係数についての説明です。

回帰係数の検定と自由度調整済み決定係数

続いて、回帰係数の検定と、モデルのよさの測り方について解説します。

1. 回帰係数の検定

重回帰でも、回帰係数の検定 の形は同じです。H0:βj=0H_0: \beta_j = 0 について、次の tt を計算します。

tj=bjSE(bj)t_j = \frac{b_j}{\mathrm{SE}(b_j)}

H0H_0 のもとで、tjt_j は自由度 n−p−1n-p-1 の t分布に従います。推定した係数は、切片を含めて p+1p+1 個あるので、その分だけ自由度が減るのです。

例題:家賃のモデルの係数の検定

先ほどの家賃のモデルの出力は、次のようでした。各係数を有意水準5%で検定しましょう。自由度は 30 − 3 − 1 = 26 で、t0.025(26)=2.056t_{0.025}(26) = 2.056 です。

変数係数標準誤差t値p値
切片5.200.806.500.000
広さ0.150.027.500.000
駅徒歩−0.120.03−4.000.000
築年数−0.040.03−1.330.194

【解き方】

  1. t値は係数を標準誤差で割った値: 例えば、広さは 0.15 ÷ 0.02 = 7.50
  2. 絶対値が2.056を超えるものを探す: 広さと駅徒歩
  3. 築年数は1.33で境目より小さい

答えは「広さと駅徒歩の係数は0ではないと言えるが、築年数は0でないとは言えない」です。p値が0.05より小さいかで判断しても、同じ結論になります。

なお、全部の係数がまとめて0かを調べるのが、分散分析表のF検定です。決定係数を R2R^2 とすると、F比は次の式で求まります。

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

このモデルの R2R^2 が0.80なら、F=(0.80÷3)÷(0.20÷26)=34.7F = (0.80 \div 3) \div (0.20 \div 26) = 34.7 です。F0.05(3,26)=2.98F_{0.05}(3, 26) = 2.98 を超えるので、少なくとも1つの係数は0ではないと判断します。

2. 自由度調整済み決定係数

決定係数 R2R^2 には弱点があります。説明変数を増やすと、役に立たない変数でも、R2R^2 は下がらないのです。部屋の番号の下1けたのように家賃と無関係な変数を入れても、R2R^2 は少し上がります。テストの範囲を広げれば、まぐれ当たりも増えるようなものです。

そこで、変数の数の分だけ罰を与えるのが、自由度調整済み決定係数 です。自由度修正済み決定係数とも呼びます。

Rˉ2=1−Se/(n−p−1)ST/(n−1)=1−(1−R2)n−1n−p−1\bar{R}^2 = 1 - \frac{S_e/(n-p-1)}{S_T/(n-1)} = 1 - (1-R^2)\frac{n-1}{n-p-1}

STS_T は全変動です。言葉で言うと、変動を自由度で割ってから比べた決定係数です。

家賃のモデルでは、Rˉ2=1−0.20×29÷26=0.777\bar{R}^2 = 1 - 0.20 \times 29 \div 26 = 0.777 です。ここに4つ目の変数を加えて、R2R^2 が0.805に上がったとします。すると、Rˉ2=1−0.195×29÷25=0.774\bar{R}^2 = 1 - 0.195 \times 29 \div 25 = 0.774 となり、かえって下がります。つまり、この変数を足す価値はなかったと読めます。

試験のポイント:説明変数の数が違うモデルを比べるときは、R2R^2 ではなく自由度調整済み決定係数を見ます。

以上が、回帰係数の検定と自由度調整済み決定係数についての解説です。

多重共線性とダミー変数を用いた回帰

最後に、重回帰で気をつける点と、便利な道具を見ていきましょう。

1. 多重共線性

多重共線性 は、説明変数どうしの相関が強いために、係数の推定が不安定になる現象です。マルチコとも呼ばれます。

2人の歌手がいつも同時に歌うと、どちらの声が大きいのか聞き分けられませんよね。例えば、家賃のモデルに「m²で測った広さ」と「畳数で測った広さ」を両方入れると、ほぼ同じ変数が2つ並びます。どちらの手柄なのかを切り分けられなくなるのです。

【多重共線性の症状】

  • 回帰係数の標準誤差が大きくなり、t値が小さくなる
  • R2R^2 は高いのに、個々の係数が有意にならない
  • 係数の符号が、常識と逆になる
  • データが少し変わるだけで、係数が大きく変わる

対策は、相関の強い変数の一方をモデルから外すことや、それらを1つの変数にまとめることです。まずは相関行列で、説明変数どうしの相関を確かめましょう。

補足(ここは読み飛ばしてOK): 目安によく使うのがVIFです。ある説明変数を他の説明変数で回帰したときの決定係数を Rj2R_j^2 として、1÷(1−Rj2)1 \div (1 - R_j^2) で求めます。Rj2=0.9R_j^2 = 0.9 なら10で、10を超えると要注意とされます。

2. ダミー変数を用いた回帰

「オートロックの有無」のような質的変数は、そのままでは式に入れられません。そこで、ありなら1、なしなら0とおいた ダミー変数 を作ります。スイッチのオン・オフを数字にするイメージです。

例えば、次の式が得られたとします。DD はオートロックありで1、なしで0です。

y^=4.0+0.15x1+1.5D\hat{y} = 4.0 + 0.15x_1 + 1.5D

なしの部屋は y^=4.0+0.15x1\hat{y} = 4.0 + 0.15x_1、ありの部屋は y^=5.5+0.15x1\hat{y} = 5.5 + 0.15x_1 です。傾きが同じで、切片だけが1.5違う2本の平行な直線になります。つまり、1.5は「広さが同じなら、オートロックつきは1.5万円高い」という意味です。

3種類以上のカテゴリは、「種類の数 − 1」個のダミー変数で表します。例えば、東・西・南の3地区なら、東を基準にして「西なら1」「南なら1」の2個です。東は両方0で表せるので、3個作るとかえって係数が決まらなくなります。

試験のポイント:ダミー変数の係数は、基準のカテゴリとの差です。カテゴリが kk 個ならダミー変数は k−1k-1 個です。

以上が、多重共線性とダミー変数についての説明です。

細かい式が分からなかったとしても問題ありません。ここでは、「偏回帰係数は他の変数を一定にしたときの効果である」という点だけ押さえておきましょう。

今回のまとめ

それでは、今回の内容を振り返ります。

今回は回帰直線の傾きの検定から、重回帰モデルまでを紹介しました。重回帰は、データの上で「他の条件をそろえて比べる」ための道具です。ただし、変数の選び方で係数は変わるので、出力の数字をそのまま信じず、意味を考えて読むことが大切です。

今回のポイントを振り返りましょう。

振り返り

  • 傾きの検定は t=b÷SE(b)t = b \div \mathrm{SE}(b)。単回帰の自由度は n−2n-2 で、t2t^2 はF比に等しい。
  • 偏回帰係数は、他の説明変数を一定にしたときの効果。
  • 重回帰の係数の検定の自由度は n−p−1n-p-1。
  • 変数の数が違うモデルは、自由度調整済み決定係数で比べる。
  • 説明変数どうしの相関が強いと、多重共線性で係数が不安定になる。
  • 質的変数は、ダミー変数で式に入れられる。

キーワードのおさらい

  • 重回帰モデル: 説明変数が2つ以上ある回帰モデル
  • 偏回帰係数: 他の説明変数を一定にしたとき、その変数が1増えたときの yy の変化量
  • 回帰係数の検定: 係数が0かどうかを、係数を標準誤差で割った tt で調べる検定
  • 自由度調整済み(修正済み)決定係数: 説明変数の数を考慮して調整した決定係数
  • 多重共線性: 説明変数どうしの強い相関で、係数の推定が不安定になる現象
  • ダミー変数: 質的変数を0と1で表した変数

さて、回帰では量的な説明変数を中心に扱いました。では、「3種類の肥料で収穫量は変わるか」のように、3つ以上のグループの平均を比べたいときは、どうすればよいでしょうか? t検定を何度も繰り返すと、実は困ったことが起こります。

次回は、実験の組み立てと「一元配置と分散分析」について紹介します。

それでは、次の記事へ進んでいきましょう。

練習問題5問開いて挑戦する
問1. n=20n = 20 の単回帰で、傾きが2.4、その標準誤差が0.8だった。t0.025(18)=2.101t_{0.025}(18) = 2.101 のとき、H0:β1=0H_0: \beta_1 = 0 の両側検定(有意水準5%)の結果として正しいものはどれか。
問2. y^=10+2x1−3x2\hat{y} = 10 + 2x_1 - 3x_2 という重回帰式の、x2x_2 の係数の説明として最も適切なものはどれか。
問3. n=21n = 21、説明変数 p=2p = 2 の重回帰で、R2=0.70R^2 = 0.70 だった。自由度調整済み決定係数として正しいものはどれか。
問4. 重回帰分析で、R2R^2 は高いのに個々の係数が有意にならず、係数の符号も常識と逆だった。まず疑うべきことはどれか。
問5. ある店の売上の回帰式が y^=20+1.5x+8D\hat{y} = 20 + 1.5x + 8D だった。xx は気温、DD は週末なら1、平日なら0のダミー変数である。気温20度の週末の予測値として正しいものはどれか。