YutaroOgawa / causal_book

書籍「作りながら学ぶ! PyTorchによる因果推論・因果探索」の実装コードのリポジトリです
MIT License
113 stars 32 forks source link

【質問】因果推論の際に中間変数を入れるべきではないということについての質問 #34

Open KENJI-JIN opened 3 years ago

KENJI-JIN commented 3 years ago

大変個人的な質問になりますが、ご回答いただけると助かります。

P64で「因果推論の際に中間変数を入れるべきではない」と記述されています。 このことに関しては納得しているのですが、下図のような状況の時にどう考えるべきかアドバイスを頂けると助かります。

本に記載の方法ではなくTree系のアルゴリズムとSHAPで要因分析をしようとしています。 背景としましては 「因果推論の際に中間変数を入れるべきではない」の考えのもと、分析すると材料Aは目的変数の物性値を下げる 効果を示しており、目的変数の物性値を上げるためには材料Aを入れるべきではないということになります。

しかし、材料Aは目的変数の物性値を上げるはずという過去の知見があり、その理由は中間物性を規格内に収める 必要があり、中間物性を規格内にした場合は材料Aを入れたほうが目的変数の物性が上があるということでした。

そこで「因果推論の際に中間変数を入れるべきではない」の考えから外れ、中間物性も説明変数に入れたところ、 中間物性の変数に目的変数へのマイナスの効果がとられたせいか、材料Aは目的変数に対してプラスの効果を示す という結果になりました。 (材料Aは中間物性の値を上げ、中間物性が上がると目的変数の物性が下がります。)

この場合、小川様なら、目的変数の物性を上げるために材料Aを入れるべきか入れないべきかどう判断されますでしょうか? また、追加でやるべき分析方法等あればご教授いただけると助かります。

image

YutaroOgawa commented 3 years ago

@KENJI-JIN さま

ご質問ありがとうございます。

私の説明が少し甘い点もあり、混乱を招いていて申し訳ございません。

より正確に説明すると、 「因果推論の際に中間変数を入れるべきではない」 は、 「因果推論の際に説明変数の効果を全て吸収する中間変数は、説明変数の目的変数への因果効果を求める際に入れるべきではない」

です。

すなわち、上記の図では、材料Aによる効果が「中間物性」に全て吸収されるとすれば、 材料Aの目的変数の物性値への因果効果の推定に、「中間物性」を入れません (入れると、全部中間物性に効果を持っていかれるので、材料Aからの因果効果は0になります)

一方で、上記のように材料Aから目的変数の物性値への因果のパスが中間物性を経由する以外にも存在するのであれば、中間物性は入れても変ではない(気がします)。

とくに、右図で、「中間物性」へ「その他の実験条件」からパスが存在しているので、 これはむしろ中間物性を入れないといけないと思います。 (このパスがなければ、中間物性をいれなくても、材料Aの効果は正になるのだと思います。。。)

ただし、上記の右図では、DAGがいろいろなところに生まれているので、その点には気をつけ、

式としては

「目的変数の物性値」= f(材料A、中間物性、その他の実験条件) 

と組み、fにはtree系の機械学習モデルを組むことになるかと思います。

※右図において、未観測の変数が中間物性と目的変数の物性値の交絡因子になっているのは、正確な因果推論を妨げますが、分からない変数である以上、どうしようもないところがあり、ひとまず諦めます(そうした未観測交絡因子の影響を推定する研究もあります)。

私も完全にこれが正解ですと言い切る自信はないのですが、ひとつ参考にしていただければ幸いです。

どうぞよろしくお願いいたします。

KENJI-JIN commented 3 years ago

個人的な質問にも関わらず、ご丁寧に回答いただきありがとうございます。 大変お手数ですが、下記の内容をもう少し詳しく教えていただけないでしょうか?

とくに、右図で、「中間物性」へ「その他の実験条件」からパスが存在しているので、 これはむしろ中間物性を入れないといけないと思います。

YutaroOgawa commented 3 years ago

@KENJI-JIN さま

ありがとうございます。 右図で「中間物性」は、説明変数「材料A」と目的変数「目的の変数の物性」の中間変数ではない、という点です。

なぜなら、「その他の条件」からパスが存在し、単に2つの変数の間にある、無視すべき変数(中間変数)とは異なります。 (書籍でも2つの変数の中間変数は他からの因果の矢印は存在しないかと思います)

そのため、この「中間物性」は

そもそも議論の最初の 「因果推論の際に中間変数を入れるべきではない」

の中間変数には該当しないです。なので、無視しません。

ふわっとした表現になりますが、これが回答になるかもしれません。

KENJI-JIN commented 3 years ago

ありがとうございます。なんとなくは理解できました。 何度もすみませんが、最後に下記の質問だけご回答いただけないでしょうか? 頂いた回答を整理させていただくと①と③は下図の通りで合っていると思っています。 ②についても下図の通りでしょうか?

image

YutaroOgawa commented 3 years ago

@KENJI-JIN さま

ありがとうございます。いえいえ、いくらでもディスカッションはありがたいものです。 私も、他の読者の方々にも参考になります♪

上記の図において、②の場合、変数Aから目的変数への効果を因果推論したい場合に、

・変数Cの影響も変数Aに組み込んだうえで、変数Aから目的変数への効果を求めたい場合は、変数Cは取り除きます

・変数Cの影響は別に考慮して、変数Cありきの世界観で変数Aから目的変数への効果を求めたい場合は、変数Cは残します

となります。 (なかなか、どの本を見ても、このような事例の細かなところまで解説されているものはないですね。。。)

引用文献がなく、私の一意見となりますが、どうぞよろしくお願いいたします。

KENJI-JIN commented 3 years ago

ご回答ありがとうございます。 お陰様で考え方が理解できました。 もう少し勉強して理解を深めていきたいと思います。

YutaroOgawa commented 3 years ago

@KENJI-JIN さま

こちらこそ、実践的な質問をありがとうございます。

また、他の読者のみなさまからの、本件のご意見なども大歓迎です。

素敵なスレッドを提供いただき、誠にありがとうございます。