単回帰分析入門:概念・推定(OLS)・診断・IT実務での活用と注意点

単回帰分析とは — 概要と位置づけ

単回帰分析(たんかいきぶんせき、simple linear regression)は、説明変数(独立変数)x と目的変数(従属変数)y の間に「直線的な関係」があると仮定して、y を x で説明・予測する統計手法です。IT 分野では、ページ読み込み時間とリクエスト数、CPU 使用率と同時スレッド数、広告費とクリック数など「1つの原因変数が結果に与える影響」を定量化する場面で使われます。

モデルの定式化

単回帰モデルは通常、次のように表されます。

y = β0 + β1 x + ε

  • β0:切片(x = 0 のときの予測値)
  • β1:傾き(x が 1 単位増加したときの y の平均変化量)
  • ε:誤差項(モデルで説明できないランダムなばらつき)

推定方法(最小二乗法)

最も一般的な推定法は最小二乗法(OLS: Ordinary Least Squares)です。観測データ (xi, yi) が n 個あるとき、残差 ei = yi − (b0 + b1 xi) の二乗和 Σ ei^2 を最小化する b0, b1 を求めます。解析的に求めると:

  • b1 = Σ(xi − x̄)(yi − ȳ) / Σ(xi − x̄)^2 (共分散を分散で割った形)
  • b0 = ȳ − b1 x̄

ここで x̄, ȳ はそれぞれ x, y の標本平均です。

解釈と評価指標

得られた係数の解釈は直感的です。b1 が正なら x が増えると y が増える傾向、負なら減る傾向を示します。ただし「因果」を主張するには注意が必要です(後述)。

  • 決定係数 R^2:モデルが y の分散のうちどれだけ説明しているかを示し、0〜1 の値をとります。R^2 = 1 − SSE/SST(SSE: 残差平方和、SST: 全平方和)
  • 標準誤差、信頼区間:係数の不確実性を示します。b1 の標準誤差 se(b1) を用いて t 検定を行います。
  • t 検定:帰無仮説 H0: β1 = 0 に対する検定。p 値が小さいほど傾きが有意に 0 から離れていることを示します。
  • F 検定:単回帰では t 検定と同等に扱われることが多いです。

仮定(Gauss–Markov と推論の前提)

OLS が良い性質(BLUE: 最良線形不偏推定量)を持つためには以下の仮定が必要です(簡潔化して記載)。

  • 線形性:期待値が E[y|x] = β0 + β1 x であること(モデルの形が正しい)
  • 誤差の期待値がゼロ:E[ε|x] = 0(外生性)
  • 同分散性(ホモスケダスティシティ):Var(ε|x) = σ^2(すべての x で分散が一定)
  • 誤差の非相関:観測間で誤差が相関しないこと(独立)
  • 説明変数に完全な多重共線性がない(単回帰では x の分散がゼロでないこと)

さらに係数の検定や信頼区間を正しく行うには誤差が正規分布に従う(ε ~ N(0, σ^2))という仮定が便利です。

残差解析と診断

モデル当てはまりの妥当性を評価するために残差分析は不可欠です。代表的な診断は次の通りです。

  • 残差対適合値プロット:非線形性や異常なパターン、分散の非定常(異分散性)を検出
  • QQプロット:残差の正規性確認
  • クックの距離、レバレッジ(hat 値):影響の大きい外れ値や高いレバレッジ点を特定
  • ブリーシュ=パガン検定(Breusch–Pagan):異分散性の検定
  • ダービン=ワトソン検定:時系列データにおける自己相関の検定

よくある問題点と対処法

単回帰分析は単純かつ分かりやすい反面、以下のような注意点があります。

  • 因果関係の誤解:相関は因果を示さない。交絡因子(第三の変数)があると誤った結論に至る。
  • 外れ値の影響:少数の外れ値が推定値を大きく歪める。ロバスト回帰や外れ値除去を検討。
  • 異分散性:分散が一定でない場合、標準誤差が誤って推定され、検定結果が不正確になる。重み付き最小二乗法(WLS)やロバスト標準誤差を使う。
  • 非線形性:関係が直線でない場合、対数・平方根変換や多項式回帰、非線形回帰を検討。
  • 外挿の危険:観測範囲外での予測は不確実性が高く推奨されない。

IT 分野での具体例と応用

単回帰分析は以下のような場面で有効です。

  • ページ読み込み時間(y)と同時リクエスト数(x)の関係把握 → 性能チューニングの指標化
  • 広告費(x)とクリック数(y)の短期的な効果推定(A/B テストの一次評価)
  • ユーザー滞在時間(x)とコンバージョン率(y)の単純な関係性把握
  • ログデータからの傾向推定:あるメトリクスの増減要因を素早く探索する探索的分析

ただし、IT の実データは異分散や自己相関、外れ値、非線形性を含むことが多く、診断と前処理(対数変換や外れ値処理)が重要です。

実装のヒント(R / Python)

代表的な実装は簡単です。R では lm(), Python では statsmodels や scikit-learn を使います。例:

R:
model <- lm(y ~ x, data = df)
summary(model)

Python (statsmodels):
import statsmodels.api as sm
X = sm.add_constant(df['x'])
model = sm.OLS(df['y'], X).fit()
print(model.summary())

出力で係数、標準誤差、t 値、p 値、R^2、診断統計量を確認します。

発展的な処置と代替手法

単回帰で仮定が破られる場合、次の手法が考えられます。

  • 重回帰分析:説明変数が複数ある場合に拡張
  • ロバスト回帰:外れ値に強い推定(例:Huber 回帰)
  • WLS(重み付き最小二乗):異分散を考慮
  • 時系列モデル(ARIMA 等):自己相関が強いデータ向け
  • 正則化(Ridge, Lasso):多変量で過学習抑制(単回帰には不要)
  • 非線形回帰・決定木・ランダムフォレスト:非線形関係が強い場合

実務での心得

単回帰分析は探索的で素早く傾向を掴むのに適していますが、実務では以下を心掛けてください。

  • 前処理(欠損・外れ値・変換)を丁寧に行う
  • 診断プロットで仮定の違反を確認する
  • 因果を主張する際は実験デザイン(ランダム化やインSTRUMENTAL VARIABLES 等)を検討する
  • 予測精度が重要なら交差検証で汎化性能を評価する

まとめ

単回帰分析は「1つの説明変数で結果を説明する」最も基本的な統計手法で、IT 分野でも多くの応用があります。計算は簡単で解釈も直感的ですが、仮定違反(非線形・異分散・自己相関・外れ値など)や因果推論の限界に注意し、残差診断や適切な代替手法の検討を行うことが重要です。

参考文献