Оценка основных статистических метрик набора данных в Python

Опубликован: 26.12.2023 75

Одной из наиболее частых задач бизнес-аналитики является статистический анализ наборов данных с целью выявления содержащихся в них тенденций и трендов, а также получения интегральных статистических показателей.

Для решения таких задач в Python можно воспользоваться встроенным модулем statistics, который предоставляет функции математической статистики для оценки основных метрик (центральных и вариативности) числовых данных.

Метрики центральной тенденции:

  • statistics.mean() - функция для вычисления среднего арифметического значения в наборе целых числовых данных (для вещественных числовых данных используется функция statistics.fmean());
  • statistics.median() - функция для вычисления медианного (среднего) значения числовых данных;
  • statistics.mode() - функция, возвращающая наиболее часто встречающееся значение в наборе числовых данных;

Метрики вариативности данных:

  • `statistics.variance() - функция для вычисления дисперсии набора данных;
  • statistics.stdev() - функция для вычисления стандартного отклонения от центрального значения выборки данных;
  • statistics.quantiles() - функция для вычисления квантилей (квартилей, процентилей) набора данных.

Результаты вычислений можно для удобства разместить в словаре статистических метрик набора данных data_stat и получать к ним быстрый доступ по ключу словаря.

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

Это позволяет быстро получить полный набор метрик описательной статистики (аналогичный тому, что предоставляет метод .describe() объектов Series или Dataframe библиотеки Pandas).

import statistics as st

# исходный набор данных
data = [32., 29., 33., 37., 28., 28., 37., 33., 27., 32., 27., 27., 31.,
       20., 21., 27., 24., 31., 25., 22., 37., 28., 30., 22., 27., 30.,
       24., 31., 26., 28.]

data_stat = {
    'count': len(data),
    'mean': st.fmean(data),
    'std': st.stdev(data),
    'min': min(data),
    '25%': st.quantiles(data, n=4, method='inclusive')[0],
    '50%': st.median(data),
    '75%': st.quantiles(data, n=4, method='inclusive')[2],
    'max': max(data),
    'variance': st.variance(data),
    'mode': st.mode(data)
}

for key, value in data_stat.items():
    print(f"{key} = {value:.4f}")

# Вывод статистических метрик набора данных
count = 30.0000       # количество элементов
mean = 28.4667       # среднее арифметическое
std = 4.5085             # стандартное отклонение
min = 20.0000          # минимальное значение
25% = 26.2500         # 25-й процентиль
50% = 28.0000         # медиана или 50-й процентиль
75% = 31.0000         # 75-й процентиль
max = 37.0000         # максимальное значение
variance = 20.3264   # дисперсия
mode = 27.0000       # мода

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

Получить информацию о других функциях модуля statistics можно здесь.

Похожие посты

Область эффективного использования lambda функции в Python

Логические выражения if ... else в Pythonic стиле

Способы удаления лишних пробелов в строке

Использование аннотации типов в Python

Комментариев нет.