Engineering Skills

製品開発エンジニアがデータ解析のノウハウを垂れ流します

シンプソンのパラドクス

今回はシンプソンのパラドクスを紹介します。これもよく取り上げられる割と単純な話題なのですが、データ解析を行う上で基礎として知っておいた方が良いです。

シンプソンのパラドクス

例えば下記のような、解析対象group.1及びgourp.2について、実験条件A及びBの応答を考えます。

f:id:OceanOne:20200719025546p:plain:w200

使ったデータはエクセルの一様乱数rand()を使って、以下のように生成しました。

f:id:OceanOne:20200719033117p:plain:w240

group.1とgourp.2について、実験条件A及びBの平均値を算出すると次のようになります。group.1、group.2どちらの解析対象でもBがAより平均値が大きく、B条件で応答を大きくする効果があるように見えます。

f:id:OceanOne:20200719030505p:plain:w240

ここでgroup.1とgourp.2を区別せず全体平均について考えると、直感的にはBがAより大きくなるように推測されます。しかしながら実際に計算した結果は下記になり、A条件の方がB条件より大きくなります。

f:id:OceanOne:20200719031051p:plain:w245

結果が矛盾しているのでパラドクスと言われます。これって、どういうことでしょうか?

可視化で見るシンプソンのパラドクス

シンプソンのパラドクスについてはグラフ化すると、理解の助けになります。横軸に実験条件、プロットの色付けを実験対象にした結果が下記です。各実験対象(色付け)毎の平均値に直線を引いています。前述の通り、B条件がA条件より大きい傾向が見てとれます。

f:id:OceanOne:20200719031459p:plain:w400

同じグラフに対して実験対象(色付け)を区別しない平均値に直線を引いた結果が下記です。確かにA条件がB条件より大きい傾向が見てとれます。ただし、グラフからA条件が大きく見える理由はデータ点数の偏りによる傾向であることがわかると思います。

f:id:OceanOne:20200719032011p:plain:w400

実験対象(色付け)が複数ありデータ数に偏りがある場合は、平均値を計算すると実験対象に対する重みが変わってしまいます。この結果おかしな結論が導かれてしまいます。


同じデータについて各実験対象(色付け)のデータ数が等しい場合は下記のようになります。灰色のハッチング領域が前節データに対し増えたデータになります。

f:id:OceanOne:20200719033255p:plain:w200

各実験対象(色付け)毎の平均値を計算しても、全体平均を計算してもB条件がA条件より大きくなります。

f:id:OceanOne:20200719033424p:plain

シンプソンのパラドクスを避ける方法

今回のようなデータ例は実はよくあります。私の従事する半導体業界では直径300m^2ほどのSiウェハに様々な構造を作りこみますが、工程数の多さゆえ、不良率の累積で歩留まりと言われる収率の課題があります。ウェハの中心と外周では取れ高が異なり、実験を行っても同数のデータは取得できません。

例えば最初のデータについて、シンプソンのパラドクスを避ける一つの方法は、解析対象毎に平均を算出し、

f:id:OceanOne:20200719040736p:plain:w340

その後に実験条件ごとに平均値を算出します。当然ですが、B>Aの傾向は保存され推定精度も上がります。

f:id:OceanOne:20200719041137p:plain:w351

ここで行った処理の本質は一つのデータが持つ重みについて、実験対象のデータ数の違いから重みを変えていることになります。

あるいは、実験対象をブロック因子として重回帰分析を行っても良いです。下記は実験対象A/Bを0/1、実験条件1/2を0/1に割り当て重回帰分析を行った結果です。A条件とB条件の差異は~0.75で上手く捉えられています。

f:id:OceanOne:20200719040545p:plain:w500

まとめ

シンプソンのパラドクスを紹介しました。実データの解析を行う上では絶対に知っておいた方が良いです。データ数が非常に多い場合はデータ処理の過程で気付くかもしれませんが、少ないデータ数ではむしろ技術者の経験が生かされると思っています。実験を行う前に実験対象の系統誤差がわかっていると上手く実験精度が上げらます。今回一番言いたかったことは、実験前の事前解析が重要であり、既に得られたデータからの解析では情報量が限定されてしまうということです!でも事前解析は優先度落とされがちですよね。。。