回帰直線とは:単回帰・最小二乗から診断・IT実務活用まで
回帰直線とは — 概念の整理
回帰直線(かいきちょくせん、regression line)は、観測データに対して「ある説明変数(x)」から「目的変数(y)」を予測するために引かれる直線のことです。統計学・機械学習における代表的な手法である単回帰分析(simple linear regression)の結果として得られます。最も基本的な定義は「誤差(二乗誤差)の総和を最小にする直線」であり、これを最小二乗法(ordinary least squares; OLS)と呼びます。
数学的定義(単回帰モデル)
単回帰モデルは次のように表されます。
y_i = β0 + β1 x_i + ε_i
ここで β0 は切片(intercept)、β1 は傾き(slope)、ε_i は誤差項(期待値0, 分散σ^2)です。観測データ (x_i, y_i), i=1,...,n から β0, β1 を推定します。最小二乗推定値は次の式で与えられます。
b1 = Σ_i (x_i - x̄)(y_i - ȳ) / Σ_i (x_i - x̄)^2(傾きの推定値)b0 = ȳ - b1 * x̄(切片の推定値)
ここで x̄ は x の平均、ȳ は y の平均です。予測値は ŷ_i = b0 + b1 x_i となります。
分解と指標:SST, SSR, SSE, R²
モデルの説明力を評価する基本的な分解は次の通りです。
- SST(総変動):
SST = Σ_i (y_i - ȳ)^2 - SSR(回帰による変動):
SSR = Σ_i (ŷ_i - ȳ)^2 - SSE(残差の変動):
SSE = Σ_i (y_i - ŷ_i)^2
これらは SST = SSR + SSE を満たします。決定係数 R² は次のように定義され、モデルがデータの分散をどの程度説明しているかを示します。
R² = SSR / SST = 1 - (SSE / SST)
単回帰の場合、R² は説明変数 x と目的変数 y のピアソン相関係数 r の二乗と一致します(R² = r²)。
推定量の分散と検定・信頼区間
残差の分散の推定は次の式です(自由度 n-2)。
s^2 = SSE / (n - 2)
傾き b1 の標準誤差は次で与えられます。
SE(b1) = s / sqrt(Σ_i (x_i - x̄)^2)
これにより t検定を使って傾きがゼロか(説明変数の有意性)を評価できます。t値は t = b1 / SE(b1) で、自由度 n-2 の t 分布に従うと仮定します。
また、予測(新しい x* における y の推定)に対しては次のような信頼区間・予測区間を使います。
- 平均応答の信頼区間:
ŷ* ± t_{n-2,α/2} * s * sqrt(1/n + (x* - x̄)^2 / Σ (x_i - x̄)^2) - 新規観測の予測区間:
ŷ* ± t_{n-2,α/2} * s * sqrt(1 + 1/n + (x* - x̄)^2 / Σ (x_i - x̄)^2)
回帰モデルの仮定(OLSの前提条件)
- 線形性: 真の関係が線形であるか、少なくとも線形近似が妥当であること。
- 独立性: 誤差項 ε_i が互いに独立であること(時系列では自己相関をチェック)。
- 等分散性(ホモスケダスティシティ): 誤差の分散が観測値に依存しないこと。
- 正規性(推定量の検定・信頼区間の厳密性のため): 残差が正規分布に従うこと(大標本では中心極限定理により緩和)。
これらの仮定が破られると、推定量の効率性や検定結果の妥当性が損なわれることがあります。したがって診断が重要です。
診断方法と対処法
代表的な診断と対応策は次の通りです。
- 残差プロット: 予測値や説明変数に対する残差の散布を確認し、非線形性や等分散性違反を検出する。
- QQプロット: 残差の正規性を確認。
- Durbin–Watson検定: 時系列データの自己相関を検出。
- Cookの距離、レバレッジ: 影響の大きい外れ値(影響点)を特定。
- 分散拡大係数(VIF): 複数説明変数の場合に多重共線性を評価。
対処法の例:
- 非線形関係: 変数変換(対数、平方根)、多項式回帰、スプラインなどを検討。
- 異分散: 加重最小二乗(WLS)やロバスト標準誤差の利用。
- 外れ値・異常値: ロバスト回帰(Huber 回帰、RANSAC、quantile regression)を検討。
- 多重共線性: 主成分回帰(PCR)、リッジ回帰(L2正則化)、ラッソ(L1正則化)など。
IT 系での実用的な応用例
IT領域では回帰直線が多様に活用されます。具体例を挙げます。
- A/Bテスト: クリック数や売上などの結果に対する時間やユーザー属性を説明変数として回帰を使い、効果の調整(covariate adjustment)を行う。
- パフォーマンス分析: リクエスト数やレイテンシの関係をモデル化し、負荷が増えたときの応答時間の推定やキャパシティプランニングに利用。
- トレンド解析: 日次ユーザー数や売上の長期トレンドを線形回帰で把握し、将来予測の基礎とする。
- 特徴量のベースライン: 機械学習の前段階で、変数と目的との線形関係を確認して特徴選択に役立てる。
- 異常検知の基礎: 正常時の線形モデルを学習し、残差が大きい観測を異常として検出する。
回帰直線の拡張と関連手法
- 重回帰分析(multiple linear regression): 説明変数が複数ある場合。行列表示で一般解は
β̂ = (X'X)^{-1} X' y(逆行列が存在する場合)。 - 正則化: リッジ回帰(L2)、ラッソ(L1)は、過学習や多重共線性に対する対策。
- 一般化線形モデル(GLM): 目的変数が非正規(例:二項、ポアソン)でリンク関数を用いる場合。
- ロバスト回帰、分位回帰: 外れ値や分布の歪みに対して頑健な推定を行う手法。
- 非線形回帰、カーネル法、決定木やニューラルネット: 線形モデルで表現できない複雑な関係のモデリング。
注意点:相関と因果
回帰直線で相関(あるいは傾向)を捉えても、それが因果関係を意味するわけではありません。特にシステム設計や改善の意思決定では、追加の実験(ランダム化比較試験)やドメイン知識による検証が必要です。
実装メモ(主要なツール)
- Python: scikit-learn の
LinearRegression(学習と予測)、statsmodels のOLS(詳細な統計量・診断出力) - R:
lm()関数(要約や診断プロットが豊富) - Excel / Google Sheets: 回帰直線(散布図のトレンドライン)を簡易的に確認可能
まとめ(実務での使いどころ)
回帰直線は、データに潜む一次的な関係を素早く可視化・定量化するための最も基本的で有用な手法です。ITの現場では探索的分析、性能予測、A/Bテストの補助、異常検知の基盤などで頻繁に用いられます。ただし仮定違反や外れ値、多変量の複雑性、そして相関と因果の混同には注意が必要で、必要に応じて診断・変換・高度な手法へ移行することが重要です。
参考文献
- Wikipedia: 線形回帰(日本語)
- Wikipedia: Linear regression(英語)
- scikit-learn: Linear models — scikit-learn documentation
- statsmodels: Regression — statsmodels documentation
- An Introduction to Statistical Learning(ISLR)— 参考書・講義資料
- Penn State: Simple Linear Regression (Stat 501 説明)


