統計学 学習ノート

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

2級-8 推測統計の基礎

単回帰と予測

  • 最小二乗法
  • 変動の分解
  • 決定係数
  • 回帰係数
  • 分散分析表
  • 観測値と予測値
  • 残差プロット
  • 標準誤差
  • 変数変換

はじめに

「明日の気温が分かれば、飲み物を何本仕入れればいいか読めないかな?」

お店を任されたら、こう考えますよね。暑い日ほど冷たい飲み物が売れるのは、誰でも知っています。でも、仕入れの数を決めるには「1度上がると何本増えるのか」「その見込みはどれくらい当たるのか」まで、数字で知りたいはずです。

前回の記事では、質的変数どうしの関連を2元クロス表で調べました。今回は量的変数に戻り、一方の値からもう一方の値を予測します。3級で、最小二乗法で回帰直線を引く方法を学びましたね。

実は、線を引いただけでは、仕事は半分しか終わっていません。その線がどれくらい信用できるのかを評価して、はじめて予測に使えるのです。

そこで登場するのが、今回の主役 単回帰分析 です。1つの変数 xx で、もう1つの変数 yy を説明する分析のことです。今回の記事では、回帰直線の求め方を確認したうえで、変動の分解、決定係数、分散分析表、標準誤差、残差プロット、変数変換について解説します。

最小二乗法:観測値と予測値のズレを小さくする

はじめに、最小二乗法で回帰直線を求める手順を解説します。

単回帰では、xx と yy の関係を次の直線で表します。yy の上の山形の記号は「予測した値」という印で、「ワイハット」と読みます。

y^=a+bx\hat{y} = a + bx

ここで aa は切片、bb は傾きです。xx を 説明変数、yy を 目的変数 と呼びます。bb のことを 回帰係数 と言います。回帰係数は、xx が1増えたときに yy が平均的にいくら増えるかを表します。

実際に測った値を 観測値、直線から計算した値を 予測値 と言います。観測値と予測値の差が 残差 です。

ei=yi−y^ie_i = y_i - \hat{y}_i

最小二乗法(least squares method) は、この残差の2乗の合計が最も小さくなるように aa と bb を決める方法です。たくさんの点のそばを通る棒を、ゴムひもで全部の点とつないだところを想像してください。棒は、ゴムひもの引っ張り合いがつり合う場所に落ち着きます。遠い点ほど強く引くので、2乗するのです。

答えは、次の公式で求まります。

b=SxySxx,a=yˉ−bxˉb = \frac{S_{xy}}{S_{xx}}, \qquad a = \bar{y} - b\bar{x}

記号の意味は次のとおりです。

【記号の意味】

  • Sxx=∑(xi−xˉ)2S_{xx} = \sum (x_i - \bar{x})^2: xx の偏差の2乗の合計
  • Sxy=∑(xi−xˉ)(yi−yˉ)S_{xy} = \sum (x_i - \bar{x})(y_i - \bar{y}): xx の偏差と yy の偏差の積の合計

言葉で言うと、傾きは「xx と yy が一緒に動く量」を「xx が動く量」で割った値です。切片の式は、回帰直線が必ず平均の点 (xˉ,yˉ)(\bar{x}, \bar{y}) を通ることを表しています。

例題:回帰直線を求める

ある店の6日間の最高気温 xx(度)と、飲み物の売上本数 yy が次のようでした。回帰直線を求めましょう。

日123456
気温 xx202224262830
売上 yy71848895100102

【解き方】

  1. 平均を求める: xˉ=25\bar{x} = 25、yˉ=90\bar{y} = 90
  2. 偏差を求める: xx は −5, −3, −1, 1, 3, 5、yy は −19, −6, −2, 5, 10, 12
  3. Sxx=25+9+1+1+9+25=70S_{xx} = 25 + 9 + 1 + 1 + 9 + 25 = 70
  4. Sxy=95+18+2+5+30+60=210S_{xy} = 95 + 18 + 2 + 5 + 30 + 60 = 210
  5. 傾き: b=210÷70=3b = 210 \div 70 = 3
  6. 切片: a=90−3×25=15a = 90 - 3 \times 25 = 15

答えは y^=15+3x\hat{y} = 15 + 3x です。気温が1度上がると、売上は平均して3本増えると読めます。気温27度の日なら、15 + 3 × 27 = 96 で、96本の予測です。

ただし、観測した範囲の外への予測には注意が必要です。気温40度を入れると135本になりますが、データは20度から30度までしかありません。その先でも同じ直線が続く保証はないのです。

試験のポイント:傾きは相関係数 rr を使って b=r sy/sxb = r \, s_y / s_x とも書けます。rr と2つの標準偏差が与えられたら、この式を使います。

以上が、最小二乗法についての解説です。

変動の分解と決定係数:線はどれだけ説明できたか

次に、回帰直線の当てはまりを測る方法について説明します。

売上は日によって動きます。この動き全体のうち、気温で説明できたのはどのくらいでしょうか? これを調べるのが 変動の分解 です。

例えるなら、1枚のケーキの切り分けです。ケーキ全体が「売上の動き」で、回帰直線が説明できたぶんを1切れ取ります。残った部分は「説明できなかったぶん」です。

式で書くと、次のようになります。

∑(yi−yˉ)2=∑(y^i−yˉ)2+∑(yi−y^i)2\sum (y_i - \bar{y})^2 = \sum (\hat{y}_i - \bar{y})^2 + \sum (y_i - \hat{y}_i)^2

左から順に、次の名前で呼びます。

【3つの変動】

  1. 全変動 STS_T: 観測値が平均のまわりでどれだけ動くか
  2. 回帰変動 SRS_R: 予測値が平均のまわりでどれだけ動くか(説明できたぶん)
  3. 残差変動 SeS_e: 残差の2乗の合計(説明できなかったぶん)

つまり、ST=SR+SeS_T = S_R + S_e です。この分解は、最小二乗法で引いた直線では必ず成り立ちます。

そして、全変動のうち回帰で説明できた割合が 決定係数(coefficient of determination) です。

R2=SRST=1−SeSTR^2 = \frac{S_R}{S_T} = 1 - \frac{S_e}{S_T}

R2R^2 は0から1の値をとり、1に近いほど当てはまりがよいことを表します。単回帰では、相関係数の2乗と一致します。

具体的に見てみましょう。例題のデータの予測値と残差は次のとおりです。

気温 xx202224262830
観測値 yy71848895100102
予測値 y^\hat{y}7581879399105
残差 ee−43121−3

残差を全部足すと0になります。これも最小二乗法の性質です。3つの変動を計算すると、次のようになります。

【変動の計算】

  • 全変動: ST=361+36+4+25+100+144=670S_T = 361 + 36 + 4 + 25 + 100 + 144 = 670
  • 回帰変動: SR=225+81+9+9+81+225=630S_R = 225 + 81 + 9 + 9 + 81 + 225 = 630
  • 残差変動: Se=16+9+1+4+1+9=40S_e = 16 + 9 + 1 + 4 + 1 + 9 = 40

確かに 670 = 630 + 40 です。したがって、R2=630÷670≈0.94R^2 = 630 \div 670 \approx 0.94 となります。売上の動きの約94%を、気温で説明できたという意味です。

試験のポイント:r=−0.8r = -0.8 のように負の相関でも、決定係数は R2=0.64R^2 = 0.64 と正の値です。

以上が、変動の分解と決定係数についての説明です。

分散分析表と標準誤差:表で一度に評価する

続いて、計算結果をまとめる分散分析表と、予測のズレを表す標準誤差について解説します。

分散分析表(ANOVA table) は、変動の分解を1枚にまとめた成績表です。統計ソフトの出力にも必ず出てきます。例題のデータでは、次のようになります。

要因平方和自由度平均平方F比
回帰630163063
残差40410
全体6705

表の見方を、順に確認しましょう。

【分散分析表の見方】

  1. 平方和: 3つの変動そのもの
  2. 自由度: 全体は n−1n-1、回帰は説明変数の数の1、残差は n−2n-2
  3. 平均平方: 平方和を自由度で割った値
  4. F比: 回帰の平均平方を残差の平均平方で割った値

残差の自由度が n−2n-2 なのは、aa と bb の2つを決めるのにデータの情報を使ったからです。

F比は、説明できたぶんが、説明できなかったぶんの何倍あるかを表します。裁判に例えると、「直線に意味はない」という仮定がどこまで苦しいかを示す数字です。傾きが本当は0なら、F比は自由度 (1, 4) のF分布に従います。F分布の表の上側5%点は7.71で、63はそれを大きく超えています。したがって、傾きは0ではないと判断できます。検定の手順は、後の記事でていねいに学びます。

次に、標準誤差(standard error) です。標準誤差とは、推定した値がどれくらいぶれるかを表す標準偏差のことです。回帰分析では、2つの標準誤差がよく登場します。

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

ss は 残差の標準誤差 で、予測が典型的にどれだけ外れるかを表します。SE(b)\mathrm{SE}(b) は 回帰係数の標準誤差 で、別の6日間を調べたら傾きがどれくらい変わりそうかを表します。

数値を入れてみましょう。

【標準誤差の計算】

  • 残差の標準誤差: s=40÷4=10≈3.16s = \sqrt{40 \div 4} = \sqrt{10} \approx 3.16
  • 回帰係数の標準誤差: SE(b)=3.16÷70≈0.38\mathrm{SE}(b) = 3.16 \div \sqrt{70} \approx 0.38

予測はだいたい3本前後外れ、傾きの3には0.38ほどのぶれがあると読めます。傾きを標準誤差で割った t=3÷0.378≈7.94t = 3 \div 0.378 \approx 7.94 が、回帰係数の検定に使う値です。この2乗はF比の63と一致します。

試験のポイント:単回帰では、回帰係数の tt 値の2乗が分散分析表のF比に等しくなります。

以上が、分散分析表と標準誤差についての解説です。

残差プロットと変数変換:線の形を疑う

最後に、モデルそのものを点検する方法を見ていきましょう。

決定係数が高くても、直線を当てはめたこと自体がまちがっている場合があります。そこで、健康診断の出番です。残差プロット は、横軸に xx か予測値、縦軸に残差をとった散布図です。うまくいっていれば、残差には何の模様も残りません。

【残差プロットの読み方】

  1. 0のまわりにランダムに散らばる: 直線のモデルでよい
  2. U字形や山形の曲線になる: 本当の関係は曲がっている
  3. 右に行くほど上下の幅が広がる: ばらつきが一定ではない
  4. 1点だけ大きく離れる: 外れ値を疑う

模様が残っているときの処方箋が 変数変換 です。変数を別の形に置き換えて、直線で扱える形にします。1つずつ見ていきましょう。

1. 単位を変える変換

例えば、xx の単位を「分」から「時間」に変えると、1時間は60分なので、回帰係数は60倍になります。一方で、相関係数と決定係数は変わりません。ものさしを取り替えても、点の並び方は同じだからです。

2. 対数変換

例えば、ある動画の再生回数が、1日ごとに100回、200回、400回、800回と倍々で増えたとします。このままでは直線になりません。ところが、常用対数をとると2.00、2.30、2.60、2.90となり、等間隔の直線に変わります。積み重なる増え方を、足し算の増え方に翻訳したわけです。売上や所得のように右へ裾を引くデータで、ばらつきが広がる場合にも効きます。

自然対数を使った回帰では、回帰係数の読み方が変わります。

【対数をとったときの読み方】

  • log⁡y=a+bx\log y = a + bx: xx が1増えると、yy は約 100b100b %増える
  • log⁡y=a+blog⁡x\log y = a + b \log x: xx が1%増えると、yy は約 bb %増える

例題:対数をとった回帰式を読む

ある店の売上 yy と、広告の回数 xx について、自然対数をとった回帰式 log⁡y=1.5+0.03x\log y = 1.5 + 0.03x が得られました。広告を1回増やすと、売上はどう変わるでしょうか?

【解き方】

  1. xx が1増えると、log⁡y\log y は0.03増える
  2. 対数の差は比に対応するので、yy は e0.03≈1.03e^{0.03} \approx 1.03 倍になる
  3. 1.03倍は、約3%の増加である

答えは「約3%増える」です。「0.03増える」ではない点に注意しましょう。

以上が、残差プロットと変数変換についての説明です。

細かい計算を忘れてしまっても問題ありません。ここでは、「線を引いたら、説明できた割合を測り、残差で線の形を点検する」という流れを押さえておきましょう。

今回のまとめ

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

今回は、回帰直線を求めるだけでなく、その線を評価する方法について紹介しました。回帰分析の本体は線を引く作業ではなく、「どれだけ説明でき、どれだけ外れるのか」を確かめる作業です。

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

振り返り

  • 最小二乗法は、残差の2乗の合計を最小にする。傾きは Sxy/SxxS_{xy}/S_{xx} で、直線は平均の点を通る。
  • 全変動は、回帰変動と残差変動に分解できる。ケーキのうち線が取れた割合が決定係数。
  • 分散分析表は変動の成績表。F比と標準誤差で、線の信頼度を読む。
  • 残差プロットは線の健康診断。模様が残ったら変数変換を考える。

キーワードのおさらい

  • 最小二乗法: 残差の2乗の合計が最小になるように直線を決める方法
  • 回帰係数: xx が1増えたときの yy の平均的な変化量
  • 観測値と予測値: 実際に測った値と、回帰直線から計算した値
  • 変動の分解: 全変動を回帰変動と残差変動に分けること
  • 決定係数: 全変動のうち回帰で説明できた割合
  • 分散分析表: 平方和・自由度・平均平方・F比をまとめた表
  • 標準誤差: 推定した値のぶれを表す標準偏差
  • 残差プロット: 残差を縦軸にとって模様の有無を見る散布図
  • 変数変換: 変数を対数などに置き換えて分析しやすくすること

さて、ここまでのデータは、順番を入れ替えても結果が変わらないものでした。でも、毎月の売上や株価のように、時間の順番そのものに意味があるデータもありますよね。

次回は、成長率やコレログラムを使う「時系列データの処理」について紹介します。

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

練習問題5問開いて挑戦する
問1. xˉ=10\bar{x} = 10、yˉ=50\bar{y} = 50、Sxx=40S_{xx} = 40、Sxy=120S_{xy} = 120 のとき、回帰直線として正しいものはどれか。
問2. 標本の大きさ n=12n = 12 の単回帰で、回帰の平方和が80、残差の平方和が20だった。分散分析表のF比として正しいものはどれか。
問3. xx と yy の相関係数が −0.6 のとき、xx から yy を予測する単回帰の決定係数の説明として、正しいものはどれか。
問4. 残差プロットで、残差がU字形に並んでいた。最も適切な判断はどれか。
問5. 自然対数をとった回帰式 log⁡y=2+0.05x\log y = 2 + 0.05x が得られた。xx が1増えたときの yy の変化として、最も適切なものはどれか。