Mises en garde sur la corrélation

Introduction à la statistique en Python

Maggie Matsui

Content Developer, DataCamp

Relations non linéaires

nuage de points de variables avec relation quadratique

$$r = 0.18$$

Introduction à la statistique en Python

Relations non linéaires

Ce que nous voyons :

nuage de points avec relation quadratique et courbe quadratique

Ce que voit le coefficient de corrélation :

nuage de points avec relation quadratique et tendance linéaire

Introduction à la statistique en Python

La corrélation ne capte que le linéaire

N'utilisez pas la corrélation à l'aveugle

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

Toujours visualiser vos données

nuage de points de variables avec relation quadratique

Introduction à la statistique en Python

Données sur le sommeil des mammifères

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
Introduction à la statistique en Python

Poids corporel vs temps éveillé

Nuage de points : poids corporel vs temps éveillé

msleep['bodywt'].corr(msleep['awake'])
0.3119801
Introduction à la statistique en Python

Distribution du poids corporel

Histogramme de la variable bodywt

Introduction à la statistique en Python

Transformation logarithmique

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

Nuage de points : log(bodywt) vs temps éveillé

Introduction à la statistique en Python

Autres transformations

  • Transformation logarithmique (log(x))
  • Transformation racine carrée (sqrt(x))
  • Transformation réciproque (1 / x)

  • Combinaisons, p. ex. :

    • log(x) et log(y)
    • sqrt(x) et 1 / y
Introduction à la statistique en Python

Pourquoi transformer ?

  • Certaines méthodes statistiques supposent des relations linéaires
    • Coefficient de corrélation
    • Régression linéaire

 

Introduction to Linear Modeling in Python

Introduction à la statistique en Python

Corrélation ≠ causalité

                x est corrélé à y ne veut pas dire x cause y

Nuage de points : consommation de margarine par habitant aux É.-U. vs taux de divorce au Maine. Forte corrélation, coefficient 0,99

Introduction à la statistique en Python

Facteur de confusion

  Consommation de café (x) pointant vers cancer du poumon (y)

Introduction à la statistique en Python

Facteur de confusion

  Consommation de café (x) pointant vers cancer du poumon (y) avec tabagisme (facteur de confusion) au-dessus

Introduction à la statistique en Python

Facteur de confusion

  Consommation de café (x) pointant vers cancer du poumon (y) avec tabagisme (facteur de confusion). Double flèche entre tabagisme et café, « association ».

Introduction à la statistique en Python

Facteur de confusion

  Consommation de café (x) pointant vers cancer du poumon (y) avec tabagisme (facteur de confusion). Double flèche tabagisme↔café « association ». Flèche tabagisme→cancer « causalité »

Introduction à la statistique en Python

Facteur de confusion

  Consommation de café (x) avec double flèche vers cancer du poumon (y) « association ». Double flèche tabagisme↔café « association ». Flèche tabagisme→cancer « causalité ».

  Jours fériés (x) pointent vers ventes au détail (y). Promotions (facteur de confusion) a une double flèche avec jours fériés et une flèche vers ventes au détail.

Introduction à la statistique en Python

Passons à la pratique !

Introduction à la statistique en Python

Preparing Video For Download...