Я пытаюсь рассчитать степени свободы и использовал следующую формулу:

К сожалению, это дает мне неправильный ответ.
Мой код:
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 - независимые массивы, содержащие числовые значения. Вместо получения ценных значений я вижу результат в виде:
Degrees of freedom for Student-t distribution: -0.00004981053615260864
К вашему сведению, есть функция stdev, если вы используете python 3.6: docs.python.org/3/library/statistics.html#statistics.stdev






len(Y))**2 / len(Y) - 1)
Из-за отсутствия скобок вокруг
len(y) - 1
Согласно BODMAS, деление происходит первым, поэтому ошибочная ошибка.
Отсутствует скобка вокруг
len(Y) - 1