Python'da bic nasıl hesaplanır
Genellikle BIC olarak kısaltılan Bayesian Bilgi Kriteri , farklı regresyon modellerinin uyum iyiliğini karşılaştırmak için kullanılan bir ölçüdür.
Uygulamada birden fazla regresyon modelini aynı veri setine sığdırıyoruz ve verilere en iyi uyan model olarak en düşük BIC değerine sahip modeli seçiyoruz.
BIC’yi hesaplamak için aşağıdaki formülü kullanırız:
BIC: (RSS+log(n)dσ̂ 2 ) / n
Altın:
- d: Tahmincilerin sayısı
- n: Toplam gözlemler
- σ̂ : Bir regresyon modelinde her yanıt ölçümüyle ilişkili hata varyansının tahmini
- RSS: Regresyon modelinden kalan kareler toplamı
- TSS: Regresyon modelinin karelerinin toplamı
Python’da çoklu regresyon modellerinin BIC’sini hesaplamak için, bize belirli bir model için BIC değerini söyleyen bic 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 BIC’yi hesaplamak ve yorumlamak amacıyla bu işlevin nasıl kullanılacağını gösterir.
Örnek: Python’da regresyon modellerinin BIC’sini hesaplama
Mtcars veri kümesindeki değişkenleri kullanarak iki farklı çoklu doğrusal regresyon modelini uydurmak istediğimizi varsayalım.
İ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
Daha sonra aşağıdaki iki regresyon modelini uygulayacağız:
- Model 1 : mpg = β 0 + β 1 (ekran) + β 2 (qsec)
- Model 2 : mpg = β 0 + β 1 (mevcut) + β 2 (ağırlık)
Aşağıdaki kod, ilk modelin nasıl sığdırılacağını ve BIC’nin nasıl hesaplanacağını gösterir:
#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 BIC of model
print (model. bic )
174.23905634994506
Bu modelin BIC’si 174.239 olarak çıkıyor.
Daha sonra ikinci modeli uygulayacağız ve BIC’yi hesaplayacağız:
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'wt']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view BIC of model
print (model. bic )
166.56499196301334
Bu modelin BIC’si 166.565 olarak çıkıyor.
İkinci modelin BIC değeri daha düşük 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
Regresyon modellerinin uyumunu karşılaştırmak için yaygın olarak kullanılan diğer iki ölçüm AIC ve düzeltilmiş R-kare’dir .
Aşağıdaki eğitimlerde Python’daki regresyon modelleri için bu ölçümlerin her birinin nasıl hesaplanacağı açıklanmaktadır:
Python’da regresyon modellerinin AIC’si nasıl hesaplanır
Python’da düzeltilmiş R-kare nasıl hesaplanır