I am confused with the Winter Holt's Time series model usage. I use 2 years of data to train and want to predict 3rd-year data.
Note1: I have partial 3rd year's data, but I want to use it to check my forecasting.
If I use:
model = ExponentialSmoothing(data,
trend=None,
seasonal='mul',
seasonal_periods=seasonal_periods,
use_boxcox=False)
model_fit = model.fit(smoothing_level=alpha,
smoothing_trend=beta,
smoothing_seasonal=gamma)
forecast = model_fit.predict(365)
I get where the blue was my 2 years training data and orange was my forecasted data.
Note2: The blue data below the orange is the data that I didn't use for training. It's just overlaid to compare the predictions.
However, when I use
model = ExponentialSmoothing(data[var],
trend=None,
seasonal='mul',
seasonal_periods=seasonal_periods,
use_boxcox=False)
model_fit = model.fit(smoothing_level=alpha,
smoothing_trend=beta,
smoothing_seasonal=gamma)
forecast = model_fit.forecast(365)
I get: . If I understood correctly, it forecasts one periodic cycle and then, using that cycle predicts the next one and vice versa. Since it did not fit any trend, it just repeats the seasonal cycle.
What is the difference between
predict()
andforecast()
methods?Also, can you suggest how I tackle this problem better using Holt Winter's model?
I feel the trend first decreases and then increases, which I don't see the model understanding if I use a 'multiplicative'
or 'additive'
trend in the model's fit configuration.
Should I subtract the data of 1st year from the second year and then use only 2nd year's modified data (due to subtraction) to predict the third year using
model.forecast()
? (Of course, I will have to add the data of 2nd year to the 3rd year forecasted data).Is my understanding correct?
Do you have any other suggestions to introduce such a trend in the model parameters?
ExponentialSmoothing()
? sktime or statsmodels, Darts? $\endgroup$