Вы могли бы указать цель своей функции: Среднее абсолютное отклонение . То, что вы называете mymad
, является приблизительным значением стандартного отклонения совокупности на основе предположения о больших выборках нормально распределенных переменных.
Согласно этому сайту :
def median(pool):
copy = sorted(pool)
size = len(copy)
if size % 2 == 1:
return copy[(size - 1) / 2]
else:
return (copy[size/2 - 1] + copy[size/2]) / 2
Итак, вам нужна функция mad
, которая будет проверять:
mad(x) == median(abs(x-median(x)))
Спасибо Elenaher (дайте кредиты за комментарии), вот код:
def mad(x):
return median([abs(val-median(x)) for val in x])
А потом, я полагаю, вы вычислили:
def mymad(x):
return 1.4826*mad(x)