在Python中如何确定相关系数?

在Python中如何确定相关系数?,python,statistics,Python,Statistics,我正在处理的方程如下- 描述中说x-bar和y-bar是数组1和数组2的平均值。最小系数为0.3 我问这个问题的原因是因为我不太熟悉阅读统计方程,更不用说用Python实现它们了。使用for循环的简单实现是: import math def correlation(x, y): x_bar = sum(x) / len(x) y_bar = sum(y) / len(y) var_x = sum((x_i - x_bar)**2 for x_i in x)

我正在处理的方程如下-

描述中说x-bar和y-bar是数组1和数组2的平均值。最小系数为0.3


我问这个问题的原因是因为我不太熟悉阅读统计方程,更不用说用Python实现它们了。

使用
for
循环的简单实现是:

import math

def correlation(x, y):
    x_bar = sum(x) / len(x)
    y_bar = sum(y) / len(y)

    var_x = sum((x_i - x_bar)**2 for x_i in x)
    var_y = sum((y_i - y_bar)**2 for y_i in y)

    assert len(x) == len(y)
    numerator = sum((x_i - x_bar) * (y_i - y_bar) for x_i, y_i in zip(x, y))
    denominator = math.sqrt(var_x * var_y)
    return numerator / denominator

if __name__ == "__main__":
    x = [...]
    y = [...]
    print(correlation(x, y))
在进行大量数值计算时,通常使用
numpy
模块,其中该函数为:


使用
for
循环的简单实现是:

import math

def correlation(x, y):
    x_bar = sum(x) / len(x)
    y_bar = sum(y) / len(y)

    var_x = sum((x_i - x_bar)**2 for x_i in x)
    var_y = sum((y_i - y_bar)**2 for y_i in y)

    assert len(x) == len(y)
    numerator = sum((x_i - x_bar) * (y_i - y_bar) for x_i, y_i in zip(x, y))
    denominator = math.sqrt(var_x * var_y)
    return numerator / denominator

if __name__ == "__main__":
    x = [...]
    y = [...]
    print(correlation(x, y))
在进行大量数值计算时,通常使用
numpy
模块,其中该函数为:


最简单的方法是使用scipy.stats(请参阅)

这将为您提供两个值,相关性和p值

您可以像这样自己实现它:

x = np.random.random(20)
y = np.random.random(20)
x_bar = np.mean(x)
y_bar = np.mean(y)

top = np.sum((x - x_bar) * (y - y_bar))
bot = np.sqrt(np.sum(np.power(x - x_bar, 2)) * np.sum(np.power(y - y_bar, 2)))

print(top/bot)

两者的结果相同,祝你好运

最简单的方法是使用scipy.stats(请参阅)

这将为您提供两个值,相关性和p值

您可以像这样自己实现它:

x = np.random.random(20)
y = np.random.random(20)
x_bar = np.mean(x)
y_bar = np.mean(y)

top = np.sum((x - x_bar) * (y - y_bar))
bot = np.sqrt(np.sum(np.power(x - x_bar, 2)) * np.sum(np.power(y - y_bar, 2)))

print(top/bot)

两者的结果相同,祝你好运

看看这里:或者你想自己实现它?这和皮尔逊相关性是同一个等式吗?如果是,那么就没有必要亲自实施。如果您提供一些代码作为答案,我将对其进行测试,并将您的回答标记为答案。看看这里:或者您想自己实现它吗?这与pearson相关性是相同的等式吗?如果是,那么就没有必要亲自实施。如果您提供一些代码作为答案,我将对其进行测试,并将您的回答标记为答案。