シンプソンのパラドックス

statsmodels を使った中級 Regression

Maarten Van den Broeck

Content Developer at DataCamp

実に巧妙なパラドックス!

シンプソンのパラドックスとは、データセット全体でのモデルの傾向が、部分集合ごとのモデルの傾向と大きく異なる現象です。

傾向 = 傾き係数

statsmodels を使った中級 Regression

シンプソン合成データ

x y group
62.24344 70.60840 D
52.33499 14.70577 B
56.36795 46.39554 C
66.80395 66.17487 D
66.53605 89.24658 E
62.38129 91.45260 E
  • 5つのグループのデータ(「A」から「E」まで)
1 https://www.rdocumentation.org/packages/datasauRus/topics/simpsons_paradox
statsmodels を使った中級 Regression

線形回帰

データセット全体

mdl_whole = ols("y ~ x", 
                 data=simpsons_paradox).fit()

print(mdl_whole.params)
Intercept           -38.554  
x                     1.751  

グループ別

mdl_by_group = ols("y ~ group + group:x + 0",
                   data = simpsons_paradox).fit()

print(mdl_by_group.params)
  groupA    groupB    groupC    groupD    groupE  
 32.5051   67.3886   99.6333  132.3932  123.8242  
groupA:x  groupB:x  groupC:x  groupD:x  groupE:x  
 -0.6266   -1.0105   -0.9940   -0.9908   -0.5364
statsmodels を使った中級 Regression

データセット全体をプロットする

sns.regplot(x="x",
            y="y",
            data=simpsons_paradox,
            ci=None)

シンプソンのパラドックスデータセット(全グループ統合)の散布図。傾向は正です.png

statsmodels を使った中級 Regression

グループ別にプロットする

sns.lmplot(x="x",
           y="y",
           data=simpsons_paradox,
           hue="group",
           ci=None)

シンプソンのパラドックスデータセットの散布図(グループ別に色分け)。各グループで傾向は負に変わります.png

statsmodels を使った中級 Regression

違いを整理する

良いアドバイス

可能であれば、データセットをプロットしてみましょう。

よくあるアドバイス

最適なモデルは一般的に一つに決まりません–それはデータセットや、答えようとしている問いによって異なります。

もう一つの良いアドバイス

モデリングを始める前に、問いを明確にしましょう。

statsmodels を使った中級 Regression

テストスコアの例

scatter-video-games-whole.png

scatter-video-games-by-group.png

statsmodels を使った中級 Regression

感染症の例

scatter-cities-whole.png

scatter-cities-by-group.png

statsmodels を使った中級 Regression

違いを整理する

  • 通常(必ずしもそうではありませんが)、グループ別モデルの方がより多くの知見を示します。
  • 説明変数が不足していませんか?
  • 文脈が重要です。
statsmodels を使った中級 Regression

実際のデータセットにおけるシンプソンのパラドックス

  • 通常、パラドックスはそれほど明確ではありません。
  • 傾きが完全に逆転するのではなく、ゼロになる場合もあります。
  • すべてのグループに現れるとは限りません。
statsmodels を使った中級 Regression

練習しましょう!

statsmodels を使った中級 Regression

Preparing Video For Download...