Hoe aic van regressiemodellen in python te berekenen
Het Akaike Information Criterion (AIC) is een maatstaf die wordt gebruikt om de fit van verschillende regressiemodellen te vergelijken.
Het wordt als volgt berekend:
AIC = 2K – 2 ln (L)
Goud:
- K: Het aantal modelparameters. De standaardwaarde van K is 2, dus een model met slechts één voorspellende variabele heeft een K-waarde van 2+1 = 3.
- ln (L) : De log-waarschijnlijkheid van het model. Dit vertelt ons de waarschijnlijkheid van het model, gegeven de gegevens.
AIC is ontworpen om het model te vinden dat de meeste variatie in de gegevens verklaart, terwijl modellen worden bestraft die een buitensporig aantal parameters gebruiken.
Nadat u meerdere regressiemodellen heeft geïnstalleerd, kunt u de AIC-waarde van elk model vergelijken. Het model met de laagste AIC biedt de beste pasvorm.
Om de AIC van meerdere regressiemodellen in Python te berekenen, kunnen we de functie statsmodels.regression.linear_model.OLS() gebruiken, die een eigenschap heeft genaamd aic die ons de AIC-waarde voor een bepaald model vertelt.
In het volgende voorbeeld ziet u hoe u deze functie kunt gebruiken om AIC te berekenen en te interpreteren voor verschillende regressiemodellen in Python.
Voorbeeld: bereken en interpreteer AIC in Python
Laten we zeggen dat we twee verschillende meervoudige lineaire regressiemodellen willen passen met behulp van variabelen uit de mtcars- dataset.
Eerst laden we deze dataset:
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
Dit zijn de voorspellende variabelen die we in elk model zullen gebruiken:
- Voorspellervariabelen in model 1: disp, hp, wt, qsec
- Voorspellende variabelen in model 2: disp, qsec
De volgende code laat zien hoe u het eerste model past en de AIC berekent:
#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
De AIC van dit model blijkt 157.07 te zijn.
Vervolgens passen we het tweede model aan en berekenen we de 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
De AIC van dit model blijkt 169,84 te zijn.
Omdat het eerste model een lagere AIC-waarde heeft, is dit het best passende model.
Zodra we dit model als het beste hebben geïdentificeerd, kunnen we doorgaan met het aanpassen van het model en de resultaten analyseren, inclusief de R-kwadraatwaarde en bètacoëfficiënten, om de exacte relatie tussen de reeks voorspellende variabelen en deresponsvariabele te bepalen.
Aanvullende bronnen
Een complete gids voor lineaire regressie in Python
Hoe het aangepaste R-kwadraat in Python te berekenen