回帰分析ガイド:OLS/最小二乗法の基礎から回帰診断・正則化・IT実務まで

回帰線とは — 概要

回帰線(回帰直線)は、ある説明変数(または複数の説明変数)と目的変数との関係を数式で表し、データの「傾向」を最もよく表す直線(または平面・超平面)を指します。特に「単回帰」では一つの説明変数に対する直線 y = a + bx が用いられ、a(切片)と b(傾き)がデータから推定されます。ITやデータサイエンスの分野では、予測、特徴量の重要度評価、因果仮説の簡易検証など幅広く利用されます。

数学的定義と最小二乗法による推定

最も基本的な回帰線の推定法は最小二乗法(Ordinary Least Squares, OLS)です。単回帰モデルを考えると、観測データ {(xi, yi)}(i=1,...,n)に対してモデルは

y_i = a + b x_i + ε_i

と書けます(ε_i は誤差項)。最小二乗法は残差(観測値と予測値の差)二乗和 SSE = Σ(yi − (a + b xi))^2 を最小化する a, b を求めます。解析的に解くと、解は次のようになります。

傾き b = Σ(xi − x̄)(yi − ȳ) / Σ(xi − x̄)^2

切片 a = ȳ − b x̄

ここで x̄, ȳ はそれぞれ説明変数と目的変数の平均です。複数説明変数のときは行列表示で β̂ = (X'X)^{-1} X'y が得られます(X は設計行列)。

モデルの評価指標(R二乗、残差、分散)

回帰モデルの当てはまりの良さを測る代表的指標が決定係数 R^2 です。定義は

R^2 = 1 − SSE / TSS

ここで TSS = Σ(yi − ȳ)^2(全平方和)で、SSE は誤差平方和です。R^2 は 0〜1 の範囲をとり、1 に近いほど説明変数で目的変数の変動が説明されていることを意味します。なお説明変数が増えると単純に R^2 が上がりやすいため、説明変数の数を考慮した修正済み決定係数(Adjusted R^2)がよく使われます。

推定誤差の分散は SSE / (n − p)(p はモデルパラメータ数、単回帰なら p=2)で推定され、標準誤差は係数の検定や信頼区間の算出に使われます。

統計的検定と信頼区間

係数 b の有意性は t 検定で評価します。t 値は

t = b / SE(b)

で計算され、SE(b)(b の標準誤差)は単回帰で SE(b) = sqrt(σ̂^2 / Σ(xi − x̄)^2) となります。σ̂^2 は SSE/(n−2) の推定値です。t の自由度は n − p。これにより p 値を求め、係数がゼロかどうか(説明変数が有意か)を判断します。

回帰の前提(仮定)と診断

  • 線形性:説明変数と目的変数の関係は線形である。
  • 独立性:観測誤差は互いに独立である(時系列では自己相関の確認が必要)。
  • 等分散性(ホモスケダスティシティ):誤差の分散は説明変数の値に依存しない。
  • 正規性:誤差は正規分布にしたがう(小サンプルでの推定・検定に重要)。
  • 多重共線性の不在(重回帰の場合):説明変数間で強い相関があると係数推定が不安定になる。

これらの仮定は現実には破られることが多く、診断プロセス(残差プロット、QQプロット、分散不均一の検定、VIF による共線性チェック、影響点の検出(Cook's distance 等))が重要です。仮定違反がある場合、変数変換(対数など)、ロバスト回帰、重回帰の正則化、分位点回帰などを検討します。

実用上の注意点と落とし穴

  • 相関は因果を意味しない:回帰で得られた係数は因果関係の証明ではない。
  • 外挿の危険性:観測範囲外での予測は信頼できない。
  • 欠損値や外れ値への対処:そのまま放置すると推定が歪む。適切なクレンジングやロバスト手法を検討。
  • 高次の関係:関係が非線形なら多項式回帰や非線形モデル(決定木、カーネル法、ニューラルネット等)を検討。
  • 説明変数選択:過学習を防ぐために交差検証、正則化(Ridge/Lasso/Elastic Net)、情報量基準(AIC/BIC)などを使う。

回帰の拡張と代替手法(IT・データ分析でよく使われるもの)

  • 重回帰(Multiple Regression):複数説明変数での線形モデル。β̂ = (X'X)^{-1}X'y の解析が基本。
  • リッジ回帰(Ridge):L2 正則化を加えて多重共線性に強く、特徴量が多い場合に有効。
  • ラッソ回帰(Lasso):L1 正則化で変数選択効果があり、スパースな解を得る。
  • ロバスト回帰(Huber、RANSAC など):外れ値に対して耐性のある推定法。
  • 一般化線形モデル(GLM):目的変数が二値やカウントのときにリンク関数(例:ロジスティック回帰)を用いる。
  • 非線形回帰/機械学習モデル:回帰木、ランダムフォレスト、勾配ブースティング、ニューラルネットなど。

実装とツール(IT 実務での使い分け)

代表的な実装例:

  • Python
    • scikit-learn の LinearRegression:高速で予測に便利だが、係数の標準誤差や詳細な統計量は別実装(statsmodels)で確認するのが一般的。 (scikit-learn LinearRegression)
    • statsmodels の OLS:統計的検定・標準誤差・サマリ出力が充実。 (statsmodels OLS)
  • R
    • lm 関数:古典的かつ強力な回帰解析ツール。summary(lm(...)) で係数、標準誤差、t 値、R^2 等を表示。 (R: lm)

IT分野での具体的な利用例

  • パフォーマンス分析:応答時間と負荷の関係を回帰でモデル化してスケーリングの影響を定量化。
  • ログ解析:特定イベント発生頻度とシステムパラメータの関係分析。
  • プロダクト分析:A/B テスト結果から重要な要因を抽出し、売上やコンバージョンへの影響を推定。
  • 機能選択:多くの特徴量から回帰で重要度の高い特徴を選別(ただし相関やバイアスに注意)。

まとめ(実務向けのチェックリスト)

  • まず散布図を描いて線形性を確認する。
  • 残差プロット、QQプロット、VIF、影響点のチェックを実施する。
  • 仮定違反があれば変換・ロバスト手法・正則化を検討する。
  • 解釈では相関と因果を混同しない。外挿は避け、モデルの適用範囲を明確にする。
  • 実装では予測が目的か推論が目的かでツール(scikit-learn vs statsmodels など)を使い分ける。

参考文献