残差分析入門:回帰・機械学習における診断と実務的対応法

導入:残差分析とは何か、なぜ重要か

残差(residual)は観測値とモデルが予測した値の差であり、回帰分析や多くの機械学習モデルにおける適合の良否を直接示す基本量です。単なる誤差の観察に留まらず、残差の挙動を系統的に調べる「残差分析」によって、モデル仮定の検証、外れ値や影響観測値の検出、分散の非定常性(ヘテロスケダスティシティ)、自己相関、非線形性などの問題を発見し、改善策を講じることができます。実務では、モデル信頼性の担保、予測区間の適切な算出、運用時の監視ルール設計などに直結します。

残差の定義と基本的性質

線形回帰の文脈で、観測値y_iと予測値\hat{y}_iの残差は e_i = y_i - \hat{y}_i です。最小二乗法(OLS)では残差の和はゼロ(\sum_i e_i = 0)になり、残差は説明変数空間に対して直交する性質をもちます。残差の分散は誤差分布の推定に使われ、モデルの分散推定量や標準誤差の計算に寄与します。ただし生の残差(raw residuals)は観測ごとの分散や影響度の違いを反映しておらず、診断には標準化残差やstudentized残差などを用いることが一般的です。

残差の種類と計算

  • 生残差(Raw residual): e_i = y_i - \hat{y}_i。基本だが分散が観測ごとに異なる場合解釈注意。

  • 標準化残差(Standardized residual): e_i / (\hat{\sigma}\sqrt{1-h_ii})。ハット行列の対角要素h_ii(レバレッジ)を考慮し、観測ごとのスケール差を補正。

  • studentized(外れ値感度低減)残差: 外したときの残差分散を用いる内部・外部studentized residualがあり、外れ値検出に有効。

  • ピアソン残差(特にGLMで)やデビアンス残差など、誤差分布に応じた残差定義がある。

主要な診断プロットとその解釈

  • 残差 vs 予測値(Fitted):非ランダムなパターン(曲線、漏斗状など)は非線形性やヘテロスケダスティシティの兆候。

  • Q-Qプロット(残差の正規性確認):残差が直線から逸脱すると正規分布仮定違反の示唆。ただしサンプルサイズに依存。

  • スケール-ロケーションプロット:平方根標準化残差と予測値の散布。分散の非定常性(増加・減少)を視覚化。

  • レバレッジ vs 標準化残差(影響プロット):Leverage(h_ii)とCook’s distanceで影響観測を特定。高レバレッジかつ大残差の点はモデルを大きく歪める可能性がある。

統計的検定(よく使われるもの)

  • 正規性検定:Shapiro-Wilk、Anderson-Darling、Kolmogorov-Smirnov。ただし大サンプルでは有意になりやすく、視覚的評価と組み合わせる。

  • ヘテロスケダスティシティ検定:Breusch-Pagan検定、White検定。帰無は等分散。

  • 自己相関検定(時系列データ):Durbin-Watson、Ljung-Box。残差の自己相関はモデル記述不足や時系列モデルの必要性を示す。

  • 影響点検出:Cook’s distance、DFBETAS、Hat values。閾値は経験則(例:Cook’s D>4/n)を用いるがコンテキスト判断が必要。

問題の原因と実務的な対処法

  • 非線形性:説明変数に対する関数形が不適切。対処—変数の非線形変換(多項式、対数、Box-Cox)、部分的に非線形なモデル(GLM、GAM)、あるいは機械学習モデル(決定木、ブースティング)への切替。

  • ヘテロスケダスティシティ:OLSの標準誤差が偏る。対処—重み付き最小二乗(WLS)、分散構造をモデル化する(GLS)、ロバスト分散推定(HC: White 標準誤差)。

  • 自己相関:モデル誤差の時系列構造。対処—ARMAや状態空間モデルを導入、もしくは誤差構造を考慮した推定(GLS)。

  • 外れ値・影響点:データエラー、特殊事象、モデル不適合。対処—データ検査と訂正、ロバスト回帰(Huber、RANSAC)、外れ値を分離して別モデル化。

実装上のポイント(Python / R の事情)

Pythonではstatsmodelsが古典的な回帰診断機能を提供し、OLS結果から残差、影響量(get_influence)、各種検定が利用可能です。scikit-learnは主に予測フォーカスで標準的な統計的診断は少ないため、残差解析はstatsmodelsやscipyを併用します。Rはlmオブジェクトのplot(lm)やinfluence.measures、carパッケージ(ncvTest、outlierTest)など充実しています。

時系列モデルにおける残差分析の特殊性

時系列では残差の自己相関が最重要。ホワイトノイズ(期待される残差)からの逸脱はモデル不足を示唆します。Ljung-Box検定、ACF/PACFプロットで残差がランダムか検査し、必要ならARIMAや季節調整、外生変数の導入を検討します。また、フォーキャスト残差の分布が時間とともに変わるようならモデル再学習や状態空間モデルの採用を検討します。

機械学習モデルと残差分析

決定木系やニューラルネットは誤差の分布や偏りを残差分析で検出できます。特に以下をチェックすると良いです:残差の入力変数依存性(ある特徴に対して体系的に誤る)、クラスごとの残差分布(分類の確率出力の誤差)、時間や地理などのメタデータに対する残差ドリフト。これらは公平性(公平性バイアス)、データドリフト検出、モデル再学習のトリガー設計に役立ちます。

運用(MLOps)的観点:残差の監視とアラート設計

  • 分布監視:残差の平均、分散、歪度の時間変化を監視し、閾値超過でアラート。

  • セグメント別性能:顧客セグメントや地域ごとの残差分布を監視し、特定セグメントで誤差が偏っていないかチェック。

  • 外れ値率の監視:単位時間あたりの極端な残差件数の増加はデータ取得・前処理の異常を示唆。

  • モデル再学習トリガー:残差ドリフトが持続する場合、自動的に学習データを再評価して再学習フローを開始。

実務的チェックリスト(モデル構築時)

  • 残差 vs 予測値散布図とQ-Qプロットを確認する。

  • レバレッジとCook’s distanceで影響点を洗い出し、その原因を調査する。

  • ヘテロスケダスティシティの検定を行い、必要ならロバスト標準誤差やWLSを適用する。

  • 時系列なら残差の自己相関を検査し、モデル誤差構造を明示化する。

  • 機械学習では特徴ごとの残差傾向を可視化し、入力依存バイアスを検出する。

よくある誤解と注意点

  • 残差が正規でなければモデルが無価値というわけではない。予測精度が重要な場合は正規性より予測性能を重視する判断もある。

  • 統計検定はサンプルサイズに敏感。大サンプルで小さな逸脱が有意になることや、小サンプルで大きな問題が検出されないことがある。

  • ある一つの診断だけで判断せず、複数のプロット・検定・ドメイン知識を組み合わせること。

まとめ:残差分析を実務に取り入れる指針

残差分析は単なる可視化作業ではなく、モデルの仮定検証、問題点の早期発見、改善方針の選定に不可欠です。開発段階では各種プロットと検定をルーチン化し、運用段階では残差に基づく監視・アラート・再学習トリガーを設計してください。統計的検定結果は解釈に注意を払い、ロバストな手法や分散構造のモデル化など複数の対処法を検討することが実務上の成功の鍵です。

参考文献