Python'da regresyon modellerinin aic'si nasıl hesaplanır
Akaike Bilgi Kriteri (AIC), farklı regresyon modellerinin uyumunu karşılaştırmak için kullanılan bir ölçümdür.
Aşağıdaki şekilde hesaplanır:
AIC = 2K – 2 ln (L)
Altın:
- K: Model parametrelerinin sayısı. K’nin varsayılan değeri 2’dir, dolayısıyla yalnızca bir tahmin değişkeni olan bir modelin K değeri 2+1 = 3 olacaktır.
- ln (L) : Modelin log-olasılığı. Bu bize veriler göz önüne alındığında modelin olasılığını söyler.
AIC, verilerdeki en fazla varyasyonu açıklayan modeli bulmak ve aşırı sayıda parametre kullanan modelleri cezalandırmak için tasarlanmıştır.
Birden fazla regresyon modelini yerleştirdikten sonra her modelin AIC değerini karşılaştırabilirsiniz. En düşük AIC değerine sahip model en iyi uyumu sağlar.
Python’da çoklu regresyon modellerinin AIC’sini hesaplamak için, bize belirli bir model için AIC değerini söyleyen aic adlı bir özelliğe sahip olan statsmodels.regression.linear_model.OLS() fonksiyonunu kullanabiliriz.
Aşağıdaki örnek, Python’daki çeşitli regresyon modelleri için AIC’yi hesaplamak ve yorumlamak amacıyla bu işlevin nasıl kullanılacağını gösterir.
Örnek: Python’da AIC’yi hesaplamak ve yorumlamak
Diyelim ki mtcars veri kümesindeki değişkenleri kullanarak iki farklı çoklu doğrusal regresyon modelini uydurmak istiyoruz.
İlk olarak bu veri kümesini yükleyeceğiz:
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
Her modelde kullanacağımız tahmin değişkenleri şunlardır:
- Model 1’deki tahmin değişkenleri: disp, hp, wt, qsec
- Model 2’deki tahmin değişkenleri: disp, qsec
Aşağıdaki kod, ilk modelin nasıl yerleştirileceğini ve AIC’nin nasıl hesaplanacağını gösterir:
#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
Bu modelin AIC’si 157.07 olarak çıkıyor.
Daha sonra ikinci modeli yerleştirip AIC’yi hesaplayacağız:
#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
Bu modelin AIC’si 169,84 olarak çıkıyor.
İlk model daha düşük AIC değerine sahip olduğundan en uygun modeldir.
Bu modeli en iyi olarak belirledikten sonra, model uyumuna geçebilir ve tahmin değişkenleri seti ile yanıt değişkeni arasındaki kesin ilişkiyi belirlemek için R-kare değeri ve beta katsayıları dahil sonuçları analiz edebiliriz.
Ek kaynaklar
Python’da Doğrusal Regresyon İçin Tam Bir Kılavuz
Python’da düzeltilmiş R-kare nasıl hesaplanır