Come calcolare r quadrato in python (con esempio)
R al quadrato , spesso scritto R2 , è la proporzione della varianza nella variabile di risposta che può essere spiegata dalle variabili predittive in un modello di regressione lineare .
Il valore di R al quadrato può variare da 0 a 1 dove:
- 0 indica che la variabile di risposta non può essere spiegata affatto dalla variabile predittrice.
- 1 indica che la variabile di risposta può essere perfettamente spiegata senza errori dalle variabili predittive.
L’esempio seguente mostra come calcolare R 2 per un modello di regressione in Python.
Esempio: calcola R-quadrato in Python
Supponiamo di avere i seguenti panda DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6], ' prep_exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2], ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]}) #view DataFrame print (df) hours prep_exams score 0 1 1 76 1 2 3 78 2 2 3 85 3 4 5 88 4 2 2 72 5 1 2 69 6 5 1 94 7 4 1 94 8 2 0 88 9 4 3 92 10 4 4 90 11 3 3 75 12 6 2 96
Possiamo utilizzare la funzione LinearRegression() di sklearn per adattare un modello di regressione e la funzione score() per calcolare il valore R quadrato del modello:
from sklearn.linear_model import LinearRegression
#initiate linear regression model
model = LinearRegression()
#define predictor and response variables
x, y = df[[" hours ", " prep_exams "]], df. score
#fit regression model
model. fit (x,y)
#calculate R-squared of regression model
r_squared = model. score (x,y)
#view R-squared value
print (r_squared)
0.7175541714105901
Il quadrato R del modello risulta essere 0,7176 .
Ciò significa che il 71,76% della variazione dei punteggi degli esami può essere spiegato dal numero di ore studiate e dal numero di esami pratici sostenuti.
Se volessimo, potremmo confrontare questo valore R quadrato con un altro modello di regressione con un diverso insieme di variabili predittive.
In generale, si preferiscono modelli con valori di R quadrato più alti perché significa che l’insieme delle variabili predittive nel modello è in grado di spiegare bene la variazione della variabile di risposta.
Correlato: Qual è un buon valore R quadrato?
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in Python:
Come eseguire una semplice regressione lineare in Python
Come eseguire regressioni lineari multiple in Python
Come calcolare l’AIC dei modelli di regressione in Python