Опубликован: 26.12.2023 75
Одной из наиболее частых задач бизнес-аналитики является статистический анализ наборов данных с целью выявления содержащихся в них тенденций и трендов, а также получения интегральных статистических показателей.
Для решения таких задач в Python можно воспользоваться встроенным модулем statistics
, который предоставляет функции математической статистики для оценки основных метрик (центральных и вариативности) числовых данных.
Метрики центральной тенденции:
statistics.mean()
- функция для вычисления среднего арифметического значения в наборе целых числовых данных (для вещественных числовых данных используется функция statistics.fmean()
);statistics.median()
- функция для вычисления медианного (среднего) значения числовых данных;statistics.mode()
- функция, возвращающая наиболее часто встречающееся значение в наборе числовых данных;Метрики вариативности данных:
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
Комментариев нет.