「統計学実践ワークブック」 演習問題etc Ch.30 「モデル選択」

当記事は「統計学実践ワークブック(学術図書出版社)」の読解サポートにあたってChapter.30の「モデル選択」に関して演習問題を中心に解説を行います。AIC(Akaike information criterion)やBIC(Bayesian information criterion)はよく出てくるトピックなので、抑えておくと良いと思います。

本章のまとめ

演習問題解説

問30.1

問30.2

下記を実行することで、説明変数の組み合わせごとのAIC、BICの値が得られる。

import numpy as np

n = 20.
x_combination = ["nothing", "x1", "x2", "x3", "x1-x2", "x1-x3", "x2-x3", "x1-x2-x3"]
k = np.array([0., 1., 1., 1., 2., 2., 2., 3.])
res = np.array([[53180., 10.881], [41499., 10.633], [30338., 10.320], [42420., 10.607], [29727., 10.3], [26252., 10.176], [26923., 10.201], [23893., 10.081]])

AIC = n*(res[:,1]+np.log(2*np.pi/n)+1)+2*(k+2)
BIC = n*(res[:,1]+np.log(2*np.pi/n)+1)+(k+2)*np.log(n)

for i in range(res.shape[0]):
    print("Variable: {}, AIC: {:.3f}, BIC: {:.3f}".format(x_combination[i],AIC[i],BIC[i]))

・実行結果

Variable: nothing, AIC: 218.463, BIC: 220.454
Variable: x1, AIC: 215.503, BIC: 218.490
Variable: x2, AIC: 209.243, BIC: 212.230
Variable: x3, AIC: 214.983, BIC: 217.970
Variable: x1-x2, AIC: 210.843, BIC: 214.826
Variable: x1-x3, AIC: 208.363, BIC: 212.346
Variable: x2-x3, AIC: 208.863, BIC: 212.846
Variable: x1-x2-x3, AIC: 208.463, BIC: 213.442

上記の計算結果より、AICによる変数選択で選ばれる説明変数の組み合わせは「$x_1,x_3$」、BICによる変数選択で選ばれる説明変数の組み合わせは「$x_2$」であることがそれぞれわかる。

参考

・準1級関連まとめ
https://www.hello-statisticians.com/toukeikentei-semi1