Abraão Caldas
Abraão Caldas

Reputation: 715

Negative values in timeseries when removing seasonal values with HoltWinters (R)

i'm new to R, so I'm having trouble with this time series data

For example (the real data is way larger)

data <- c(7,5,3,2,5,2,4,11,5,4,7,22,5,14,18,20,14,22,23,20,23,16,21,23,42,64,39,34,39,43,49,59,30,15,10,12,4,2,4,6,7)

ts <- ts(data,frequency = 12, start = c(2010,1))

So if I try to decompose the data to adjust it

ts.decompose <- decompose(ts)

ts.adjust <- ts - ts.decompose$seasonal

ts.hw <- HoltWinters(ts.adjust)

ts.forecast <- forecast.HoltWinters(ts.hw, h = 10)

plot.forecast(ts.forecast)

But for the first values I got negative values, why this is happening?

Upvotes: 1

Views: 4149

Answers (1)

Stephan Kolassa
Stephan Kolassa

Reputation: 8267

Well, you are forecasting the seasonally adjusted time series, and of course the deseasonalized series ts.adjust can already contain negative values by itself, and in fact, it actually does.

In addition, even if the original series contained only positive values, Holt-Winters can yield negative forecasts. It is not constrained.

I would suggest trying to model your original (not seasonally adjusted) time series directly using ets() in the forecast package. It usually does a good job in detecting seasonality. (And it can also yield negative forecasts or prediction intervals.)

I very much recommend this free online forecasting textbook. Given your specific question, this may also be helpful.

Upvotes: 4

Related Questions