Python - 自由度

时间:2018-03-25 08:08:21

标签: python math

我正在尝试计算自由度,我使用了以下公式:

formula[1]

不幸的是,它给了我错误的答案。

我的代码:

def stdev(X):
    m = mean(X)
    return math.sqrt(sum((x-m)**2 for x in X) / len(X))

def degreesOfFreedom(X, Y):
    s1 = (stdev(X)**2)
    s2 = (stdev(Y)**2)
    df = (s1 / len(X) + s2 / len(Y))**2 / ((s1 / len(X))**2 / (len(X) - 1) + (s2 / len(Y))**2 / len(Y) - 1)
    return(df)

print('Degrees of freedom for Student-t distribution: ' + str(degreesOfFreedom(A, B)))

其中A和B是包含数值的独立数组。 我没有获得有价值的数据,而是在表格中看到了结果:

  

学生分发的自由度:-0.00004981053615260864

1 个答案:

答案 0 :(得分:1)

 len(Y))**2 / len(Y) - 1)

由于缺少括号

  len(y) - 1

根据BODMAS,分裂首先发生,因此错误