Python で回帰モデルの aic を計算する方法


赤池情報量基準 (AIC) は、さまざまな回帰モデルの適合度を比較するために使用される指標です。

次のように計算されます。

AIC = 2K – 2 ln (長さ)

金:

  • K:モデルパラメータの数。 K のデフォルト値は 2 であるため、予測変数が 1 つだけあるモデルの K 値は 2+1 = 3 になります。
  • ln (L) : モデルの対数尤度。これにより、データが与えられた場合のモデルの確率がわかります。

AIC は、過剰な数のパラメーターを使用するモデルにペナルティを課しながら、データの変動を最も多く説明するモデルを見つけるように設計されています。

複数の回帰モデルを適合させたら、各モデルの AIC 値を比較できますAIC が最も低いモデルが最適な適合を提供します。

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

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

例: Python で AIC を計算および解釈する

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

各モデルで使用する予測変数は次のとおりです。

  • モデル 1 の予測変数: disp、hp、wt、qsec
  • モデル 2 の予測子変数: disp、qsec

次のコードは、最初のモデルを適合させて AIC を計算する方法を示しています。

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'hp', 'wt', 'qsec']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view AIC of model
print (model. aic )

157.06960941462438

このモデルの AIC は157.07であることがわかります。

次に、2 番目のモデルを当てはめて AIC を計算します。

 #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 AIC of model
print (model. aic )

169.84184864154588

このモデルの AIC は169.84であることがわかります。

最初のモデルは AIC 値が低いため、最もよく適合するモデルです。

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

追加リソース

Python の線形回帰の完全ガイド
Python で調整済み R 二乗を計算する方法

コメントを追加する

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