I am trying to use Holt-winters Triple Exponential Smoothing technique on a univariate data.
When I am trying to set trend and seasonality component as multiplicative it outputs ‘NAN’ after 12 data points.
This is what I am doing
.plot(figsize=(12,6)).autoscale(axis=’x’,tight=True)
data['TES_12_mul'] = (ExponentialSmoothing(data['auth_rate'],trend='mul',seasonal='mul',seasonal_periods=12).fit().fittedvalues)
This is the output that I get
auth_rate TES_12_mul
date
2021-01-01 0.822201 0.000000
2021-02-01 0.845884 0.845884
2021-03-01 0.868405 0.868405
2021-04-01 0.866245 0.866245
2021-05-01 0.861446 0.861446
2021-06-01 0.859356 0.859356
2021-07-01 0.864788 0.864788
2021-08-01 0.868941 0.868941
2021-09-01 0.875224 0.875224
2021-10-01 0.868509 0.868509
2021-11-01 0.859725 0.859725
2021-12-01 0.842220 0.842220
2022-01-01 0.846683 NaN
2022-02-01 0.839865 NaN
2022-03-01 0.829573 NaN
2022-04-01 0.842664 NaN
2022-05-01 0.853426 NaN
This issue seems to go away when I set additive trend and seasonality
data['TES_12_add'] = (ExponentialSmoothing(data['auth_rate'],trend='add',seasonal='add',seasonal_periods=12)
.fit().fittedvalues)
auth_rate TES_12_add
date
2021-01-01 0.822201 0.822203
2021-02-01 0.845884 0.845884
2021-03-01 0.868405 0.868404
2021-04-01 0.866245 0.866244
2021-05-01 0.861446 0.861447
2021-06-01 0.859356 0.859355
2021-07-01 0.864788 0.864788
2021-08-01 0.868941 0.868941
2021-09-01 0.875224 0.875224
2021-10-01 0.868509 0.868509
2021-11-01 0.859725 0.859725
2021-12-01 0.842220 0.842220
2022-01-01 0.846683 0.822203
2022-02-01 0.839865 0.871654
2022-03-01 0.829573 0.862000
2022-04-01 0.842664 0.825321
2022-05-01 0.853426 0.836687
Why is this difference happening?