統計的因果推論 まとめ④

統計的因果推論 まとめ①

統計的因果推論 まとめ②

統計的因果推論 まとめ③


まとめ③では統計的因果推論を実践するためのツールとしてDAGと回帰分析をとりあげた。今回は残りの「層化解析法」「マッチング」「傾向スコア」についてそれぞれ簡単に触れ、統計的因果推論のまとめを終了としたい。


層化解析法

層化解析法とは、交絡因子(共変量)の影響を排除するために、観測値をいくつかの層に分類して解析する方法のことである。統計的因果推論の枠組みを知らない場合にも、年齢層ごとに分析する、時間帯に分けて分析する等、自然と層化解析を行っていることだろう。

例えば、喫煙率と心臓病による死亡率の調査において、単純な比較では、当たり前ではあるが喫煙群のほうが心臓病による死亡率が高い。ただし、喫煙群のほうには高齢者がやや多く、年齢が交絡因子となって結果にバイアスをもたらしているため、年齢層ごとの人数の比率を合わせる(=標準化する)処理を行わなければ、喫煙による死亡率への影響を正しく評価することができない。

ちなみに年齢年代は交絡因子になりやすいので、最もはじめに注意すべきである。



上図の例では、喫煙率は減少傾向にあるが、肺がん死亡率は逆に上昇傾向にある。とはいっても「喫煙率が上がれば上がるほど肺がん死亡率を下げることができる」とか「喫煙と肺がんの間に因果関係はない」という結論を導き出すことができないことに注意したい。記事でも指摘されているように、日本は高齢化が進んでいるため、喫煙とはなく肺がん死亡率は上昇している。年齢という交絡因子を調整しなければ正しく因果関係を理解・評価することはできない。


層化解析法は、処置群と対照群をある交絡因子(年齢等)によって層に分ける手法のことである。交絡因子の数が多い場合は、層が多層になってしまうが、層の数が多くなればなるほど各層内の個体数が少なくなるため、平均値などの推定精度が悪くなってしまう。層の数を5としておけばバイアスの90%は除去できるとして、層の数は5程度にするべき、という研究もあるそうだ。交絡因子が多くなると、層の数が増え、層化解析法は困難になる。その場合、傾向スコアにより(5個程度の)層に分けるというアプローチが適用可能である。


マッチング

マッチングとは、結果に影響を及ぼすと思われる背景因子(性別、年齢、社会的地位など)が似た個体を選び出してペアとし、(ランダムに)片方を処置群、もう片方を対照群として一対比較を行う方法。マクネマー検定や対応のあるt検定を用いる。マッチングは、層化解析法における、各層の度数が1の場合に等しい。

例えば10人の被験者(それぞれ 20歳、21歳、34歳、35歳、36歳、40歳、42歳、42歳、65歳、67歳 とする)に新薬投与の治験を行いたい場合に、[20歳、21歳]、[34歳、35歳]、[36歳、40歳]、[42歳、42歳]、[65歳、67歳]のペアを作り、それぞれ片方には実際の新薬を、もう片方にはプラセボを投与すれば、年齢による影響を取り除いた新薬の評価を行うことができる。

マッチング変数の個数が少なければ、対応のある場合の群比較・平均値比較等を行えば試してみるのが良いが、マッチング変数の個数が多くなってしまった場合は傾向スコアによるマッチングを試してみよう。

傾向スコアによるマッチングでは、距離の定義(ユークリッド距離/市街地距離/マハラノビス距離)やマッチング相手の選び方(貪欲マッチング/最適マッチング)に任意性がある。マッチング後の結果を見て瑕疵があるようであれば別の方法でやり直す。


傾向スコア

傾向スコアの定義:処置の割付けを表すダミー変数 Z、および観測された共変量 X に対し、 X が与えられたときに個体が処置に割付けられる確率を傾向スコア e(X) という。 

        e(X) = P(Z=1 | X) 


定義から、傾向スコアは共変量 X が与えられた下での条件付き確率 P(Z=1 | X) であるとみなすことができる。この確率はロジスティック回帰によって推定される。もちろんロジスティック回帰以外にもプロビットモデル、分類回帰木、NN、一般加法モデル、種々の機械学習モデルなどが提案されている(らしい)が、統計ソフト等を用いた傾向スコアの推定は、その種のメカニズムの評価ではなく、単に e(X) を精度良く推定することに主眼が置かれていることが多いため、注意が必要である。

傾向スコアは共変量 X のもつ処置の割付けに関する情報をすべて(1次元の値に)集約したものとみなすことができる。 傾向スコアの値が等しい個体をマッチング(または層化)した場合、そのペア(または層内)における処置の有無はランダムであると言って良いのだ。例えば “風邪薬の開発” の例では、年齢と持病の有無を共変量とし、傾向スコアを算出。 処置群(新薬を飲んだ層)の個体と対照群(偽薬を飲んだ層)の個体を傾向スコアでマッチングすれば、その個体が処置群であるか対照群であるかはランダムに割り付けられたとみなすことができる。マッチングでの例と比較してほしい。マッチングは実験の計画段階で処置群と対照群をペア内でランダムに設定していた。この例の場合、計画段階ではランダム化されていなかった処置群と対照群の選定を、マッチングによって、ランダムに割り付けられたとみなすことができることになる。


傾向スコアの算出は“共変量 X をいかに選ぶか”が最重要ポイント。基本的には傾向スコアの算出のためになるべく多くの共変量を推定モデルに取り入れるべきとされている。ここではいわゆる多重共線性はそう問題とはならない(各係数の解釈上は大きな問題となりうるが、予測の観点からはそれほど問題は大きくない。また、余分な変数をモデルに取り込むリスクよりも、重要な変数をモデルに取り込まないリスクのほうが大きい)。ただし、処置によって影響を受ける(受けた)変数はモデルに含めるべきではない。これを機械学習ではTarget Leakageと呼ぶ。


統計的因果推論との向き合い方

統計やAIに関する基本的な知識は前提とした上で、もう一歩踏み込んだ議論をするためのツールとして、統計的因果推論を頭の片隅に入れておきたい。また、因果推論とは意識していなかったものの、普段から回帰分析や層化解析法なんかは行っていたはず。因果推論的な視点からも解釈できるようにしたい。そうした際、検定の使い分けや傾向スコアの意味なんかは検証・分析を進める上での参考となるだろう。

回帰分析、層化解析法、マッチング、傾向スコア等、様々なツールがあるが、実際に因果推論を実践する際にはDAGを描いて議論するところから始めよう。DAGは分析者の事象に対する認識を表している。正しいDAGを描くためには、何が目的なのか、何が共変量となりうるのかを正しく理解する必要がある。事象に対するドメイン知識(背景知識)を獲得することが何より大切である。


コメントを投稿

0 コメント