Как выглядит распределение продаж одного товара по частотности
Что проверяют
Понимаете ли вы, как на самом деле выглядят продажи одного SKU по дням: дискретные значения, много нулей и длинный правый хвост. Это проверка статистической интуиции перед задачей прогноза спроса. Следом обычно спрашивают, какое распределение вы возьмёте для модели и почему не нормальное.
Как отвечать
Сначала договоритесь о единице: штуки за день по товару в магазине, за неделю по сети или штуки в одном чеке. Форма у этих распределений разная. Для типичного товара в разрезе «день и магазин» картина такая:
- много нулей: у большей части ассортимента в конкретном магазине продаж нет в большинство дней, это прерывистый (intermittent) спрос;
- дискретность и правая асимметрия: основная масса значений в районе 0, 1, 2 штук и редкие большие значения от оптовых покупок и промо;
- сверхдисперсия: дисперсия заметно больше среднего, поэтому распределение Пуассона обычно недооценивает хвост, а отрицательное биномиальное или модели с нулевой инфляцией (zero-inflated) описывают данные лучше;
- смесь режимов: промо, сезон и день недели складывают несколько распределений в одно, и гистограмма получается многогорбой.
Как показать это на практике: восстановить полный календарь через reindex или asfreq в pandas, иначе дней без продаж в выборке просто нет, затем value_counts().sort_index() и столбчатая диаграмма по целым значениям, для хвоста логарифмическая шкала. Сравните mean() и var(): это самый быстрый тест на сверхдисперсию. Для прогноза прерывистого спроса стоит назвать метод Кростона и метрики, которые не ломаются на нулях, например WAPE вместо MAPE.
Где спотыкаются
Отвечают «примерно нормальное» и строят гистограмму с автоматическими корзинами. Для счётных данных с медианой около нуля это неверно, и интервьюер видит это сразу.
Считают распределение по таблице продаж без календаря. Строк с нулём там нет, среднее завышается, а доля нулей теряется целиком.
Не отделяют нулевой спрос от нулевого остатка. День, когда товара не было на полке, это цензурированный спрос, а не отсутствие покупателей, и такие дни нужно помечать или исключать из обучения.