Нормальное распределение с Python
Рассмотрим инструментарий нормального распределения в Python и ключевые аналитические кейсы. Для работы с ним можно использовать модуль stats библиотеки scipy. В частности, с помощью функции norm можно создать само распределение, у которого есть методы для проведения типичных операций:
- ppf (percent point function/функция процентных значений) — величина, большая заданной доли значений распределения;
- cdf (cumulative distribution function/кумулятивная функция распределения) - доля значений, распределения которых меньше заданной величины;
- rvs (random variates/случайные значения) - возвращает случайное значение из заданного распределения.
Допустим, вы владеете магазином, в котором товары сбываются по нормальному закону со средним 500 и стандартным отклонением 100. Для визуализации кейса можно использовать следующий код:
import seaborn as sns from scipy.stats import norm distr = norm(500, 100) sns.kdeplot(distr.rvs(1000))
Перечисленные выше методы понадобятся для подсчета разных статистик. Например, посчитаем вероятность продать:
distr.cdf(300)
1 - distr.cdf(800)
А теперь решим обратную задачу и найдем число продуктов, которое надо закупить, чтобы все продать с вероятностью 80%. Это все равно, что найти число, меньше которого в распределении 20% величин (т.е. 80% продаж больше). Тут нам поможет функция ppf:
distr.ppf(1-0.8)
Еще одна типовая задача - найти такой порог продаж, который в три раза меньше 60% продаж. Сначала находим число меньшее 60% продаж, а затем делим его на три:
distr.ppf(1-0.6)/3