Cara menghitung bic dengan python
Kriteria Informasi Bayesian , sering disingkat BIC , adalah ukuran yang digunakan untuk membandingkan kesesuaian model regresi yang berbeda.
Dalam praktiknya, kami menyesuaikan beberapa model regresi ke kumpulan data yang sama dan memilih model dengan nilai BIC terendah sebagai model yang paling sesuai dengan data.
Kami menggunakan rumus berikut untuk menghitung BIC:
BIC: (RSS+log(n)dσ̂ 2 ) / n
Emas:
- d: Jumlah prediktor
- n: Jumlah observasi
- σ̂: Estimasi varians kesalahan yang terkait dengan setiap ukuran respons dalam model regresi
- RSS: Jumlah sisa kuadrat dari model regresi
- TSS: Jumlah total kuadrat model regresi
Untuk menghitung BIC model regresi berganda dengan Python, kita dapat menggunakan fungsi statsmodels.regression.linear_model.OLS() , yang memiliki properti bernama bic yang memberi tahu kita nilai BIC untuk model tertentu.
Contoh berikut menunjukkan cara menggunakan fungsi ini untuk menghitung dan menafsirkan BIC untuk berbagai model regresi dengan Python.
Contoh: menghitung BIC model regresi dengan Python
Misalkan kita ingin menyesuaikan dua model regresi linier berganda yang berbeda menggunakan variabel dari kumpulan data mtcars .
Pertama, kami akan memuat kumpulan data ini:
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
Selanjutnya, kita akan menyesuaikan dua model regresi berikut:
- Model 1 : mpg = β 0 + β 1 (tampilan) + β 2 (qsec)
- Model 2 : mpg = β 0 + β 1 (tersedia) + β 2 (berat)
Kode berikut menunjukkan cara menyesuaikan model pertama dan menghitung BIC:
#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
BIC model ini ternyata 174.239 .
Selanjutnya, kita akan memasang model kedua dan menghitung BIC:
#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
BIC model ini ternyata 166.565 .
Karena model kedua memiliki nilai BIC yang lebih rendah, maka model tersebut merupakan model yang paling cocok.
Setelah kami mengidentifikasi model ini sebagai yang terbaik, kami dapat melanjutkan dengan penyesuaian model dan menganalisis hasilnya, termasuk nilai R-kuadrat dan koefisien beta, untuk menentukan hubungan yang tepat antara kumpulan variabel prediktif dan variabel respons .
Sumber daya tambahan
Dua metrik lain yang umum digunakan untuk membandingkan kesesuaian model regresi adalah AIC dan R-squared yang disesuaikan .
Tutorial berikut menjelaskan cara menghitung masing-masing metrik untuk model regresi dengan Python:
Cara menghitung AIC model regresi dengan Python
Cara menghitung R-kuadrat yang disesuaikan dengan Python