皮尔逊相关系数计算(Matlab和Python实现)

Matlab

注意,数组元素之间用分号隔开的

clear all;
a=[ 0.6; 0.9;0.78; 0.28;0.44;0.40;0.69;0.94;0.45]
b=[ 31.46;26.75;32.08 ;26.38;29.75;27.57;28.56 ;27.67 ;28.18 ]
coeff = corr(a , b,'type','pearson'); 

在这里插入图片描述

Python

from  math  import  sqrt
 
def  multipl(a,b):
     sumofab = 0.0
     for  i  in  range ( len (a)):
         temp = a[i] * b[i]
         sumofab  =sumofab + temp
     return  sumofab
 
def  corrcoef(x,y):
     n = len (x)
     #求和
     sum1 = sum (x)
     sum2 = sum (y)
     #求乘积之和
     sumofxy = multipl(x,y)
     #求平方和
     sumofx2  =  sum ([ pow (i, 2 )  for  i  in  x])
     sumofy2  =  sum ([ pow (j, 2 )  for  j  in  y])
     num = sumofxy - ( float (sum1) * float (sum2) / n)
     #计算皮尔逊相关系数
     den = sqrt((sumofx2 - float (sum1 ** 2 ) / n) * (sumofy2 - float (sum2 ** 2 ) / n))
     return  num / den
 
    #神经质维度
x  =  [ 0.6 , 0.9 , 0.78 , 0.28,0.44,0.40,0.69,0.94,0.45 ]
y  =  [ 31.46,26.75,32.08 ,26.38 ,29.75 ,27.57 ,28.56 ,27.67 ,28.18 ]

 
print (corrcoef(x,y))  #0.14418073993882827
from scipy.stats import pearsonr
pccs = pearsonr(x, y)
print(pccs)
(0.14418073993881686, 0.7113182029255729)

参考:

统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
matlab相关系数计算公式(Pearson和Spearman,以及Kendall Rank)
皮尔逊相关系数的计算(python代码版)
Python–如何计算皮尔逊相关系数(Pearson correlation coefficient)

  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值