import numpy as np from math import sqrt from math import sqrt def multipl(a, b): sumofab = 0.0 for i in range(len(a)): temp = a[i] * b[i] 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)) print("num",num) print("den",den) return num / den X = [1,2,3,5,8] Y = [0.11,0.12,0.13,0.15,0.18] print(corrcoef(X, Y) )
Python实现皮尔逊系数计算
猜你喜欢
转载自blog.csdn.net/pwtd_huran/article/details/79728918
今日推荐
周排行