VIF を計算する
動画で学んだように、多重共線性の診断で最も広く使われている指標のひとつが分散拡大要因(VIF)で、これは各説明変数ごとに計算します。
また、経験則としてのしきい値は VIF が 2.5 程度で、VIF が 2.5 を超える場合は、当てはめたモデルに多重共線性の影響があると考えるべきだと動画で説明しました。
以前に当てはめた model と crab データセットはワークスペースに読み込まれています。
この演習はコースの一部です
Pythonで学ぶ一般化線形モデル
演習の手順
statsmodelsからvariance_inflation_factorをインポートします。crabデータセットからweight、width、colorを選んでXとして保存し、Xに 1 のIntercept列を追加します。pandasのDataFrame()を使って空のvifデータフレームを作成し、Xの列名をVariables列に追加します。- 各変数について
variance_inflation_factor()関数で VIF を計算し、vifデータフレームのVIF列に保存します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import functions
from statsmodels.stats.outliers_influence import ____
# Get variables for which to compute VIF and add intercept term
X = ____[[____, ____, ____]]
X[____] = 1
# Compute and view VIF
vif = pd.____
vif["variables"] = X.____
vif["VIF"] = [____(X.values, i) for i in range(X.shape[1])]
# View results using print
____(____)