Python で bic を計算する方法


ベイズ情報量基準( BIC と略されることも多い) は、さまざまな回帰モデルの適合度を比較するために使用される尺度です。

実際には、複数の回帰モデルを同じデータセットに適合させ、BIC 値が最も低いモデルをデータに最も適合するモデルとして選択します。

BIC を計算するには次の式を使用します。

BIC: (RSS+log(n)dσ̂ 2 ) / n

金:

  • d:予測子の数
  • n:観測値の合計
  • σ̂:回帰モデルの各応答測定に関連する誤差分散の推定値
  • RSS:回帰モデルからの残差二乗和
  • TSS:回帰モデルの総二乗和

Python で重回帰モデルの BIC を計算するには、 statsmodels.regression.linear_model.OLS()関数を使用できます。この関数には、特定のモデルの BIC 値を示す bic というプロパティがあります。

次の例は、この関数を使用して、Python のさまざまな回帰モデルの BIC を計算および解釈する方法を示しています。

例: Python で回帰モデルの BIC を計算する

mtcarsデータセットの変数を使用して 2 つの異なる重線形回帰モデルを近似したいとします。

まず、このデータセットを読み込みます。

 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

次に、次の 2 つの回帰モデルを当てはめます。

  • モデル 1 : mpg = β 0 + β 1 (disp) + β 2 (qsec)
  • モデル 2 : mpg = β 0 + β 1 (入手可能) + β 2 (重量)

次のコードは、最初のモデルを適合させて 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であることがわかります。

次に、2 番目のモデルを当てはめて 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であることがわかります。

2 番目のモデルは BIC 値が低いため、最も適合するモデルです。

このモデルが最適であると特定したら、モデルのフィッティングを進め、R 二乗値やベータ係数を含む結果を分析して、一連の予測変数と応答変数の間の正確な関係を決定できます。

追加リソース

回帰モデルの適合を比較するためによく使用される他の 2 つの指標は、 AIC調整済み R 二乗です。

次のチュートリアルでは、Python で回帰モデルのこれらの各メトリクスを計算する方法を説明します。

Python で回帰モデルの AIC を計算する方法
Python で調整済み R 二乗を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です