G検定(ジェネラリスト検定)
たんかいきぶんせき
単回帰分析
Simple Regression Analysis
説明変数が1個のときに、目的変数との関係を y = a * x + b という1本の直線で表し、傾き a と切片 b を最小二乗法で求める統計学の分析手法。
詳しい説明
単回帰分析は、1つの説明変数 x から1つの目的変数 y を予測するために、データに最もよく当てはまる直線 y = a * x + b を求める手法です。「単回帰」は統計学の呼び方で、説明変数が1個の場合を指します。説明変数が2個以上になると、統計学では重回帰分析と呼び分けます。
機械学習の線形回帰との関係
機械学習の分野では、説明変数の数で呼び名を分けず、1個でも複数でも線形回帰と呼びます。イアン・グッドフェロー (Ian Goodfellow)、ヨシュア・ベンジオ (Yoshua Bengio)、アーロン・クールヴィル (Aaron Courville) の教科書「Deep Learning」(2016年) の第5章は、線形回帰をベクトル x を入力にとってスカラー y を予測するシステムとして定義し、予測式を y_hat = w^T * x と書いています。この本は「単回帰」という語を使っていませんが、入力の次元 n が1のとき、この式は y_hat = w * x という1個の数どうしの掛け算になり、単回帰分析と同じ形の関係を表します。
米国国立標準技術研究所 NIST の統計手法ハンドブック (NIST/SEMATECH e-Handbook of Statistical Methods) は、線形モデルの一般形を f(x; beta) = beta_0 + beta_1 * x_1 + beta_2 * x_2 + ... と示しています。同じハンドブックは、線形モデルは直線や平面に限られず、かなり広い範囲の形を含むとも述べています。この一般形で説明変数を x_1 の1個だけにした f(x; beta) = beta_0 + beta_1 * x_1 が、グラフでは1本の直線になります。単回帰分析の y = a * x + b は、この式の beta_1 を傾き a、beta_0 を切片 b と書き直したものです。
傾きと切片の求め方
データが n 組 (x_1, y_1), (x_2, y_2), ..., (x_n, y_n) あるとき、直線による予測値 a * x_i + b と実際の値 y_i との差を残差と呼びます。最小二乗法は、この残差の二乗の合計が最も小さくなるように a と b を決める方法です。その結果として、傾きと切片は次の式で求まります。
x_bar = x_i の平均、y_bar = y_i の平均 とすると、
a = sum((x_i - x_bar) * (y_i - y_bar)) / sum((x_i - x_bar)^2)
b = y_bar - a * x_bar
傾き a の分子は、x と y がそれぞれ平均からどちら向きにずれているかを掛け合わせて足したものです。x が平均より大きいときに y も平均より大きい組が多ければ正になり、直線は右上がりになります。分母は x の平均からのずれの二乗和で、x のばらつきの大きさを表します。切片の式 b = y_bar - a * x_bar は、求めた直線が必ず平均の点 (x_bar, y_bar) を通ることを意味します。
3組のデータで計算する例
次の3組のデータに直線を当てはめます。
(x, y) = (1, 1), (2, 2), (3, 6)
1. 平均を求めます。x_bar = (1 + 2 + 3) / 3 = 2、y_bar = (1 + 2 + 6) / 3 = 3 です。
2. 平均からのずれを求めます。x_i - x_bar は -1, 0, 1、y_i - y_bar は -2, -1, 3 です。
3. 分子を計算します。(-1) * (-2) + 0 * (-1) + 1 * 3 = 2 + 0 + 3 = 5 です。
4. 分母を計算します。(-1)^2 + 0^2 + 1^2 = 1 + 0 + 1 = 2 です。
5. 傾きは a = 5 / 2 = 2.5 です。
6. 切片は b = y_bar - a * x_bar = 3 - 2.5 * 2 = 3 - 5 = -2 です。
求めた直線は y = 2.5 * x - 2 です。
確かめとして、各点の予測値と残差を並べます。
x = 1 のとき予測値は 2.5 * 1 - 2 = 0.5、残差は 1 - 0.5 = 0.5
x = 2 のとき予測値は 2.5 * 2 - 2 = 3、残差は 2 - 3 = -1
x = 3 のとき予測値は 2.5 * 3 - 2 = 5.5、残差は 6 - 5.5 = 0.5
残差の合計は 0.5 - 1 + 0.5 = 0 で、切片を含む最小二乗法の直線では残差の合計が0になる性質と合っています。残差の二乗和は 0.25 + 1 + 0.25 = 1.5 で、最小二乗法はこの値が最も小さくなる a と b を選んでいます。また x = 2 のとき予測値が y_bar と同じ3になり、直線が平均の点 (2, 3) を通ることも確かめられます。この直線を使うと、たとえば x = 4 のときの y は 2.5 * 4 - 2 = 8 と予測できます。
押さえておく点
単回帰分析と重回帰分析の違いは、説明変数の数が1個か2個以上かです。機械学習の文脈で線形回帰と書かれている場合は、説明変数の数を問わない呼び方である点に注意が要ります。計算の問題では、傾きが x と y の平均からのずれの積の和を x のずれの二乗和で割ったものであること、切片が平均の点を通る条件から決まることの2つを覚えておけば、上の手順で答えを出せます。
試験で問われること
G検定
- 単回帰分析は統計学の呼び方で、説明変数が1個の場合を指します。説明変数が2個以上の場合は重回帰分析と呼び分けます。
- 機械学習の分野では説明変数の数で呼び名を分けず、1個でも複数でも線形回帰と呼びます。イアン・グッドフェロー (Ian Goodfellow) らの教科書「Deep Learning」は線形回帰の予測式を y_hat = w^T * x と書いており、入力が1個のときは y_hat = w * x となって単回帰分析と同じ形になります。
- 単回帰分析では、データに当てはめる直線を y = a * x + b とし、残差 (実際の値と予測値の差) の二乗の合計が最も小さくなるように、最小二乗法で傾き a と切片 b を求めます。
- 傾きは a = sum((x_i - x_bar) * (y_i - y_bar)) / sum((x_i - x_bar)^2)、切片は b = y_bar - a * x_bar で計算します。たとえばデータ (1, 1), (2, 2), (3, 6) では x_bar = 2、y_bar = 3 で、a = 5 / 2 = 2.5、b = 3 - 2.5 * 2 = -2 となり、直線 y = 2.5 * x - 2 が得られます。この直線は平均の点 (x_bar, y_bar) を通ります。
最終更新日: 2026/09/23