Python에서 bic를 계산하는 방법
종종 BIC로 약칭되는 베이지안 정보 기준(Bayesian Information Criterion)은 다양한 회귀 모델의 적합도를 비교하는 데 사용되는 척도입니다.
실제로 우리는 여러 회귀 모델을 동일한 데이터 세트에 맞추고 BIC 값이 가장 낮은 모델을 데이터에 가장 잘 맞는 모델로 선택합니다.
BIC를 계산하기 위해 다음 공식을 사용합니다.
BIC: (RSS+log(n)dσ̂ 2 ) / n
금:
- d: 예측 변수의 수
- n: 총 관측치
- σ̂: 회귀 모델의 각 반응 측정값과 관련된 오차 분산 추정
- RSS: 회귀 모델의 잔차 제곱합
- TSS: 회귀 모델의 총 제곱합
Python에서 다중 회귀 모델의 BIC를 계산하려면 주어진 모델에 대한 BIC 값을 알려주는 bic이라는 속성이 있는 statsmodels.regression.linear_model.OLS() 함수를 사용할 수 있습니다.
다음 예에서는 이 함수를 사용하여 Python의 다양한 회귀 모델에 대한 BIC를 계산하고 해석하는 방법을 보여줍니다.
예: Python에서 회귀 모델의 BIC 계산
mtcars 데이터 세트의 변수를 사용하여 두 개의 서로 다른 다중 선형 회귀 모델을 맞추고 싶다고 가정합니다.
먼저 다음 데이터 세트를 로드합니다.
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
다음으로 다음 두 가지 회귀 모델을 적합합니다.
- 모델 1 : mpg = β 0 + β 1 (disp) + β 2 (qsec)
- 모델 2 : mpg = β 0 + β 1 (사용 가능) + β 2 (wt)
다음 코드는 첫 번째 모델을 피팅하고 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는 174.239 로 밝혀졌습니다.
다음으로 두 번째 모델을 피팅하고 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는 166.565 입니다.
두 번째 모델의 BIC 값이 낮으므로 가장 적합한 모델입니다.
이 모델이 가장 좋은 것으로 식별되면 모델 피팅을 진행하고 R-제곱 값 및 베타 계수를 포함한 결과를 분석하여 예측 변수 세트와 응답 변수 간의 정확한 관계를 결정할 수 있습니다.
추가 리소스
회귀 모델의 적합성을 비교하기 위해 일반적으로 사용되는 두 가지 다른 측정항목은 AIC 와 수정된 R-제곱 입니다.
다음 튜토리얼에서는 Python에서 회귀 모델에 대한 이러한 각 측정항목을 계산하는 방법을 설명합니다.