Come visualizzare l'equazione di regressione in seaborn regplot


È possibile utilizzare la funzione regplot seaborn per tracciare un modello di regressione lineare adatto a un set di dati.

Sfortunatamente, Seaborn non dispone di una funzionalità integrata per estrarre l’equazione di regressione dalla linea, ma puoi utilizzare la funzione scipy.stats.linregress per trovare rapidamente i coefficienti di regressione:

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. x , y=df. y )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: mostra l’equazione di regressione in Seaborn Regplot

Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle ore studiate e sui punteggi degli esami finali dei vari studenti:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' score ': [77, 79, 84, 80, 81, 89, 95, 90, 83, 89]})

#view DataFrame
print (df)

   hours score
0 1 77
1 2 79
2 3 84
3 4 80
4 5 81
5 6 89
6 7 95
7 8 90
8 9 83
9 10 89

Diciamo che vogliamo tracciare i punti dati e aggiungere una linea di regressione adattata ai dati.

Possiamo usare la seguente sintassi per fare questo:

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#display slope and intercept of regression equation
print (intercept, slope)

77.39999999999995 1.3272727272727356

Dal risultato, possiamo vedere che la retta di regressione ha la seguente equazione:

y = 77,4 + 1,327

Se vogliamo visualizzare questa equazione sul regplot seaborn, possiamo usare la funzione matplotlib text() :

 import matplotlib. pyplot as plt
import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#add regression equation to plot
plt. text (2, 95, ' y = ' + str(round(intercept,3)) + ' + ' + str(round(slope,3)) + ' x ') 

Equazione del regplot di Seaborn

Tieni presente che l’equazione di regressione è ora visualizzata nell’angolo in alto a sinistra del grafico.

Si noti che nella funzione text() abbiamo specificato che l’equazione di regressione dovrebbe essere visualizzata dalle coordinate (x, y) di (2, 95).

Sentiti libero di modificare queste coordinate per visualizzare l’equazione di regressione dove vuoi nel tuo grafico.

Nota : puoi trovare la documentazione completa per la funzione regplot seaborn qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in Seaborn:

Come regolare la dimensione della figura di una trama Seaborn
Come cambiare la posizione di una leggenda in Seaborn
Come modificare le etichette degli assi su un grafico Seaborn

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *