Why do ses(), holt() and HoltWinters() have different errors despite the same smoothing parameters?

I have a time-series without trend and seasonality. For the sake of showcasing the different forecasting methods, I am plotting each smoothing method with an alpha of 0.1, setting beta and gamma to FALSE. However, when checking for accuracy() for each model I get slightly different errors (RMSE = 226 for SES, 227 for Holt and 233 for HoltWinters). Can someone explain why that is the case?

Just to clarify, you use the ses() and holt() functions from {forecast} and the HoltWinters() function from {stats}? If so, I believe that the latter uses a different method to initialize the state values.

Thank you, that would make sense since HoltWinters() also doesn't give a forecast but only smooths the data. But still, is there an explanation for why the errors vary between ses() and holt()?

Unless you provide data for the forecast period to the accuracy() function, the measures are based only on the data used to fit the model. The report labels the row of measures as "Training set". The fact that HoltWinters() does not automatically generate a forecast should not be relevant to your question.

Exponential smoothing models must choose initial values for the level, slope and/or seasonality, and there is no one best method. For ses() and holt() you can choose between "optimal" and "simple". For HoltWinters() without a trend or seasonality, the initial value of the level is simply the first value in the time series. That
can explain the slightly higher RMSE value for HoltWinters().

I may be misunderstanding your question. Did you fit ses(), holt() without a trend, and HoltWinters() without a trend or seasonality to a time series while also specifying alpha = 0.1 for all three? Because I have not used ses() and holt() for some time, having transitioned to ETS() in Hyndman's newer tidyverts set of packages, I do not recall how it is possible to use the holt() function without a trend. HoltWinter() accepts beta = FALSE but I get an error using that in holt().

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.