当前位置:网站首页>相关系数计算,热力图绘制,代码实现

相关系数计算,热力图绘制,代码实现

2022-08-09 10:28:00 白十月

三大相关系数correlation coefficient

1. 皮尔森相关性系数,person

在这里插入图片描述
两个变量(X, Y)的皮尔森相关性系数(ρX,Y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。

公式的分母是变量的标准差,**这就意味着计算皮尔森相关性系数时,变量的标准差不能为0(分母不能为0),**也就是说你的两个变量中任何一个的值不能都是相同的。如果没有变化,用皮尔森相关系数是没办法算出这个变量与另一个变量之间是不是有相关性的。

皮尔森系数对数据的要求比较高,
1.实验数据通常假设是成对的来自正态分布的总体,因为我们在求皮尔森相关性系数之后,还会用t检验等方法进行皮尔森相关性系数检验,t检验是基于数据呈正态分布的
2.皮尔森相关性系数受异常值的影响比较大,

2.斯皮尔曼相关性系数,spearman

斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。

计算公式:
首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,di表示秩次差,n表示数据的个数。

  1. 简单理解为计算原数据在新排序中所处的排列位置的差值,
  2. 不会出现皮尔森相关系数中分母为0而无法计算的情况,
  3. 由于异常值的秩次不会有明显的变化,所以对斯皮尔曼相关系数的影响也比较小

在这里插入图片描述

3.肯德尔相关性系数,kendall

也是一种秩相关系数,计算的对象是分类变量,

代码实现

DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数、Kendall Tau相关系数和spearman秩相关)。

DataFrame.corr(method='pearson', min_periods=1)

参数说明: method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}

  1. pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。
  2. kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据。
  3. spearman:非线性的,非正太分析的数据的相关系数

热力图绘制

seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annotkws=None, linewidths=0, linecolor='white', cbar=True, cbarkws=None, cbar_ax=None, square=False, ax=None, xticklabels=True, yticklabels=True, mask=None, **kwargs) 

参数讲解:

data:矩阵数据集,可以使numpy的数组(array),如果是pandas的dataframe,则df的index/column信息会分别对应到heatmap的columns和rows

cmap,热力图颜色。cmap=“YlGnBu”:数字越大,颜色越深,cmap=“YlGnBu_r”:数字越大,颜色越浅

cbar : 是否画一个颜色条
cbar_kws : 颜色条的参数,关键字同 fig.colorbar,可以参考:matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条。

(1)先用sns.set(font_scale)修改字体比例:
sns.set(font_scale=1.5)
(2)再用plt.rc对全图字体进行统一修改:
plt.rc(‘font’,family=‘Times New Roman’,size=12)

设置大小
plt.figure(figsize=(10,6))

多重共线性:

解决方法:
添加正则化,如果添加一个L1正则项,算法称为套索回归,如果添加一个L2正则化项,称为脊回归,

参考链接:
https://blog.csdn.net/t15600624671/article/details/77247822?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-77247822-blog-82533358.pc_relevant_multi_platform_whitelistv1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-77247822-blog-82533358.pc_relevant_multi_platform_whitelistv1&utm_relevant_index=1

https://blog.csdn.net/ztf312/article/details/102474190

原网站

版权声明
本文为[白十月]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43251493/article/details/126145350