当前位置:网站首页>相关系数计算,热力图绘制,代码实现
相关系数计算,热力图绘制,代码实现
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表示数据的个数。
- 简单理解为计算原数据在新排序中所处的排列位置的差值,
- 不会出现皮尔森相关系数中分母为0而无法计算的情况,
- 由于异常值的秩次不会有明显的变化,所以对斯皮尔曼相关系数的影响也比较小

3.肯德尔相关性系数,kendall
也是一种秩相关系数,计算的对象是分类变量,
代码实现
DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数、Kendall Tau相关系数和spearman秩相关)。
DataFrame.corr(method='pearson', min_periods=1)
参数说明: method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}
- pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。
- kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据。
- 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
边栏推荐
- Database connection operations for MySQL and MyEclipse
- 分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
- Demand side power load forecasting (Matlab code implementation)
- By asking where the variables are stored, the shepherd boy laughed and said to use pointers, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the use of go lang type pointers (Poin
- 单元测试2之实际结果检查的引用
- OneNote 教程,如何在 OneNote 中搜索和查找笔记?
- unix环境编程 第十五章 15.3 函数popen和pclose
- Restful WebServices 学习笔记
- 用Word写代码
- unix环境编程 第十四章 14.4 I/O多路转接
猜你喜欢
随机推荐
用Word写代码
Received your first five-figure salary
想了解API接口,这一篇就够了
3D printed this DuPont cable management artifact, and the desktop is no longer messy
常用语言图表库总结
[Halcon&几何] 直线的垂线与延长线的计算
深度学习--生成对抗网络(Generative Adversarial Nets)
自启服务mock联调跨域问题
分类预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多特征分类预测
需求侧电力负荷预测(Matlab代码实现)
conditional control statement
unix环境编程 第十五章 15.9 共享存储
SQL Server查询优化
numpy的ndarray取数操作
function two
【原创】VMware Workstation实现Openwrt软路由功能,非ESXI,内容非常详细!
stimulus.js 初体验
VBA实战(11) - 工作表(Sheet) 操作汇总
工作--今天的学习
day16_03集合






