Описательная статистика: среднее

Python

Слово «описание» вполне антропоморфно. Однако само число не говорит, его действие — человеческая условность, и его значение также дается людьми. «Намерение пьяницы — не вино», цифры на самом деле отражают игру и мудрость человеческого мозга.


Как описать "средний"?

Наиболее известным средним значением является среднее значение, которое рассчитывается путем деления суммы всех наблюдений в популяции или выборке на подсчеты. На самом деле есть еще две «формы» среднего: медиана и мода. Первое означает, что все наблюдения сортируются, а затем берется число в квантиле 50%, а второе означает число, которое чаще всего встречается среди наблюдений. Внимательно сравните эти три числа, и вы увидите, что они объясняют разницу в «среднем».


средний

Чтобы обеспечить справедливость, среднее значение учитывает вклад каждого человека в совокупность, согласовывая каждое наблюдение в одинаковых или разных пропорциях. Среднее значение, которое мы узнаём из детства μ = среднее (X) = сумма (X) * 1 / количество (X) (где X представляет выборку), — это практика согласования наблюдений в отношении 1/count(X) . Точно так же другие различные числа также могут использоваться в качестве отношения гармоник для расчета, например, размер отношения определяется в соответствии с частотой появления данных.Это среднее значение является взвешенным средним значением, которое мы часто слышим.


медиана

Расположите наблюдения в порядке возрастания или убывания, где «среднее» число является медианой. Так что же такое «середина»? Следуя квантильному подходу, «средним» является 50%-й квантиль. Другими словами, очень уместно разделить один и тот же объем данных слева и справа. Когда количество особей нечетное, в середине находится только одна, что не оспаривается. Когда количество особей четное, в середине может быть два, и фактическая медиана - это эти два. Однако в приложениях для удобства и единообразия расчета часто определяют, что медиана представлена ​​только единицей. Итак, вопрос в том, какое число представляет медиану? В духе максимальной честности медиана представляет собой среднее из этих двух чисел.


Режим

Рассчитайте частоту каждого наблюдения, взяв за моду самую высокую частоту. Это позволяет легко думать, что может быть не один режим, а множество. Также из практических соображений мода часто представлена ​​любым элементом в наборе. Поскольку каждый элемент в наборе имеет одинаковую частоту, это не имеет значения для выборки или совокупности, в зависимости от того, что используется для представления «среднего».

У этих способов описания «среднего» есть свои достоинства: мы можем быть в состоянии понять эмоционально, что средний похож на «спокойного и рационального», но «слишком абсолютного» подростка, а средний — на «преднамеренного», «деликатного» подростка. и внимательный» Большинство — это «классический» старейшина, который настаивает на том, что «меньшинство подчиняется большинству».


сбивающий с толку

Когда распределение данных ненормально, как в следующем примере, среднее значение становится «мишенью общественной критики» и на него легко влияют границы и даже выбросы, в то время как медиана и мода могут быть жестко зафиксированы в центре оси. Кажется, это отчасти означает выражение «не страдать от немногих, а страдать от неравномерности». Поэтому к выбору среднего нужно отнестись с большой осторожностью.



Как добиться «среднего»?

Python отлично подходит для работы с данными. Функция вычисления среднего может быть реализована собственной библиотекой или другими инструментами, такими как numpy.mean(), numpy.median() и scipy.stats.mode(). В обход этих ресурсов посмотрим, как это сделать программно.


Напоминание: следующий контент связан с концепцией китайского программирования и может вызвать сильный дискомфорт.


средний

Это относительно просто. Учитывая объем, любой фрагмент кода в этой статье не будет обрабатывать исключения, если в этом нет необходимости.

def 平均数(X):
    return sum(X) / len(X)


медиана

Трудность заключается в том, чтобы найти четное количество раз. Чтобы найти квантиль 50%, вам нужно сначала вычислить число, а затем отметить, что нижний индекс является целым числом и не может быть напрямую умножен на 0,5.

def 中位数(X): 
    副本 = X        # 因列表.sort()会改变原数据状态,此处拷贝 X
    个数 = len(副本)
    副本.sort()
    if 个数 % 2 == 0:                       # 当个数为偶数时
        左分位数 =  副本[个数//2 - 1]      # 50%分位点左侧索引
        右分位数 =  副本[个数//2]          # 50%分位点右侧索引
        return (左分位数 + 右分位数) / 2
    else: 
        return  副本[个数//2]

Упомянутая выше функция .sort() сортирует список на месте. В концепции «функционального программирования» такие функции, которые могут изменять исходные данные, считаются нечистыми функциями с «побочными эффектами». Любая функция должна с осторожностью изменять исходные данные. Основываясь на этой идее, мы должны обратить внимание на то, пишем ли мы аналогичные функции в программировании, ориентированном на данные, чтобы обеспечить согласованность и воспроизводимость данных.


Режим

Этапы нахождения режима немного сложнее, а ключевым является подсчет и выбор.

def 众数(X): 
    每个数出现的次数 = {}           # 用字典记录每个数出现的次数
    for x in X:
        if x not in 每个数出现的次数.keys():
            每个数出现的次数[x] = 1
        else:
            每个数出现的次数[x] += 1
    众数 = None
    最大次数 = 0
    for 数字, 次数 in 每个数出现的次数.items():
        if 次数>最大次数:         # 若出现多个值,只返回第一个
            众数 = 数字
            最大次数 = 次数
    return  众数

Этот метод также можно использовать для поиска наиболее часто встречающихся нечисловых данных (меток).


Как использовать «средний»?

Поняв различные характеристики этих трех, мы, возможно, сможем найти им применение.


Заполните пропущенные значения

Небольшое количество пропущенных значений можно отбросить напрямую. Кроме того, поскольку среднее значение хорошо сохраняется и отражает централизованные характеристики выборки или генеральной совокупности, заполнение пропущенных значений средним значением также является подходящим методом. Для числовых данных он может быть заполнен средним значением или медианой, в зависимости от того, что используется, зависит от фактической ситуации. Для нечисловых данных можно использовать заполнение режима.


интегрированное обучение

Обучение в ансамбле объединяет модели для обучения по определенным правилам, чтобы получить лучшие результаты, чем одна модель. Это способ использования «коллективного разума». Для задач регрессии значение, выводимое моделью ансамбля, может быть средним значением объединенных прогнозов отдельных базовых моделей. Для задач классификации ансамблевая модель может выводить режим каждого результата базовой модели.