Triple exponential smoothing is a method used to handle time series data that contains a seasonal component. It involves three smoothing equations for the stationary component, trend, and seasonal component. The seasonal and trend components can be either additive or multiplicative. The method supports both multiplicative and additive triple exponential smoothing, with an additive damped method also available. The formulas for multiplicative and additive triple exponential smoothing are provided. The method also includes a damped smoothing factor. The variables used in the formulas are explained in a table.
------

SET SCHEMA DM_PAL;

DROP TABLE #PAL_PARAMETER_TBL;
CREATE LOCAL TEMPORARY COLUMN TABLE #PAL_PARAMETER_TBL (
	"PARAM_NAME " VARCHAR(100),
	"INT_VALUE" INTEGER, 
	"DOUBLE_VALUE" DOUBLE, 
	"STRING_VALUE" VARCHAR (100)
);

INSERT INTO #PAL_PARAMETER_TBL VALUES ('ALPHA', NULL, 0.822, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('BETA', NULL, 0.055, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('GAMMA', NULL, 0.055, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('CYCLE', 4, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('FORECAST_NUM', 6, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('SEASONAL', 0, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('INITIAL_METHOD', 0, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'MSE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('EXPOST_FLAG', 1, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('PREDICTION_CONFIDENCE_1', NULL, 0.8, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('PREDICTION_CONFIDENCE_2', NULL, 0.95, NULL);

DROP TABLE PAL_TRIPLESMOOTH_DATA_TBL;
CREATE COLUMN TABLE PAL_TRIPLESMOOTH_DATA_TBL ("ID" INT, "RAWDATA" DOUBLE);

INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (1,362.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (2,385.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (3,432.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (4,341.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (5,382.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (6,409.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (7,498.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (8,387.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (9,473.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (10,513.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (11,582.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (12,474.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (13,544.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (14,582.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (15,681.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (16,557.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (17,628.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (18,707.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (19,773.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (20,592.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (21,627.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (22,725.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (23,854.0);
INSERT INTO PAL_TRIPLESMOOTH_DATA_TBL VALUES (24,661.0);

CALL _SYS_AFL.PAL_TRIPLE_EXPSMOOTH(PAL_TRIPLESMOOTH_DATA_TBL, #PAL_PARAMETER_TBL, ?,?);

