Seaborn - Relations linéaires

La plupart du temps, nous utilisons des ensembles de données contenant plusieurs variables quantitatives, et le but d'une analyse est souvent de relier ces variables entre elles. Cela peut être fait à travers les lignes de régression.

Lors de la construction des modèles de régression, nous vérifions souvent multicollinearity,où nous devions voir la corrélation entre toutes les combinaisons de variables continues et prendrons les mesures nécessaires pour supprimer la multicolinéarité si elle existe. Dans de tels cas, les techniques suivantes sont utiles.

Fonctions pour dessiner des modèles de régression linéaire

Il existe deux fonctions principales dans Seaborn pour visualiser une relation linéaire déterminée par régression. Ces fonctions sontregplot() et lmplot().

regplot vs lmplot

regplot lmplot
accepte les variables x et y dans une variété de formats, y compris des tableaux numpy simples, des objets de la série pandas ou comme références à des variables dans un DataFrame pandas a des données comme paramètre obligatoire et les variables x et y doivent être spécifiées sous forme de chaînes. Ce format de données est appelé données «longues»

Tirons maintenant les graphiques.

Exemple

Tracer le regplot puis lmplot avec les mêmes données dans cet exemple

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()

Production

Vous pouvez voir la différence de taille entre deux parcelles.

Nous pouvons également ajuster une régression linéaire lorsque l'une des variables prend des valeurs discrètes

Exemple

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.lmplot(x = "size", y = "tip", data = df)
plt.show()

Production

Montage de différents types de modèles

Le modèle de régression linéaire simple utilisé ci-dessus est très simple à ajuster, mais dans la plupart des cas, les données ne sont pas linéaires et les méthodes ci-dessus ne peuvent pas généraliser la droite de régression.

Utilisons le jeu de données d'Anscombe avec les graphiques de régression -

Exemple

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()

Dans ce cas, les données correspondent bien au modèle de régression linéaire avec moins de variance.

Voyons un autre exemple où les données prennent un écart élevé, ce qui montre que la ligne de meilleur ajustement n'est pas bonne.

Exemple

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()

Production

Le graphique montre l'écart élevé des points de données par rapport à la droite de régression. Un tel ordre supérieur non linéaire peut être visualisé en utilisant lelmplot() et regplot()Ils peuvent s'adapter à un modèle de régression polynomiale pour explorer des types simples de tendances non linéaires dans l'ensemble de données -

Exemple

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)
plt.show()

Production