首页 > 解决方案 > 如何使用包括(非促销和促销)销售的销售数据创建基线预测?

问题描述

我有一个带有销售列和另一列(基本/促销)编码 1 或 0 的 df。我想创建一个基线预测。所以我必须排除/忽略促销销售。通过这样做,我的时间序列中会出现多个差距......有没有一种方法可以根据包含促销周的销售数据来预测基线销售?

这是一个可重现的df:

df <- data.frame(Sales =c(50,75,450,56,65,790,45,59,49,63,750,65,49,57,695,834,76,58,69,71,540,830,43), 
Non-Promo/Promo=c(0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0))             
df

我希望你能帮助解决这个问题,因为我没有想法。非常感谢!!!

标签: rforecastbaselinepromotions

解决方案


假设您有每周数据my_sales,并且促销活动是promo

my_sales = ts(c(50,75,450,56,65,790,45,59,49,63,750,65,49,57,695,834,76,58,69,71,
             540,830,43), frequency = 52, start = c(2020,1))

promo = as.data.frame( c(0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1))          

colnames(promo) <- "xreg"

我们拟合了一个 arima 模型,包括以下促销活动:

library(forecast)

fit <- auto.arima(my_sales, xreg = as.matrix(promo))

要进行预测,您需要了解未来的事件。因此,我刚刚在您的示例前 11 周创建了这个 future_promo 示例

future_promo = as.data.frame(c(0,0,0,1,0,0,1,0,0,0,0))

colnames(future_promo) <- "xreg"

fc <- forecast(fit, xreg = as.matrix(future_promo))
plot(fc)
fc

fc$mean是您提前 11 周的预测点吗


推荐阅读