参考文献:

皮尔森系数

image

重点关注第一个等号后面的公式,最后面的是推导计算,暂时不用管它们。看到没有,两个变量(X, Y)的皮尔森相关性系数(ρX,Y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。

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

皮尔森相关系数(Pearson correlation coefficient)也称皮尔森积矩相关系数(Pearson product-moment correlation coefficient) ,是一种线性相关系数。皮尔森相关系数是用来反映两个变量线性相关程度的统计量。相关系数用r表示,其中n为样本量,分别为两个变量的观测值和均值。r描述的是两个变量间线性相关强弱的程度。r的绝对值越大表明相关性越强。

简单的相关系数的分类

0.8-1.0 极强相关

0.6-0.8 强相关

0.4-0.6 中等程度相关

0.2-0.4 弱相关

0.0-0.2 极弱相关或无相关

r描述的是两个变量间线性相关强弱的程度。r的取值在-1与+1之间,若r>0,表明两个变量是正相关,即一个变量的值越大,另一个变量的值也会越大;若r<0,表明两个变量是负相关,即一个变量的值越大另一个变量的值反而会越小。r 的绝对值越大表明相关性越强,要注意的是这里并不存在因果关系。

spearman correlation coefficient(斯皮尔曼相关性系数)

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

image

计算过程就是:首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,秩次的差值就是上面公式中的di,n就是变量中数据的个数,最后带入公式就可求解结果

image

带入公式,求得斯皮尔曼相关性系数:ρs= 1-6(1+1+1+9)/635=0.657

而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小!

由于斯皮尔曼相关性系数没有那些数据条件要求,适用的范围就广多了。

kendall correlation coefficient(肯德尔相关性系数)

肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。

分类变量可以理解成有类别的变量,可以分为

无序的,比如性别(男、女)、血型(A、B、O、AB);

有序的,比如肥胖等级(重度肥胖,中度肥胖、轻度肥胖、不肥胖)。

通常需要求相关性系数的都是有序分类变量。

举个例子。比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。

pandas代码实现

pandas.DataFrame.corr()

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

Compute pairwise correlation of columns, excluding NA/null values

Parameters:

method : {‘pearson’, ‘kendall’, ‘spearman’}

pearson : standard correlation coefficient

kendall : Kendall Tau correlation coefficient

spearman : Spearman rank correlation

min_periods : int, optional

Minimum number of observations required per pair of columns to have a valid result. Currently only available for pearson and spearman correlation

Returns:

y : DataFrame

import pandas as pddf = pd.DataFrame({'A':[5,91,3],'B':[90,15,66],'C':[93,27,3]})print(df.corr())print(df.corr('spearman'))print(df.corr('kendall'))df2 = pd.DataFrame({'A':[7,93,5],'B':[88,13,64],'C':[93,27,3]})print(df2.corr())print(df2.corr('spearman'))print(df2.corr('kendall'))

numpy代码实现

numpy.corrcoef(x,y = None,rowvar = True,bias = ,ddof = )

返回Pearson乘积矩相关系数。

cov有关更多详细信息,请参阅文档。相关系数矩阵R和协方差矩阵C之间的关系为

image

R的值在-1和1之间(含)。

参数:

x:array_like

包含多个变量和观察值的1维或2维数组。x的每一行代表一个变量,每一列都是对所有这些变量的单独观察。另请参阅下面的rowvar。

y:array_like,可选

一组额外的变量和观察。y的形状与x相同。

rowvar:布尔,可选

如果rowvar为True(默认),则每行表示一个变量,并在列中有观察值。否则,该关系将被转置:每列表示一个变量,而行包含观察值。

bias : _NoValue, optional Has no effect, do not use. Deprecated since version 1.10.0.

ddof : _NoValue, optional Has no effect, do not use. Deprecated since version 1.10.0.

返回:

R:ndarray 变量的相关系数矩阵。

import numpy as npvc=[1,2,39,0,8]vb=[1,2,38,0,8]print(np.mean(np.multiply((vc-np.mean(vc)),(vb-np.mean(vb))))/(np.std(vb)*np.std(vc)))#corrcoef得到相关系数矩阵(向量的相似程度)

python correlation_相关性系数介绍+python代码实现 correlation analysis相关推荐

  1. R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient

    R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient 目录 R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coe ...

  2. 相关性系数及其python实现

    参考文献: 1.python 皮尔森相关系数 https://www.cnblogs.com/lxnz/p/7098954.html 2.统计学之三大相关性系数(pearson.spearman.ke ...

  3. python计算相关性系数

    在这里说的相关性系数指的是皮尔逊相关系数https://baike.baidu.com/item/%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0/3109424?fr=ala ...

  4. python 计算相关性系数np.corrcoef()

    计算相关性是分析连续型与连续型双变量的常用方法,散点图只能直观的显示双变量(特征)之间的关系,但并不能说明关系的强弱,而相关性可以对变量之间的关系进行量化分析.   相关性系数的公式如下: 相关性系数 ...

  5. python装饰器 property_介绍Python的@property装饰器的用法

    在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻辑.为了限制score的 ...

  6. python pipeline框架_介绍Python的Django框架中的静态资源管理器django-pipeline

    django-pipeline 是一个 Django 下非常方便的静态资源管理 app,尤其是 1.2 版本之后,利用 django-staticfiles 的collectstatic 命令,在开发 ...

  7. python美化excel_简单介绍python在CMD界面读取excel所有数据

    这篇文章主要介绍了python在CMD界面读取excel所有数据,帮助大家更好的利用python办公,感兴趣的朋友可以了解下 代码 import xlrd import os from prettyt ...

  8. python 偏函数_详细介绍Python中的偏函数

    机器学习实战之Logistic回归 本文来自云栖社区官方钉群"Python技术进阶",了解相关信息可以关注"Python技术进阶". 本系列教程特点: 基于&l ...

  9. python程序应用经典实例-Python实例应用经典讲解

    Python作为一种功能强大的脚本语言,给开发人员带来了非常大的好处.那么它的具体应用方式又是怎样的呢?我们今天就可以通过一个经典的Python实例应用来详细分析一下这一语言的具体应用方式. Pyth ...

  10. python编程培训多少钱-python编程培训多少钱?[python培训]

    python编程培训多少钱?2018年Python的发展可谓是大红大紫,2019年python的热度依然不减.各大公司对python开发工程师的需求都有所增加,因此参加python培训学习python ...

最新文章

  1. Java 枚举(enum)详解
  2. 浙江大学计算机视频 百度云,浙江大学 数据结构与算法 全40讲 徐镜春 视频教程...
  3. VC控件 Edit Control
  4. 星益云聚合收银台系统源码
  5. 5岁儿童自学python编程-为什么外国5岁孩子就要学编程?原因你一定想知道
  6. 好烦,一封报警邮件,大量服务节点 redis 响应超时,又得要捉“虫”!
  7. Java中的锁 | JDK6 关于锁的优化
  8. 为什么浏览器全面禁用三方 Cookie
  9. Windows7 VS2015 下编译 PythonQt3.2
  10. u-boot 顶层Makefile 分析
  11. uniapp让ios软键盘-点击-非输入框地方-自动收起
  12. 机器学习之使用sklearn构建据类模型,并且评价模型
  13. 《白帽子讲Web安全》| 学习笔记之Web框架安全
  14. 如何利用HTML5快速开发一款小游戏
  15. SLAM--VICP(Velocity Updating Iterative Closest Point Algorithm)学习笔记
  16. ant java macrodef_为大型项目提供的 Ant 1.6 新特性
  17. APP功能测试包含哪些方面?最全详细总结(教程)清晰易懂
  18. amd的5700g无法进入系统和pe(锁四个核心可进入)
  19. VS2015平面四杆机构运动仿真编程
  20. vs2003一查找就卡死了

热门文章

  1. 柱状图之最大矩形面积
  2. Spring Cloud(8):Sleuth和Zipkin的使用
  3. wso2 ei 6.4.0安装笔记
  4. 896.Montonic Array - LeetCode
  5. iOS -- SKTransition类
  6. onload 事件、DOMContentLoaded事件、DOM加载顺序
  7. [导入]OGRE中用到的设计模式
  8. 【ubuntu操作系统入门】Ubuntu常用命令大全一
  9. 边缘计算与嵌入式系统
  10. ENVI-IDL基础学习(1)