YutaroOgawa / causal_book

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

【オリエンテーションルールによる方向づけその1】および【独立性検定の手順】 #39

Open wakamatsuikuma opened 1 year ago

wakamatsuikuma commented 1 year ago

先日、マイナビ書籍編集部様経由で質問させていただいたものです。 丁寧なご回答ありがとうございました。 しかしいただいた回答が、 ・1点目について、質問がなぜか私が送らせていただいた内容と違う(入力したと思っていた文字が無かったり、2点目の補足が混ざっていたり) ・2点目について、私の誤字があり意図が伝わっていない という状況であります。

こちらからのご相談を推奨いただきましたので、教えていただければと思います。 以下に質問を再喝させていただきます。よろしくお願いします。 また私、因果分析というものをこちらの書籍から勉強をし始めましたので、 見当違いの点あるかと思いますがご容赦いただければと思います。 (githubの使い方が慣れていないのですが、このように複数の質問は分けた方が良ければおっしゃってください。)

( ご質問 )

  1. (P176~P177)オリエンテーションルールによる方向づけその1 Y->Y3<-Y4は検証する必要があるのではと思いました。本書では取り上げられていませんが、v字構造になっているかと。 またした場合、Y4->Y3となり因果の方向が逆になってしまうかと思いました。 このあたりについて補足などいただきたく。

  2. (第7章においての独立性検定の手順について) 条件付き独立性の検定で、検定する変数の順番が変わればエッジが切れる・切れないが変わらないでしょうか? 例えば、xに対して関連のある変数としてZ、Y、Y4がある場合にx-Zが切れるか・切れないかを考えるとします。CI(x, Z | Y)がFalse、CI(x, Z | Y4)がTrueだとx-Zは切れてしまう。しかし先んじてY4に対しての検定を行い、CI(Y4, x | Y )がTrueなどの結果でY4-xが切れていたとすると、CI(x, Z | Y4)は実施されずにx-Z(※)は切れないということにならないでしょうか? または私が本手法の理解を誤解しているのでしょうか。 (書籍で紹介されている擬似データのpd.cut()をpd.qcut()で5分割に変更した生成データで因果探索を進めていくと確認した現象になります。ですので、書籍内容の範囲を超えた質問となっているかもしれないです。) (※)一度目の質問ではここがx-Y4となっておりました。

YutaroOgawa commented 1 year ago

@wakamatsuikuma さま

返信が遅くなり、大変申し訳ございません。

  1. について

p.176

図7.5.8 の左側に現在のスケルトンを記載します。ここでv字構造は、x―Y―Y3 、Z―Y―Y3 、Y―Y3―Y2、Y2―Y3―Y4、の4通りが存在します。これらについて独立性の検定を実施します。

につきまして、ご指摘いただきました通り、Y―Y3―Y4の組み合わせを失念しておりました。 そして、この組み合わせについて独立性の検定を実施するとFalseと棄却されます。

よって、ご指摘いただいた通り、方向付けはY→Y3←Y4となってしまい、Y3→Y4が逆向きの結果になってしまいました。

(補足) 限られたデータ数で、書籍の解説の流れに合うように本書ではデータの作り方を調整して、データ数やノイズの大きさを決めていました。そのため、今回失念していた部分については、残念ながらデータの生成とは逆向きになっていました。

実際のデータでも、今回のように真の生成の向きとは矢印が逆になったり、常に因果関係が完璧に求まると保証されてはいない点をご注意くださいませ。

YutaroOgawa commented 1 year ago
  1. につきまして

文面に頂戴しました通り、5分割に変更した場合、xに対して、Z、Y、Y4が関連しているとき、

CI(x,Y4|Y)=True となり、x-Y4が切れた。 すると、x-Zの関係性は切れないのか?ですが、 この場合ですと、CI(x,Z|Y)=Fale であるため、xとZは切れないという結果になりますね。

すなわち、ご指摘の通り、検定の順番によって、xとZが切れたり、そちらではなく、x-Y4が切れる状況が発生しています。 状況に対する解釈は、私も同様になります。

今回データを5cutにしてみると発生したとのことで、様々試していただき、誠にありがとうございます。 データのcut数、cutの種類によっても因果分析の結果は変わってしまうことはあり得ます。

そして今回のような「切り方の順番で結果が変わる」ようなケースにおいて、私の知る限り、どうするのが正解なのか、きちんと解説している文献を見たことがありません。

力不足で大変申し訳ございませんが、以上の私からできる回答となります。どうぞよろしくお願いいたします。

wakamatsuikuma commented 1 year ago

お忙しい中、書籍の範囲を超える様な部分に関してもご回答いただき感謝いたします。 また補足および経験的な回答までいただき、非常に勉強になります。 引き続き勉強させていただきます。

今後ともよろしくお願いします。 ありがとうございました。