相関の注意点

Python を使った統計学入門

Maggie Matsui

Content Developer, DataCamp

非線形関係

二次関係のある変数の散布図

$$r = 0.18$$

Python を使った統計学入門

非線形関係

私たちが見るもの:

二次関係を持つ変数の散布図と二次トレンドライン

相関係数が捉えるもの:

線形トレンドラインを伴う二次関係のある変数の散布図

Python を使った統計学入門

相関は線形関係のみを扱う

相関は盲目的に使うべきではない

df['x'].corr(df['y'])
0.081094

常にデータを可視化する

二次関係のある変数の散布図

Python を使った統計学入門

哺乳類の睡眠データ

print(msleep)
                 name       genus   vore         order  ... sleep_cycle  awake  brainwt   bodywt
1             Cheetah    Acinonyx  carni     Carnivora  ...         NaN   11.9      NaN   50.000
2          Owl monkey       Aotus   omni      Primates  ...         NaN    7.0  0.01550    0.480
3     Mountain beaver  Aplodontia  herbi      Rodentia  ...         NaN    9.6      NaN    1.350
4 Greater short-ta...     Blarina   omni  Soricomorpha  ...    0.133333    9.1  0.00029    0.019
5                 Cow         Bos  herbi  Artiodactyla  ...    0.666667   20.0  0.42300  600.000
..                ...         ...    ...           ...  ...         ...    ...      ...      ...
79         Tree shrew      Tupaia   omni    Scandentia  ...    0.233333   15.1  0.00250    0.104
80 Bottle-nosed do...    Tursiops  carni       Cetacea  ...         NaN   18.8      NaN  173.330
81              Genet     Genetta  carni     Carnivora  ...         NaN   17.7  0.01750    2.000
82         Arctic fox      Vulpes  carni     Carnivora  ...         NaN   11.5  0.04450    3.380
83            Red fox      Vulpes  carni     Carnivora  ...    0.350000   14.2  0.05040    4.230
Python を使った統計学入門

体重 vs. 覚醒時間

体重と覚醒時間の散布図

msleep['bodywt'].corr(msleep['awake'])
0.3119801
Python を使った統計学入門

体重の分布

bodywt変数のヒストグラム

Python を使った統計学入門

対数変換

msleep['log_bodywt'] = np.log(msleep['bodywt'])

sns.lmplot(x='log_bodywt', y='awake', data=msleep, ci=None) plt.show()
msleep['log_bodywt'].corr(msleep['awake'])
0.5687943

散布図: log bodywt と awake

Python を使った統計学入門

その他の変換

  • 対数変換 (log(x))
  • 平方根変換 (sqrt(x))
  • 逆数変換 (1 / x)

  • これらの組み合わせ、例:

Python を使った統計学入門

変換を使う理由は?

  • 特定の統計手法は、変数が線形関係にあることに依存する
    • 相関係数
    • 線形回帰

Python による線形モデリング入門

Python を使った統計学入門

相関は因果関係を示さない

            *`x`が`y`と相関がある* ことは *`x`が`y`と因果関係がある* こと **ではない**

米国の一人当たりマーガリン消費量とメイン州の離婚率の散布図。 変数は非常に強く相関しており、相関係数は0.99である

Python を使った統計学入門

交絡

コーヒーを飲むこと(x)が肺がん(y)を指している

Python を使った統計学入門

交絡

コーヒーを飲むこと(x)が肺がん(y)を指し、上に喫煙(交絡因子)

Python を使った統計学入門

交絡

コーヒーを飲むこと(x)が喫煙(交絡因子)を介して肺がん(y)を指している。 喫煙とコーヒー飲用の間の二重矢印、「関連」と表示。

Python を使った統計学入門

交絡

コーヒーを飲むこと(x)が喫煙(交絡因子)を介して肺がん(y)を指している。 喫煙とコーヒー飲用の間の二重矢印、「関連」と表示。 喫煙から肺がんへの矢印に「因果関係」とラベル付けされた"

Python を使った統計学入門

交絡

コーヒーの摂取 (x) と肺がん (y) を結ぶ両矢印に「関連」とラベル付けがされた。 喫煙とコーヒー飲用の間の二重矢印、「関連」と表示。 喫煙から肺がんへの矢印に「因果関係」とラベル付けされた"

祝日 (x) は小売売上高 (y) を示す。 特別な要因(交絡因子)は、休暇への二重矢印と小売売上への単一矢印を持つ。

Python を使った統計学入門

練習しましょう!

Python を使った統計学入門

Preparing Video For Download...