始める無料で始める

VIF を計算する

動画で学んだように、多重共線性の診断で最も広く使われている指標のひとつが分散拡大要因(VIF)で、これは各説明変数ごとに計算します。

また、経験則としてのしきい値は VIF が 2.5 程度で、VIF が 2.5 を超える場合は、当てはめたモデルに多重共線性の影響があると考えるべきだと動画で説明しました。

以前に当てはめた modelcrab データセットはワークスペースに読み込まれています。

この演習はコースの一部です

Pythonで学ぶ一般化線形モデル

コースを見る

演習の手順

  • statsmodels から variance_inflation_factor をインポートします。
  • crab データセットから weightwidthcolor を選んで X として保存し、X に 1 の Intercept 列を追加します。
  • pandasDataFrame() を使って空の 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
____(____)
コードを編集して実行