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에서 회귀 모델에 대한 이러한 각 측정항목을 계산하는 방법을 설명합니다.

Python에서 회귀 모델의 AIC를 계산하는 방법
Python에서 조정된 R-제곱을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다