如何在 python 中执行西格玛运算

how to execute sigma operation in python

我正在尝试创建一个计算此公式的函数:

.

公式非截图:

距离 = 西格玛 *((观察到的 - 预期的)**2 / 预期的)

这是我当前的代码:

def distance(observed, expected):

    num = (observed - expected)**2
    den = (expected)
    dist = sigma * (num/den)

    return dist

我不知道如何计算 sigma,所以我很感激任何 help/feedback!

谢谢!

观察到的应该是一个数字列表

def distance(observed, expected):
    return sum((item - expected)**2*1.0/ expected for item in observed )

observed = [1,3,45,56,3,2,4,5,6,7]
expected = sum(observed)/len(observed)
print distance(observed,expected)

274.461538462

此处的 Sigma 表示多个观察值和预期值对的总和。

例如:

如果 observed 是一个数字列表 [1,1,3,3,...] expected 是与观察值相对应的预期值列表,例如 [1.2,1.3,3.1,3.2...]

然后你需要求出他们各自距离的总和。

def distance(observed, expected):
    res = 0
    for o, e in zip(observed,expected):
        res += (o-e)**2/e

    return res

Sigma 是范围内的求和而不是乘法。 Observed 和 Expected 必须是相同长度的数字列表。

def distance(observed, expected):
    sample_space_length = len(observed)
    distance = 0
    for x in range(sample_space_length):
        distance += ((observed[x] - expected[x]) ** 2) / expected[x]
    return distance