CommencezCommencez gratuitement

Force de la corrélation

De façon intuitive, on peut regarder les graphiques fournis et « voir » si les deux variables semblent « varier ensemble ».

  • Jeu de données A : x et y varient ensemble et semblent avoir une forte relation.
  • Jeu de données B : on observe une tendance globale à la hausse ; x et y semblent seulement faiblement liés.
  • Jeu de données C : cela ressemble à une dispersion aléatoire ; x et y ne semblent pas varier ensemble et ne sont pas liés.

Jeu de données A

Jeu de données B

Jeu de données C

Rappelez-vous que les écarts se mesurent par rapport à la moyenne, puis on les normalise en les divisant par l'écart type. Dans cet exercice, vous comparerez les 3 jeux de données en calculant la corrélation afin de déterminer lequel présente la relation la plus forte entre x et y. Utilisez la table de données data_sets, un dictionnaire d'enregistrements ayant chacun les clés 'name', 'x', 'y' et 'correlation'.

Cette activité fait partie du cours

Introduction aux modèles linéaires en Python

Voir le cours

Instructions de l’exercice

  • Complétez la définition de la fonction correlation() à l'aide de la moyenne des produits des écarts normalisés de x et y.
  • Parcourez data_sets, calculez et enregistrez chaque corrélation avec correlation(record['x'], record['y']).
  • Exécutez le code jusqu'à ce point (c.-à-d. jusqu'à la fin de la boucle for), puis examinez l'affichage. Quel jeu de données présente la corrélation la plus forte ?
  • Assignez le nom du jeu de données (data_sets['A'], data_sets['B'] ou data_sets['C']) ayant la plus forte corrélation à la variable best_data.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Complete the function that will compute correlation.
def correlation(x,y):
    x_dev = x - np.____(x)
    y_dev = y - np.____(y)
    x_norm = x_dev / np.____(x)
    y_norm = y_dev / np.____(y)
    return np.____(x_norm * y_norm)

# Compute and store the correlation for each data set in the list.
for name, data in data_sets.items():
    data['correlation'] = ____(data['x'], data['y'])
    print('data set {} has correlation {:.2f}'.format(name, data['correlation']))

# Assign the data set with the best correlation.
best_data = data_sets['____']
Modifier et exécuter le code