python怎么计算相关系数_Python三种方法计算皮尔逊相关系数

1、皮尔逊相关系数在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称 PPMCC或PCCs)。用于衡量两个变量X和Y之间的线性相关相关关系,值域在-1与1之间。

2、根据公式手写

import numpy as np

import pandas as pdfrom math import *

def multipl(a,b):

sumofab=0.0

for i in range(len(a)):

temp=a[i]*b[i]

sumofab+=temp

return sumofab

def cal_pccs(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

pct_chg = pd.Series({'000001.SZ':-1.7391, '000002.SZ':0.6250,'000004.SZ':1.1378,'002600.SZ':0.0000,'000010.SZ':-1.0013})

vol = pd.Series({'000001.SZ':249326.31,'000002.SZ':338224.97,'000004.SZ':211876.00,'000010.SZ':222782.00,'002600.SZ':342096.76})

print(cal_pccs(pct_chg, vol))

3、talib的函数

import talib as ta

import pandas as pdpct_chg = pd.Series({'000001.SZ':-1.7391, '000002.SZ':0.6250,'000004.SZ':1.1378,'002600.SZ':0.0000,'000010.SZ':-1.0013})

vol = pd.Series({'000001.SZ':249326.31,'000002.SZ':338224.97,'000004.SZ':211876.00,'000010.SZ':222782.00,'002600.SZ':342096.76})

print(ta.CORREL(pct_chg,vol,5)[-1])

4、numpy的函数

import numpy as np

import pandas as pd

pct_chg = pd.Series({'000001.SZ':-1.7391, '000002.SZ':0.6250,'000004.SZ':1.1378,'002600.SZ':0.0000,'000010.SZ':-1.0013})

vol = pd.Series({'000001.SZ':249326.31,'000002.SZ':338224.97,'000004.SZ':211876.00,'000010.SZ':222782.00,'002600.SZ':342096.76})

pccs = np.corrcoef(pct_chg, vol)

print(pccs[0][1])

5、scipy的函数

import numpy as np

import pandas as pd

from scipy.stats import pearsonr

pct_chg = pd.Series({'000001.SZ':-1.7391, '000002.SZ':0.6250,'000004.SZ':1.1378,'002600.SZ':0.0000,'000010.SZ':-1.0013})

vol = pd.Series({'000001.SZ':249326.31,'000002.SZ':338224.97,'000004.SZ':211876.00,'000010.SZ':222782.00,'002600.SZ':342096.76})

pccs = pearsonr(pct_chg, vol)

print(pccs[0])

- END -

转载:感谢您对张伟江个人博客网站平台的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源张伟江个人博客”。

你可能感兴趣的:(python怎么计算相关系数)