The content discusses forecast accuracy measures used in PAL algorithms. These measures are calculated by comparing historical values with forecasted values of the fitted model. The measures supported in PAL include MPE, MSE, RMSE, ET, MAD, MASE, WMAPE, SMAPE, MAPE, and SPEC. SPEC, which is used for stock-keeping-oriented prediction error costs, takes into account stock-keeping costs and opportunity costs. The formula for SPEC includes parameters such as the length of the time series, actual values, forecasted values, opportunity cost parameter, and stock-keeping cost parameter. Unlike other measures, SPEC's result is influenced by the order of the input data, so the ID of the input data is required.
------

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 ('MEASURE_NAME', NULL, NULL, 'MSE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'RMSE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'MPE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'ET');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'MAD');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'MASE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'WMAPE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'SMAPE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('MEASURE_NAME', NULL, NULL, 'MAPE');
INSERT INTO #PAL_PARAMETER_TBL VALUES ('IGNORE_ZERO', 1, NULL, NULL);

DROP TABLE PAL_FORECASTACCURACYMEASURES_DATA_TBL;
CREATE COLUMN TABLE PAL_FORECASTACCURACYMEASURES_DATA_TBL (
	"ACTUALCOL" DOUBLE,
	"FORECASTCOL" DOUBLE
);

INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (1130, 1270);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2410, 2340);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2210, 2310);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2500, 2340);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2432, 2348);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (1980, 1890);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2045, 2100);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2340, 2231);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2460, 2401);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2350, 2310);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2345, 2340);
INSERT INTO PAL_FORECASTACCURACYMEASURES_DATA_TBL VALUES (2650, 2560);

CALL _SYS_AFL.PAL_ACCURACY_MEASURES(PAL_FORECASTACCURACYMEASURES_DATA_TBL, #PAL_PARAMETER_TBL, ?);

