变量之间存在多重共线性的情况下会影响模型的精度,这里用相关矩阵corr()和热力图heatmap()可以直观地观察变量之间的相关关系,进而判断是否要对自变量进行删除,或者降维的操作。
首先用corr()构造相关矩阵研究变量之间的相关关系:
corr_data = data.corr()corr_data
代码讲解:
data是要进行分析的数据集;
corr()是相关矩阵,是DataFrame内置函数,不用另外调包也能生成;
corr()括号里面没有填参数时默认是皮尔逊相关系数,corr(method = ‘pearson’);
corr(method = ‘spearman’),斯皮尔曼等级相关系数,用来分析非正态分布的数据;
corr(method = ‘kendall’),秩相关系数,用来分析两定序变量相关关系;
运行结果:
可以发现字段太多,要找到强相关关系的字段并不是很容易。需要再配合热力图使用。
import seaborn as snsax = sns.heatmap(corr_data)
代码讲解:
seaborn 是Python中的一个可视化库;
sns. heatmap()指调用热力图方法,corr_data是上面计算完相关关系的二维表;
运行结果:
转为热力图就非常直观啦:从右侧可以了解越接近白色的部分代表相关系数越高,有几个字段是具有强相关性的,需要进行删除或者降维操作。