重回帰分析と AIC/BIC

複数説明変数の重回帰、AIC/BICによるモデル選択、ステップワイズ法を一気に押さえます。

2つ以上の説明変数で目的変数を予測する重回帰分析。 AIC/BIC によるモデル選択は DS検定で頻出。

胡桃 あんず(普段) 胡桃 あんず

単純な線形回帰だと変数1つだけど、現実は複数の要因が絡むよね?

若葉 みどり 先生(笑顔) 若葉 みどり 先生

その通り。 複数の説明変数を扱うのが重回帰(多変量解析の代表)。 y = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ + ε で表されるわ。

白銀 ゆき(普段) 白銀 ゆき

問題は『どの変数を使うべきか』。 説明変数を増やすほどR²は上がるけれど、過学習しやすくなる。 そこでAICとBICでモデルを比較するの。

桜井 もも(普段) 桜井 もも

AIC・BICって、何の略ですかぁ?

白銀 ゆき(普段) 白銀 ゆき

AIC=Akaike Information Criterion(赤池情報量基準)、BIC=Bayesian Information Criterion(ベイズ情報量基準)。 両方とも『小さいほど良いモデル』を示す指標。

胡桃 あんず(普段) 胡桃 あんず

計算式ってどうなってるの?

若葉 みどり 先生(普段) 若葉 みどり 先生

AIC = -2·log(尤度) + 2·(パラメータ数)、 BIC = -2·log(尤度) + log(n)·(パラメータ数)。 どちらも『当てはまりの良さ』と『モデルの複雑さ』のバランスで評価するの。

白銀 ゆき(普段) 白銀 ゆき

BIC は罰則項に log(n) が入るので、サンプルサイズが大きいほどパラメータ数に対するペナルティが厳しくなる。 AIC より変数選択が保守的になる傾向ね。

桜井 もも(普段) 桜井 もも

どっちを使えばいいんですかぁ?

若葉 みどり 先生(普段) 若葉 みどり 先生

予測精度重視ならAIC、 真のモデルに近づけたいならBIC、 という使い分けが目安ね。 実務ではAICがよく使われるのよ。

胡桃 あんず(普段) 胡桃 あんず

変数選択って自動でやれるの?

白銀 ゆき(普段) 白銀 ゆき

ステップワイズ法が有名。 (1)前進選択、(2)後退削除、(3)前進後退の3パターンで、AIC/BICが最小になる組み合わせを探す。 ただし多重共線性には別途注意。

桜井 もも(普段) 桜井 もも

重回帰の注意点ありますかぁ?

若葉 みどり 先生(普段) 若葉 みどり 先生

(1)説明変数同士の{kw('多重共線性')}、(2){kw('外れ値')}、(3)残差の正規性・等分散性、(4)サンプルサイズの目安(変数1つにつき10サンプル以上)、を意識して。

白銀 ゆき(普段) 白銀 ゆき

DS検定★では『AICとBICの違い』『AICの罰則項はパラメータ数の2倍』が頻出よ。

import statsmodels.api as sm

X = sm.add_constant(df[['x1', 'x2', 'x3']])  # 切片を追加
y = df['y']

model = sm.OLS(y, X).fit()
print(model.summary())
print(f'AIC: {model.aic:.2f}')
print(f'BIC: {model.bic:.2f}')
print(f'Adjusted R²: {model.rsquared_adj:.3f}')

確認クイズ

AIC と BIC の違いとして正しいのはどれか。

  1. 両者は同じ式
  2. AIC は罰則項に log(n) を含み、BIC は 2 倍を含む
  3. BIC の罰則項に log(n) が入るため、サンプルサイズが大きいと変数選択が保守的になる
  4. AIC は分類専用、BIC は回帰専用
こたえを見る

正解: 3. BIC の罰則項に log(n) が入るため、サンプルサイズが大きいと変数選択が保守的になる

BIC の罰則項に log(n) が入るため、サンプルサイズが大きいと変数選択が保守的になる。 AIC は 2k のシンプルな罰則、BIC は log(n)·k で n が大きいほど罰則が大きくなり、結果的により少ない変数を選ぶ傾向があります。

白銀ゆき・桜井もものイラスト。公園の池でボートこぎに挑戦

この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有