🧙‍♂️

行列補完(Matrix Completion)による因果推論

に公開

はじめに

この記事は以下の論文に基づき議論を進めます.

https://www.tandfonline.com/doi/full/10.1080/01621459.2021.1891924

https://arxiv.org/abs/1710.10251

施策の効果検証において,「もし施策を行っていなかったらどうなっていたか」という反実仮想を推定することは,データサイエンティスト,データアナリストにおける最も重要な,かつ困難なタスクの一つです.

例えば,
地域や店舗単位の施策評価において,合成コントロール法(Synthetic Control Method: SCM)は現在,多くの現場で用いられていると思います.しかし,実務データに対してSCMを適用しようとしたとき,思うようにいかず頭を抱えた経験はないでしょうか.

例えば..

「対象店舗の売上が突出しており,他の店舗の平均では再現できない」

「データの一部に欠損があり,アルゴリズムが回らない」

「介入時期が店舗ごとにバラバラで,統一的な分析が難しい」

近年,Athey et al. (2021) らによって提唱された「行列補完(Matrix Completion)」を用いたアプローチは,これらの課題に対する強力な解答となります.

そのアイデアは非常にシンプルかつ画期的です.
それは,「因果推論の問題を欠損値予測と同じ構造の問題として解く」というものです.本記事では,この手法のメカニズムと,実務における具体的なメリットを解説します.

2.従来のSCMの限界:「凸包」の壁

なぜ新しい手法が必要なのでしょうか?
まずは従来のSCM(Abadie et al.)の仕組みと比較して,その限界を考えます.
従来のSCMは,施策を行っていないユニット(対照群)の加重平均によって,処置群の反実仮想を推定します.
数式で表すと以下のようになります。

\hat{Y}_{treatment}(t) = \sum_{j \in Control} w_j Y_j(t)

ここで重要なのは,重み w_j に対する以下の制約条件です.
w_j \ge 0 (重みは非負)\sum w_j = 1 (重みの合計は1)
この制約により,合成された反実仮想は必ず対照群のデータが作る凸包の内側に存在しなければなりません.

実務で直面する「外挿」の壁この「凸包の制約」は,実務においてしばしば致命的なボトルネックとなります.

例えば,「全店舗の中で最も売上が高い店舗」で施策を行い,その効果を検証したい場合を想像してください.

他のどの店舗(あるいはその加重平均)を持ってしても,売り上げ最大店の売上規模を再現することはできません.

従来のSCMでは,常に過小評価されたベースラインしか描けず,施策効果を正しく推定できないのです.

また、データセットに欠損値が含まれている場合,従来のSCMでは前処理で欠損を埋めるか,そのユニットを除外する必要があります.

これらの課題を解決する方法が,低ランク近似の考え方を取り入れた

行列補完法(Matrix Completion)

です.

3.反実仮想 = 欠損値

行列補完アプローチでは,問題を全く異なる視点から捉え直します.

それは,観測されたデータを行列 Y (行:ユニット,列:時間)と見なし,

処置後の期間の値は欠損している

と考えることです.

この構造は,推薦システムで有名な「Netflix問題」と完全に一致します.

https://en.wikipedia.org/wiki/Netflix_Prize

Netflixが解きたいのは,「あるユーザーが,まだ見ていない映画にどのような評価をするか?」という予測問題です.

Netflixのアルゴリズムは,ユーザーの好みや映画の特徴といった潜在因子(Latent Factors)を学習することで,空欄を埋めます.

因果推論においても同様に,データ全体に低ランク構造があると仮定します.

つまり,一見複雑に見える多数の店舗の売上推移も,

実は少数の共通要因(景気トレンド、季節性、競合の動きなど)の線形結合で説明できる

と考えるのです.

この仮定に基づ,観測されているデータ(介入前データ+対照群データ)のみを使って行列全体の構造 L を学習し,その構造を使って欠損部分(=もし介入がなかったら)を補完します.

4.数理的メカニズム:核ノルム最小化

では,具体的にどのように良い感じの行列を復元するのでしょうか.
単に観測データにフィットさせるだけなら,いくらでも複雑なモデルが作れてしまいます.
そこで登場するのが、核ノルム最小化による正則化です.

目的関数

Athey et al. (2021) で提案されている推定量は,単に行列全体を正則化するのではなく,「固定効果」と「低ランク構造」を分けて推定します.
目的関数は以下のように定式化されます .

(\hat{L}, \hat{\gamma}, \hat{\delta}) = \arg \min_{L, \gamma, \delta} \left[ {\frac{1}{|\Omega|} \sum_{(i,t) \in \Omega} (Y_{it} - L_{it} - \gamma_i - \delta_t)^2} + \lambda {\| L \|_{*}}\right]

ここで登場する変数は以下の通りです.

L: 推定したい低ランク行列.これだけに正則化(ペナルティ)をかけます.

\gamma_i: ユニット固定効果

\delta_t: 時間固定効果

\| L \|_{*}: 核ノルム(行列 L の特異値の総和)

なぜ「核ノルム」なのか?

ここが理論の肝です.
本来,私たちがやりたいのは

行列のランク(Rank)を最小化することによって,最もシンプルな構造を見つけること

です.
しかし,ランクの最小化は計算量的に非常に困難(NP困難)です.(NP困難ってなに?という方は以下の資料が分かりやすいかもしれません.)

https://speakerdeck.com/umepon/what-is-the-np-hardness

そこで,ランクの凸緩和である「核ノルム」を利用します.

例えばLasso回帰と比較すると

変数選択(変数の数を減らしたい)

\rightarrow L0ノルム最小化は難しい

\rightarrow L1ノルム(Lasso)で代用

行列補完(ランクを減らしたい)

\rightarrow ランク最小化は難しい

\rightarrow 核ノルムで代用

核ノルムは行列の特異値の総和で定義されます.
これをペナルティ項として加えることで,特異値を全体的にゼロに近づけ(=ランクを低く抑え),ノイズを削ぎ落としつつ,データ背後の本質的な構造のみを抽出することが可能になるのです.
結果として得られた \hat{L} の,処置群・処置後期間に対応する値が,求めていた「反実仮想」となります.

5.手法の比較

彼らは,いくつかの手法が以下の目的関数を最小化していると一般化しました.

Q = \frac{1}{|\mathcal{O}|} \| P_{\mathcal{O}}(Y - AB^\top - \text{FixedEffects}) \|_F^2

その上で,各手法の違いを制約条件と正則化の違いとして整理しています.

水平回帰 (Unconfoundedness): 行方向の回帰を行う.N > T のケースで定義され,ランク R=T-1 と固定する制約を置く.

垂直回帰 (Synthetic Control): 列方向(縦)の回帰を行う。T > N のケースで定義され,ランク R=N-1 と固定する.

従来のSCM(Abadie et al.)は,これにさらに「重みの非負制約」と「和が1になる制約」を加えたもの.

行列補完(提案手法): ランク R を事前に決め打ちせず,またハードな制約(非負など)も課さない.その代わりに核ノルムによる正則化を用いて,データに合わせて柔軟にランクと係数を決定する.

シミュレーションデータではなく,欠損のない完全な実データを使用し,人工的にデータを欠損(=処置)させて,その値を予測させることで精度(RMSE)を評価しています.

比較対象とした手法は以下の通りです.

DID: 差分の差分法
VT-EN: 垂直回帰 + Elastic Net正則化
HR-EN: 水平回帰 + Elastic Net正則化
SC-ADH: 従来の合成コントロール法(Abadie et al. 2010)
MC-NNM(行列補完): 提案手法

以下の2つのデータセットで検証しています.
カリフォルニア喫煙データ(Abadie et al., 2010 のデータ)
設定: 38州のデータ(元々コントロール群だった州のみ)を使用.
検証シナリオ:一斉導入 (Simultaneous Adoption): ある時点からランダムに選ばれた州が一斉に処置を受けたと仮定
スタッガード導入 (Staggered Adoption): 処置の開始時期がバラバラであると仮定

結果:スタッガード導入のケースでは,VT-EN(垂直回帰)の性能が悪化する一方,MC-NNMは安定して高い精度を出した.

株式市場データ(大規模データ)
設定: 2453銘柄の10年間の日次リターンデータ
検証シナリオ: N(銘柄数)と T(期間)の比率を極端に変えてテストを行う
Thin Matrix (N \gg T): 銘柄数が多く期間が短い
Fat Matrix (N \ll T): 銘柄数が少なく期間が長い

結果:N \gg T のときは水平回帰(HR-EN)が有利,N \ll T のときは垂直回帰(VT-EN)が有利というように,既存手法は得意不得意がはっきり分かれた.行列補完はどちらのケースでも、常にベストな手法と同等の性能を発揮し,正方行列に近いケースでは両者を上回った.

5.実務上のメリット

理論が美しいだけでなく,行列補完法による因果推論は,現場のデータサイエンティストが抱える泥臭い課題に対して堅牢なのではないでしょうか.

1.凸包(Convex Hull)の制約を超えられる(外挿が可能)

従来のSCMでは,「対照群の最大値より上、最小値より下」を予測できません.しかし,行列補完は潜在因子モデルに基づいているため,学習したトレンド(因子)の組み合わせによって,対照群のデータの範囲外(外挿領域)であっても値を予測できます.

2.スタッガード(Staggered)な介入への対応

例えば,全店舗で一斉に施策を開始することができない状況があると思います.「4月にAエリア、5月にBエリア、6月にCエリア…」というように,導入時期がずれる(Staggered Adoption)ことが一般的です.
従来のDID(差分の差分法)やSCMでは,この設定を扱うために複雑な調整が必要でした.しかし,行列補完アプローチでは,「介入時期のズレ」は単なる「欠損パターンの違い」として扱われます.階段状に欠損(=処置)が発生していても,アルゴリズム側で特別な変更を行う必要はありません.単にマスク行列 M (どこが観測済みでどこが欠損かを示す行列)を渡すだけで,統一的に処理できます.

3.欠損値への堅牢性

「過去のデータを取り寄せたら、システム障害で特定期間のログが欠損していた」という状況に対して,従来のSCMでは,その期間を含むユニットを除外するか,線形補間などで無理やり埋める必要がありました.行列補完法では,「元々の欠損」も「反事実としての欠損」も区別なく,まとめて「推定すべき値」として扱えます.前処理の手間が大幅に削減されるだけでなく,恣意的な補完によるバイアスも回避できます.

5.実務上のデメリット

外挿を許容するので基本的に結果(処置効果)以外の解釈が困難です.
また,正則化パラメータによって結果が大きく変わってしまいます.

まとめ

本記事では、Athey et al. (2021) によって提唱された「行列補完(Matrix Completion)」を用いた因果推論アプローチについて解説しました.
因果推論における「反実仮想(もし介入がなかったら)」を,「行列の欠損値」とみなして,データ全体の「低ランク構造(潜在因子)」を利用することで,柔軟な補完が可能になります.

僕もこんな研究がしたいですね!

Discussion