Come calcolare l'aic dei modelli di regressione in python


L’Akaike Information Criterion (AIC) è una metrica utilizzata per confrontare l’adattamento di diversi modelli di regressione.

Viene calcolato come segue:

AIC = 2K – 2 ln (L)

Oro:

  • K: il numero di parametri del modello. Il valore predefinito di K è 2, quindi un modello con una sola variabile predittrice avrà un valore K di 2+1 = 3.
  • ln (L) : la log-verosimiglianza del modello. Questo ci dice la probabilità del modello, dati i dati.

L’AIC è progettato per trovare il modello che spiega la maggiore variazione nei dati, penalizzando i modelli che utilizzano un numero eccessivo di parametri.

Dopo aver adattato più modelli di regressione, è possibile confrontare il valore AIC di ciascun modello. Il modello con l’AIC più basso fornisce la soluzione migliore.

Per calcolare l’AIC di modelli di regressione multipli in Python, possiamo utilizzare la funzione statsmodels.regression.linear_model.OLS() , che ha una proprietà chiamata aic che ci dice il valore AIC per un dato modello.

L’esempio seguente mostra come utilizzare questa funzione per calcolare e interpretare AIC per vari modelli di regressione in Python.

Esempio: calcolare e interpretare AIC in Python

Supponiamo di voler adattare due diversi modelli di regressione lineare multipla utilizzando le variabili del set di dati mtcars .

Innanzitutto, caricheremo questo set di dati:

 from sklearn. linear_model import LinearRegression
import statsmodels. api as sm
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#view head of data
data. head ()

        model mpg cyl disp hp drat wt qsec vs am gear carb
0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2

Ecco le variabili predittive che utilizzeremo in ciascun modello:

  • Variabili predittive nel modello 1: disp, hp, wt, qsec
  • Variabili predittive nel modello 2: disp, qsec

Il codice seguente mostra come adattare il primo modello e calcolare l’AIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'hp', 'wt', 'qsec']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view AIC of model
print (model. aic )

157.06960941462438

L’AIC di questo modello risulta essere 157.07 .

Successivamente, adatteremo il secondo modello e calcoleremo l’AIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'qsec']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view AIC of model
print (model. aic )

169.84184864154588

L’AIC di questo modello risulta essere 169,84 .

Poiché il primo modello ha un valore AIC inferiore, è il modello più adatto.

Una volta identificato questo modello come il migliore, possiamo procedere con l’adattamento del modello e analizzare i risultati, incluso il valore R quadrato e i coefficienti beta, per determinare l’esatta relazione tra l’insieme di variabili predittive e la variabile di risposta .

Risorse addizionali

Una guida completa alla regressione lineare in Python
Come calcolare l’R quadrato corretto in Python

Aggiungi un commento

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