У меня также есть другой набор данных с почасовой (06:00–22:00) долей продаж.Я попробовал простой метод сопоставления ежедневных и почасовых продаж на основе пропорции, но он оказался не очень точным (общие дневные продажи не совпадают).
Я хочу перераспределить дневной прогнозируемый уровень на основе исторической доли продаж по часам, используя библиотеку иерархических прогнозов. Или как лучше всего перераспределить прогнозируемый дневной уровень на почасовой?
average_hourly_proportion df:
Код: Выделить всё
date hour proportion
0 2023-01-01 6 0.000000
1 2023-01-01 7 0.000000
2 2023-01-01 8 0.016458
3 2023-01-01 9 0.017825
4 2023-01-01 10 0.0390
Код: Выделить всё
date sales
0 2023-01-01 3840.10
1 2023-01-02 3323.80
2 2023-01-03 2605.40
3 2023-01-04 2616.60
4 2023-01-05 2622.89
5 2023-01-06 3596.50
6 2023-01-07 3769.77
7 2023-01-08 3572.30
8 2023-01-09 2381.50
9 2023-01-10 2900.00
Код: Выделить всё
date hour sales proportion
0 2023-01-01 6 0.00 0.000000
1 2023-01-01 7 0.00 0.000000
2 2023-01-01 8 63.20 0.016458
3 2023-01-01 9 68.45 0.017825
4 2023-01-01 10 150.05 0.039075
дата час распродажа promo_available
0 01.01.2023 6 0,00 1
1 01.01.2023 7 0,00 1
2 01.01.2023 8 63,20 1
3 01.01.2023 9 68,45 1
4 01.01.2023 10 150,05 1
... ... ... . .. ...
7220 29 февраля 2024 г. 18 373,00 1
7221 29 февраля 2024 г. 19 445,00 1
7222 29 февраля 2024 г. 20 431,80 1
7223 2024 г. -02-29 21 458,20 1
7224 2024-02-29 22 373,80 1
7225 строк × 4 столбца
Код:
Код: Выделить всё
from hierarchicalforecast.core import HierarchicalReconciliation
from hierarchicalforecast.methods import BottomUp, TopDown, MiddleOut
from statsforecast.core import StatsForecast
from statsforecast.models import AutoARIMA, Naive
# retain rows where date column is from 2023-01-01 to 2024-02-29
combined = combined[(combined['date'] >= '2023-01-01') & (combined['date']
Подробнее здесь: [url]https://stackoverflow.com/questions/78637126/how-best-to-redistribute-predicted-daily-sales-to-the-hourly-level[/url]