Pearson相关系数公式的四种形式及Python代码实现
来源:互联网 发布:php无数据库留言板源码 编辑:程序博客网 时间:2024/06/05 01:13
原文:http://blog.csdn.net/zhangjunjie789/article/details/51737366
两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商。
第一种形式(也就是定义的形式):
第二种形式:
第三种形式:
第四种形式:
(其中,E为数学期望或均值,N为数据的数目,E{ [X-E(X)] [Y-E(Y)]}称为随机变量X与Y的协方差,记为Cov(X,Y))
根据第四种形式的公式,使用python实现计算两列数据的pearson相关系数的代码:
from math import sqrtdef multiply(a,b): #a,b两个列表的数据一一对应相乘之后求和 sum_ab=0.0 for i in range(len(a)): temp=a[i]*b[i] sum_ab+=temp return sum_abdef cal_pearson(x,y): n=len(x) #求x_list、y_list元素之和 sum_x=sum(x) sum_y=sum(y) #求x_list、y_list元素乘积之和 sum_xy=multiply(x,y) #求x_list、y_list的平方和 sum_x2 = sum([pow(i,2) for i in x]) sum_y2 = sum([pow(j,2) for j in y]) molecular=sum_xy-(float(sum_x)*float(sum_y)/n) #计算Pearson相关系数,molecular为分子,denominator为分母 denominator=sqrt((sum_x2-float(sum_x**2)/n)*(sum_y2-float(sum_y**2)/n)) return molecular/denominatorf=open('filename','r')data={}lines=f.readlines()for line in lines: #strip用于去掉换行符,split()通过指定分隔符对字符串进行切片,返回子字符串 cols=line.strip('\n').split(',') for i in range(len(cols)): #float将字符串转成浮点数 data.setdefault(i,[]).append(float(cols[i]))x=data[0]y=data[1]if __name__=='__main__': print ("x_list,y_list的Pearson相关系数为:"+str(cal_pearson(x,y)))
皮尔逊相关系数的适用范围:
当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
1. 两个变量之间是线性关系,都是连续数据。
2. 两个变量的总体是正态分布,或接近正态的单峰分布。
3. 两个变量的观测值是成对的,每对观测值之间相互独立。
阅读全文
0 0
- Pearson相关系数公式的四种形式及Python代码实现
- Pearson相关系数公式的四种形式及Python代码实现
- 相关性学习—python实现Pearson相关系数
- Pearson(皮尔逊)相关系数及MATLAB实现
- 平方Pearson相关系数(SPCC)相关公式的推导
- Pearson相关系数的疑问
- 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
- 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
- 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
- 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
- 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
- Pearson相关系数, Spearman相关系数,Kendall相关系数的区别
- Pearson相关系数
- Pearson相关系数
- Pearson 相关系数--最佳理解及相关应用
- 皮尔逊相关系数 定义+python代码实现 (与王印讨论公式)
- 皮尔逊相关系数 定义+python代码实现 (与王印讨论公式)
- 皮尔森相关系数及python计算代码
- Java for Web学习笔记(八七):消息和集群(2)应用内的publish和subscribe
- MySQL
- cout 格式化输出
- Leetcode:111. Minimum Depth of Binary Tree(求Tree的最小的深度)
- 7-7 是否同一棵二叉搜索树(25 point(s))
- Pearson相关系数公式的四种形式及Python代码实现
- 递归-打印整数
- 数据结构实验之二叉树七:叶子问题
- Unable to update database to match the current model!
- java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resolveTypeArguments(Ljava
- DP? HDU
- Mybatis学习笔记(五)【开发dao方法】
- Canvas与DICOM图像处理
- 11 OF 100DAYS