IT用語を超やさしく理解する

回帰分析

別名: 回帰 / 回帰分析 / 回帰直線 / 単回帰 / 重回帰 / ロジスティック回帰 / regression analysis / regression line

30秒で思い出す

回帰分析は、ある変数から別の変数の傾向を式で表し、予測や関係の整理に使う方法です。

もっとも基本的な単回帰では、

y = ax + b

のような直線で2つの量の関係を表します。

  • x: 説明に使う変数
  • y: 予測したい変数
  • a: xが1増えたとき、yがどれくらい変わるかを表す傾き
  • b: x=0のときの基準となる値

ただし、回帰式ができても、因果関係が証明されたわけではありません。

超やさしく理解

たとえば、アクセス数とCPU使用率の関係を調べた結果、

CPU使用率 = 0.5 × アクセス数 + 20

という回帰式が得られたとします。

アクセス数が40なら、

0.5 × 40 + 20 = 40

なので、CPU使用率は40%程度と予測できます。

このように、観測データの傾向を式で表して、入力から出力の目安を求めるのが回帰分析の基本です。

説明変数と目的変数

回帰分析では、変数の役割を分けます。

説明変数

予測や説明に使う側の変数です。

例:

  • アクセス数
  • データ件数
  • CPUコア数

目的変数

説明変数から予測したい側の変数です。

例:

  • CPU使用率
  • 処理時間
  • 売上額

「どちらを予測したいか」で役割が決まります。

単回帰

1つの説明変数から1つの目的変数を予測する回帰を単回帰と呼びます。

基本形は、

y = ax + b

です。

たとえば、

処理時間 = 3 × データ件数 + 20

という式なら、データ件数xが10のとき、

3 × 10 + 20 = 50

なので、処理時間は50の単位程度と予測できます。

傾きの意味

式

y = ax + b

のaは傾きです。

たとえば、

y = 2x + 5

なら、xが1増えると、予測されるyは2増えます。

傾きがプラスなら右上がり、マイナスなら右下がりの関係を表します。

切片の意味

bは切片です。

y = 2x + 5

なら、x=0のときの予測値は5です。

ただし、観測データにx=0付近の値がほとんどない場合、切片に現実的な意味を持たせにくいこともあります。

式の値を機械的に解釈せず、データの範囲も確認します。

回帰直線

散布図上に、2つの量の関係を直線として表したものを回帰直線と呼びます。

実際の点がすべて直線上に並ぶ必要はありません。

回帰直線は、ばらついたデータの全体的な傾向を表すための線です。

予測値

説明変数の値を回帰式へ入れると、目的変数の予測値を求められます。

たとえば、

応答時間 = 4 × 同時接続数 + 30

という回帰式で、同時接続数が20なら、

4 × 20 + 30 = 110

となり、応答時間は110 ms程度と予測できます。

実測値と完全に一致するとは限りません。

実測値との差

回帰式の予測値と実際の観測値には差が生じることがあります。

この差を残差と呼びます。

回帰分析では、このような差が全体として小さくなるような式を考えます。

まずは「回帰式は実測値を完全に再現する式ではなく、傾向を表す式」と理解できれば十分です。

相関との違い

相関と回帰は似ていますが、目的が違います。

相関

2つの量が一緒にどう変化するか、関係の向きと強さを見ます。

回帰

一方の変数から、もう一方の変数を説明・予測する式を作ります。

相関では変数を対等に見ることが多いですが、回帰では説明変数と目的変数の役割を分けます。

回帰でも因果は証明できない

回帰式がよく当てはまっても、

説明変数が目的変数の原因だ

と自動的に証明されたわけではありません。

第三の要因が両方に影響している可能性や、単なる同時変化の可能性があります。

前の相関Knowledgeと同じく、因果関係を判断するには追加の調査や実験が必要です。

観測範囲の外への予測に注意

たとえば、実際に観測したアクセス数が10〜100の範囲だったとします。

そのデータから作った回帰式を使って、アクセス数10000のときまで同じ関係が続くと考えるのは危険です。

観測した範囲から大きく外れた値を予測することを外挿といい、誤差が大きくなりやすい点に注意します。

重回帰分析

複数の説明変数を使って1つの目的変数を説明・予測する方法を重回帰分析と呼びます。

たとえば応答時間を、

  • 同時接続数
  • CPU使用率
  • データ件数

の3つから予測するような場合です。

このKnowledgeでは位置付けまでとし、係数の詳細な推定計算は扱いません。

ロジスティック回帰

結果が2つのカテゴリに分かれるような問題で、発生確率などを推定する方法としてロジスティック回帰があります。

例:

  • 障害が発生する / しない
  • 離脱する / しない
  • 不正アクセスである / ない

名前に「回帰」と付きますが、連続値を直線で予測する単回帰とは用途が異なります。

ここでは代表的な回帰手法の1つとして位置付けを知るまでに留めます。

どこで使う?

ITでは、予測や傾向把握に使えます。

例:

  • アクセス数からCPU使用率を予測する
  • データ件数から処理時間を予測する
  • 利用者数から必要なサーバー台数の傾向を考える
  • 複数の指標から障害発生の可能性を分析する

ただし、モデルが現実に合っているかを別途確認する必要があります。

よくある勘違い

回帰式があれば未来を正確に予測できる?

できません。

回帰式は観測データの傾向を表すモデルであり、誤差があります。

回帰係数が大きいほど因果関係が強い?

そうとは限りません。

係数は変数の単位にも左右され、因果関係そのものを証明する値ではありません。

相関係数と回帰係数は同じ?

違います。

相関係数は2変数の直線的な関係の向きと強さを見る指標です。

回帰係数は回帰式の傾きなど、予測式の形を決める値です。

観測範囲外でも同じ式を使ってよい?

注意が必要です。

外挿では、観測範囲内で成り立った関係がそのまま続く保証はありません。

このKnowledgeで扱わないこと

ここでは、回帰分析の基本的な目的と単回帰式の読み方を扱います。

次は対象外または後続Routeへ分けます。

  • 回帰係数の詳細な推定式
  • 最小二乗法の導出
  • 決定係数の詳細
  • 重回帰の行列計算
  • ロジスティック回帰の詳細式
  • 推定
  • 仮説検定

ここまで分かればOK

  • 説明変数と目的変数を区別できる
  • 単回帰式 y=ax+b の意味を説明できる
  • 説明変数を式へ代入して予測値を求められる
  • 傾きと切片の基本的な意味を説明できる
  • 相関と回帰の目的の違いを説明できる
  • 回帰だけでは因果関係を証明できないと理解できる
  • 観測範囲外への外挿に注意できる

資格との関係

理解できたか確認しよう

答えを選んで、なぜそうなるのかまで確認できます。

確認問題 1

回帰式から予測値を求める

データ件数xから処理時間yを予測する回帰式が y = 3x + 20 です。

x = 10 のときの予測値yはいくつですか?

回答を1つ選んでください

確認問題 2

回帰式の予測と因果を区別する

観測範囲10〜100件のデータから、アクセス数xとCPU使用率yの回帰式 y = 0.5x + 20 が得られました。

x = 40 のときの解釈として最も適切なものはどれですか?

回答を1つ選んでください