TATECHATLAS
◎ Русский
Математика и модели

Объединение средних групп с их реальными знаменателями

В статье объясняется, почему группы разного размера дают объединённое среднее 18, а не 15, и приводится короткий пример на Python. Рассматривается важность сохранения знаменателя, работы с процентами, пропущенными данными и ограничений объединения сводных показателей.

В этом материале

Чтобы объединить средние арифметические значения совместимых наблюдений, следует умножить среднее значение каждой группы на количество наблюдений, фактически использованных при вычислении этого среднего. Группа из двух наблюдений со средним 10 и группа из восьми наблюдений со средним 20 дают (2*10 + 8*20)/10 = 18. Их невзвешенное среднее из средних равно 15 и отвечает на другой вопрос. С каждым сообщаемым средним следует хранить знаменатель, особенно когда отсутствующие значения исключаются.

Определите усредняемую величину

Прежде чем объединять сводные данные, убедитесь, что они описывают одну и ту же величину в одинаковых единицах и при совместимых правилах включения. Время ответа, измеренное в секундах, нельзя напрямую объединить с показателем в миллисекундах без преобразования. Также следует различать среднее на одно наблюдение и среднее на одну группу. Оба показателя могут быть полезны, но они по-разному учитывают малую и большую группы.

Сохраняйте знаменатель, использованный каждым средним

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

Вычислите пример с неравными группами

Построим группу A с количеством 2 и средним 10, тогда её сумма равна 20. В группе B количество равно 8, среднее 20, сумма 160. Общая сумма 180 при 10 наблюдениях даёт среднее 18. Прямое усреднение 10 и 20 даёт 15, потому что оно приписывает равный вес двум группам. Эти гипотетические сводные данные показывают различие, не утверждая наличия реального набора данных или бенчмарка.

Используйте короткий расчёт на Python

Python 3.11 и более поздние версии поддерживают веса в statistics.fmean. В примере передаются средние значения и соответствующие им количества, что даёт ожидаемый результат 18.0. Код не извлекает набор данных и не проверяет, правильно ли собраны количества. Следует воспринимать это как вычисление предоставленных входных данных. Если требуется точный десятичный учёт, следует рассмотреть числовое представление отдельно, а не предполагать, что выходные данные с плавающей запятой точны для всех значений.

from statistics import fmean

group_means = [10, 20]
observed_counts = [2, 8]
combined_mean = fmean(group_means, weights=observed_counts)
print(combined_mean)

Объединяйте проценты через совместимые количества

Предположим, одна группа имеет 1 успех из 2 испытаний, а другая - 4 из 8. Общая доля успеха равна 5/10, или 50 процентов. В общем случае следует хранить количества успехов и количества испытаний, а не усреднять отображаемые проценты без их знаменателей. Разные определения испытания или пересекающиеся группы делают недействительной простую объединённую интерпретацию. Количества также снижают потерю информации, вызванную округлением процентов для отображения.

Однозначно обрабатывайте пропущенные наблюдения

Среднее, вычисленное после исключения пропущенных значений, должно сопровождаться количеством ненулевых наблюдений для той же переменной и того же правила включения. Разные столбцы могут иметь разные допустимые количества даже в одной группе. pandas mean может пропускать отсутствующие значения, поэтому простое количество строк не является автоматически подходящим весом. Если пропущенность носит систематический характер, корректная арифметика не устраняет возникающую проблему репрезентативности.

Диагностируйте случайное равномерное взвешивание

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

Учитывайте ограничения объединения сводных данных

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

Что проверить

  • Проверьте единицы измерения и правила включения.
  • Храните фактическое количество ненулевых наблюдений вместе со средним.
  • Различайте вопросы на уровне наблюдений и на уровне групп.
  • Для процентов предпочитайте исходные числители и знаменатели.
  • Не объединяйте медианы с формулой среднего.

Объединение предполагает совместимые средние арифметические со соответствующими количествами и отсутствие непреднамеренного двойного учёта. Оно не устраняет смещение из-за пропущенных данных, не восстанавливает объединённую медиану и не задаёт правильную формулу для любого показателя. Пример с весами в Python требует Python 3.11 и выше.

Источники

  1. Python: statistics and weighted fmean ↗
  2. pandas: DataFrame mean and missing values ↗
Наверх ↑