入力変数同士の相関関係が強いと多重共線性という問題が発生します。
1 相関関係
入力変数同士の相関が高いかどうかを調べる時には、.corr()
を使用します。
# 相関係数の算出
df_corr = df.corr()
すると、相関係数が表示されます。
相関係数は1が最大で、その2つの変数が完全に正の相関があることを示しています。
変数aと変数bの相関係数が1の場合は、aが1増えるとbも1増えるような関係です。
また、相関係数が-1の時は、その逆で、aが1増えるとbが1減るような、負の相関を示します。
1.1 相関関係の可視化
seabornを用いて、ヒートマップで相関関係を可視化をすることができます。
plt.figure(figsize=(12, 8)) # figsizeは一つ一つのマス(プロット)の大きさを調整できる
sns.heatmap(df_corr.iloc[:20, :20], annot=True);
# .iloc[:20,:20]とすると、最初の20行、20列だけが表示される
# annot=Trueでヒートマップ中に数値を表示することができる
(復習)
df_corr[df_corr['A'] > 0.5]
のように書くことでA列の値が0.5を超える行だけを表示することができます。