0
$\begingroup$

I am using generalized additive models (GAMs) to forecast sales for 16 mutually exclusive and exhaustive customer segments. There are naturally correlations in these 16 series, including seasonal effects and the effects of promotions and pricing changes. However, there are also audience-specific effects that make them non-perfectly correlated, such as ability to travel to store (distance), targeted sales, and products available only to specific audiences. The forecasts are built independent of each other, and are generally reasonable to domain experts.

I would like to present the forecasts, with confidence intervals, for each unique audience. But due to some natural hierarchical groupings, I'd separately like to combine the forecasts into higher-level groupings. As well as a singular forecast for all audiences in aggregate. I don't want to refit using hierarchical techniques, I'd just like to aggregate what I already have.

My question is, can I do this with a simple sum of the forecast estimates & their confidence intervals? It feels like I'm not accumulating the errors correctly, but I can't put my hand on any literature that clearly says yes or no (and provide a remedy).

If it matters, the forecasts are developed using the pyGAM package in python.

$\endgroup$
0
$\begingroup$

For simplicity lets consider 2 time series Xt, Yt and their aggregate Zt = Xt + Yt.

  1. Then E[Zt] = E[Xt + Yt] = E[Xt] + E[Yt]. So you can indeed sum forecasts.
  2. For confidence intervals, summing the bounds directly doesn't make sense. Instead you want to compute the variance of the new aggregated series. Assuming independence of Xt and Yt we have Var(Zt) = Var(Xt) + Var(Yt). So you can compute Var(Zt) from here and use that to construct prediction intervals for Zt.
$\endgroup$
  • $\begingroup$ Cheers, @MasterPuri much obliged! $\endgroup$ – Amw 5G Dec 11 '19 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.