python3手写公式求皮尔逊相关系数
时间: 2023-11-27 17:37:47 浏览: 99
皮尔逊相关系数是用来衡量两个变量之间线性关系强度的统计量,其计算公式如下:
![pearson_formula](https://wikimedia.org/api/rest_v1/media/math/render/svg/605f2365f2b4d9b3d2f5c1f97e8f7928e2026c3d)
其中,x和y分别是两个变量的观测值,μx和μy分别是两个变量的均值,σx和σy分别是两个变量的标准差。
下面是Python3手写计算皮尔逊相关系数的代码:
```python
import math
def pearson_correlation(x, y):
n = len(x)
sum_x = sum(x)
sum_y = sum(y)
sum_x_squared = sum([pow(i, 2) for i in x])
sum_y_squared = sum([pow(i, 2) for i in y])
sum_xy = sum([x[i]*y[i] for i in range(n)])
numerator = n * sum_xy - sum_x * sum_y
denominator = math.sqrt((n * sum_x_squared - pow(sum_x, 2)) * (n * sum_y_squared - pow(sum_y, 2)))
if denominator == 0:
return 0
else:
return numerator / denominator
```
其中,x和y分别是两个变量的观测值,可以用列表的形式传入函数。函数首先计算x和y的均值、标准差以及相关系数的分子和分母,然后根据公式计算相关系数,最后返回结果。需要注意的是,如果分母为0,则相关系数为0,否则按照公式计算。
阅读全文