6  機械学習の活用: 残差回帰

\(X\) の数が多い場合、OLSを用いた分布の特徴のバランスは、難しくなります。 これはどのような特徴をバランスさせるのか、研究者の裁量の余地が大きくなりすぎるためです。 このような研究者による推定式の定式化に起因する推定結果のブレは、Model Uncertainly (Varian 2014) とも呼ばれ、分析の信頼性を脅かす大きな要因となっています。

このような問題への対応として、機械学習を有効活用した、よりデータ主導のアプローチが注目されて来ました (Varian 2014; Urminsky, Hansen, and Chernozhukov 2019)。 近年、機械学習の中でも教師付き学習の手法を、バランス後の比較に応用する方法について理解が急速に進みました。 その中で教師付き学習 (より一般にはノンパラメトリック/データ適合的な推定) が持つ弱点である「収束の遅さ」1を補完する方法が開発されています。 このような方法を用いることで、信頼区間の近似計算など、母集団への含意がより明確な推定が可能となります。

本章は、OLSの直接的な拡張と解釈できる 残差回帰 への応用を紹介します2

6.1 OLSの一般化

OLSを用いて、\(X\)の分布を完全にバランスさせるには、以下のようなモデルを推定する必要があリます。

\[Y\sim D + \underbrace{f(X_1,..,X_L)}_{Xについての極めて複雑な式}\] \(f(X_1,..,X_L)\) は、一般に無限個のパラメタを持つ式となります。

例えば1つの連続変数, \(X_1\), のみのバランスが目標であるとします。 この場合でも、推定式は以下のように無限個のパラメタを持つ式として定式化できます。

\[f(X_1)=\underbrace{\beta_0 + \beta_{1}X_1 + \beta_{2}X_1^2 + \beta_{3}X_1^3...}_{無限和}\]

このような無限個のパラメタを持つ式を、OLSで推定することは不可能です。 あるいはパラメタの数が有限個であったとしても、データの事例数を超えると推定が不可能になります3

6.2 残差回帰

残差回帰は、\(Y\sim D + f(X_1,..,X_L)\) が以下のように書き換えることができることに基づいています。

\[\underbrace{Y - (X内での)Yの平均値}_{Yの残差}\sim \underbrace{D - (X内での)Dの平均値}_{Dの残差}\] すなわち \(Y\) の残差と \(D\) の残差を単回帰すれば、バランス後の平均値の比較を達成できます。

残る課題は、\(Y\)\(D\) の平均値をデータから推定することです。 このような推定は、\(X\) が多くある場合、困難な課題でした。 以下、OLS推定を再解釈することで、どのような問題が生じるのか示します。

6.2.1 OLSの再解釈

FWL 定理 (wiki) は、OLSも残差回帰として解釈できることを示しています。

OLSによって推定された\(D\)の係数値は、以下の手順で計算された値と厳密に一致します。

FWL(Frisch–Waugh–Lovell) 定理
  1. Y/D/Xを設定

  2. 全データを用いて、\(Y\) , \(D\) の平均値の推定値 \(f_Y(X), f_D(X)\)\(Y\sim\beta_0 + \beta_1X_1 +.. + \beta_LX_L\) および \(D\sim\beta_0 + \beta_1X_1 +.. + \beta_LX_L\) をOLS推定することで算出

  3. 残差 \(Y - f_Y(X)\)\(D - f_D(X)\) を計算

  4. 残差同士を回帰する: \(Y - f_Y(X)\sim D - f_D(X)\)

\(X\) が多い場合、 Step 1.が大きな問題を抱えます。 一般にパラメタ \((\beta_0..\beta_L)\) の数が、事例数に近い値になると、 平均値の推定値は\(Y\),\(D\)の実際の値に限りなく近づいていきます。 このような現象は、過剰適合、あるいは過学習と呼ばれています。

機械学習の応用では、Step 1.を\(Y\)\(D\)\(X\)から予測する問題と捉えます。 このような予測問題においては、OLSも含めたさまざまな推定手法を用いることができます。

6.2.2 教師付き学習の応用

ある一つの連続/カテゴリー変数 \(Y\)\(D\) と(大量の)変数 \(X\) の関係性の推定は、教師付き学習の中心的な研究課題です。 中でも、(\(X\)内での) \(Y\)\(D\) の平均値の推定については、膨大な研究成果が蓄積されています4

一般に教師付き学習は、ある結果変数の予測を目的としています。 予測の精度を平均二乗誤差で測定する場合、理論上最善の予測値は、(\(X\)内での)母平均であることが容易に証明できます。 このため、(\(X\)内での)母平均を近似できるモデルの推定が、教師付き学習の実質的な目標となります。 この性質を利用することで、既存の機械学習の方法で推定された予測モデルを、平均値を近似するモデルとして利用することができます。

予測モデルを推定する際には、Section 6.3 で議論する優れた推定上の性質を達成するために、交差推定を活用することが、一般に推奨されます (Naimi, Mishler, and Kennedy 2023)5

交差推定 (Cross Validation)
  1. データを細かく分割 (第1,..,10 サブグループなど)

  2. 第1サブグループ以外で推定して、第1サブグループの予測値を算出

  3. 第2…サブグループについて、繰り返し、全事例に対して予測値を算出

推定に用いるアルゴリズムとしては、複数の予測モデルを組み合わせるStacking法が推奨されます(Ahrens et al. 2025; Naimi, Mishler, and Kennedy 2023)。 これは多くの社会分析において、高い予測性能を期待できるアルゴリズムを事前に選択することが困難であるためです。

交差推定を活用した、残差回帰の具体的な推定手順は以下となります。

機械学習を活用した残差回帰
  1. Y/D/Xおよび予測に使用するアルゴリズムを設定

  2. 交差推定を用いて、YとDを予測するモデル \(f_Y(X)\)\(f_D(X)\) を推定する

  3. 残差 \(Y - f_Y(X)\)\(D - f_D(X)\) を計算する

    • 予測誤差とも解釈できます。
  4. 残差同士を回帰する: \(Y - f_Y(X)\sim D - f_D(X)\)

6.3 母集団の推定方法

交差推定を併用した残差回帰の利点は、「母集団上で\(X\)を完全にバランスさせた後に計算した平均差」について、推論が可能なことです。 特に交差推定とStackingなどの柔軟な方法で予測モデルを推定すれば、緩やかな仮定のみで信頼区間を近似計算が可能です (Chernozhukov et al. 2018)

6.4 応用上の課題

機械学習を活用した残差回帰は、OLSの持つ幾つかの問題点を改善します。

十分な事例数があれば、「母集団上で\(X\)を完全にバランスさせた後に計算した平均差」を近似するため、負の荷重問題は生じません。

定式化そのものではなく、推定方法を選ぶため、Researcher degrees of freedom を適切に軽減できる可能性があります(Urminsky, Hansen, and Chernozhukov 2019; Ludwig, Mullainathan, and Spiess 2019) 。 特に複数の推定方法を組み合わせるStacking法とシード値の適切な管理6によっては、研究者への依存度を低下させられます。

問題点としては、ターゲットの解釈が容易ではないことが知られています。 母集団上での残差回帰は、\(X\)を完全にバランスさせますが、そのターゲットは、以下となります。

\[\frac{(X内での)D=1の割合\times (X内での)D=0 の割合}{(X内での)D=1の割合\times (X内での)D=0 の割合の平均値}\]

このようなターゲットは、Overlap Weightとも呼ばれています。

Overlap Weightをターゲットとすると、\(D\)のばらつきが大きいグループの平均値を、最終的な比較結果に強く反映します。 \(D\)のばらつきが無いグループ (\(D=0\) または \(D=1\) しか存在しない) の加重は0であり、最終的な比較結果に一才の影響を与えません。 このためOverlapの仮定 (Important 1.1) を「必ず」満たすことできます。

このような優れた性質を持つ一方で、このターゲットをどのように解釈すればいいのか、一般に不透明です。 特に\(X\)間での\(D\)の偏りが大きい場合、Overlap Weightのばらつきも大きくなり、解釈が一層難しくなります。 Zhou and Opacic (2022) など、Overlap Weightの解釈を提供する研究は行われていますが、確立された解釈は現状ありません。

6.5 Rによる実践例

  • 以下のパッケージを使用

    • readr (tidyverseに同梱): データの読み込み

    • ddml: 残差回帰の実施

6.5.1 準備

ddmlパッケージの関数を用いる場合、事前にYとDはベクトルとして、Xは行列として定義する必要があります。

set.seed(111) # シード値を固定

Data = readr::read_csv("Public.csv")

Data = dplyr::mutate(
  Data,
  D = dplyr::if_else(
    TradeYear == 2022,1,0
  ) # 2022年に取引されれば1、2021年に取引されていれば0
)

Y = Data$Price # Yの定義
D = Data$D # Dの定義
X = Data |> 
  select(
    District,
    Size,
    Tenure,
    StationDistance
  ) |> 
  data.matrix() # Xの定義

6.5.2 残差回帰

残差回帰は、ddmlパッケージのddm_plm関数を用いて実装できます。

Model = ddml::ddml_plm(
  y = Y, # Yの指定
  D = D, # Dの指定
  X = X, # Xの指定
  learners = list(
    list(fun = ddml::ols), # OLSを使用
    list(fun = ddml::mdl_ranger) # RandomForestを使用
  ),
  shortstack = TRUE, # 簡略化した推定手順を指定
  silent = TRUE # Messageを非表示
  )

Model |> summary()
PLM estimation results: 
 
, , nnls

            Estimate Std. Error t value Pr(>|t|)
(Intercept)   -0.374      0.157   -2.38 1.73e-02
D_r            3.730      0.328   11.38 5.01e-30

summary関数は、推定値 (Estimate)、標準誤差 (Std. Error)、t値 (t value)、 p値 (Pr(>|t|)) を報告しています。 バランス後の平均差は、D_rです。

95\(\%\)信頼区間は以下のように計算できます。

Sum = summary(Model)

Est = Sum[2,1,1] # 推定値
SD = Sum[2,2,1] # 標準誤差

c(Est - 1.96*SD, Est + 1.96*SD) # 信頼区間の下限、上限
[1] 3.088172 4.372682

  1. 「収束」の具体的な定義に関心がある方は、wikipediaの記事などを参照ください。↩︎

  2. 機械学習は、より幅広い推定方法に応用できます。一般的な入門としては、Chernozhukov et al. (2024)を推奨します。他の入門資料としても、Wager (2024)Schuler and Laan (2024)Ichimura and Newey (2022)Fisher and Kennedy (2021)Hines et al. (2022)Kennedy (2024)Renson et al. (2025) などの優れた教材が利用できます。簡潔な入門としては、Dı́az (2020) がお勧めです。↩︎

  3. パラメタと事例数、推定精度の詳細な関係性については、Chernozhukov et al. (2024) の1章とその引用文献を参照ください。↩︎

  4. 詳細は、James et al. (2021) などを参照ください↩︎

  5. 交差推定の利点/欠点については、Chen, Syrgkanis, and Austern (2022) などで重点的に検討されています。↩︎

  6. Naimi, Yu, and Bodnar (2024), Schader et al. (2024); Zivich (2024)↩︎