Python机器学习:corr()分析变量之间的相关关系
Posted 紫昂张
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python机器学习:corr()分析变量之间的相关关系相关的知识,希望对你有一定的参考价值。
变量之间存在多重共线性的情况下会影响模型的精度,这里用相关矩阵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 sns
ax = sns.heatmap(corr_data)
代码讲解:
seaborn 是Python中的一个可视化库;
sns. heatmap()指调用热力图方法,corr_data是上面计算完相关关系的二维表;
运行结果:
转为热力图就非常直观啦:从右侧可以了解越接近白色的部分代表相关系数越高,有几个字段是具有强相关性的,需要进行删除或者降维操作。
SAS学习89(方差分析anova过程相关分析和回归分析corr过程reg过程多元线性回归stepwise)
方差分析(anova过程)
做方差分析前提是假设每一个随机变量是符合正态分布的,且方差是一样的
可以两两构造t检验进行分析
anova过程是交互式过程,需要quit退出
可以看到下面分成了两组
单因素方差分析
R书415页
双因素方差分析
董书264,数学概念在R书435页
不考虑两个变量的交互作用,即相互影响
相关分析与回归分析
找出变量之间的相互关系
相关分析是发现关联关系,回归分析是写出关系式
corr过程
nomiss 忽略有缺失值的观测行
nosimple 会影响输出结果
如果nosimple的话,不会输出上面的两行
0.0022 是假设检验算出来的结果,说明拒绝原假设,即两个变量相关
一元线性回归分析
reg过程
先做相关分析
model y=x,左边是因变量,右边是自变量
-17.35是截距,0.22是斜率
其他东西都是对这个回归做检验,检验其是否合理;比如样本值本身不是正态分布;回归是否是线性的;变量之间是否有关系
可以在中间三行看到,F检验,pr值很小,那么说明模型相当好,具有明显的统计学意义
R-Square,相关系数平方,除以n-1
Adj R-Sq 调整过的相关系数平方,除以的是n-2,两个都比较大,说明相关性高
在对系数进行检验时,看到对斜率进行t检验,pr值很小,拒绝斜率为0的假设
但是看到截距的t检验,pr值很大,要接受截距=0的假设;说明这里截距计算有问题,需要调整
调整就是鼠标那行,加了个noint,也就是no intercept,没有截距
其中的一些概念
多元线性回归
有两个变量的检验情况不太好,分别是weight和rstpulse
说明可能关系不大,需要剔除
向前引入法是局部最优解
相关系数平法的大小阈值和统计变量的多少有关
第一步,只有一个变量
第二步,加了个年龄,相关系数平方增大,cp减小,模型变好了
第三步加了rumpulse,更好了
第四步加了maxpulse,更好了
以上是关于Python机器学习:corr()分析变量之间的相关关系的主要内容,如果未能解决你的问题,请参考以下文章
SAS学习89(方差分析anova过程相关分析和回归分析corr过程reg过程多元线性回归stepwise)
SAS学习89(方差分析anova过程相关分析和回归分析corr过程reg过程多元线性回归stepwise)
机器学习之python---Python实现逻辑回归(LogisticRegression)