SeasonalMovingAverage: Array;
Свойство SeasonalMovingAverage определяет начальные значения для коэффициентов сезонного скользящего среднего.
Количество коэффициентов зависит от значения свойства SeasonalMovingAverageOrder.
По умолчанию начальные значения для коэффициентов имеют значение «0».
Sub Main;
Var
ARIMA: SmArima;
d0: Double;
res, i: Integer;
can, InitialValuesAR: Array Of Double;
InitValues: IArimaSpecificationInitialValues;
Begin
ARIMA := New SmArima.Create;
can := New Double[25];
can[00] := 6209;
can[01] := 6385;
can[02] := 6752;
can[03] := 6837;
can[04] := 6495;
can[05] := 6907;
can[06] := 7349;
can[07] := 7213;
can[08] := 7061;
can[09] := 7180;
can[10] := 7132;
can[11] := 7137;
can[12] := 7473;
can[13] := 7722;
can[14] := 8088;
can[15] := 8516;
can[16] := 8941;
can[17] := 9064;
can[18] := 9380;
can[19] := 9746;
can[20] := 9907;
can[21] := 10333;
can[22] := 10863;
can[23] := 11693;
can[24] := 12242;
ARIMA.Serie.Value := can;
ARIMA.ArimaSpecification.AutoRegressionOrder := 1;
ARIMA.ArimaSpecification.MovingAverageOrder := 2;
ARIMA.ArimaSpecification.Cycle := 4;
ARIMA.ArimaSpecification.SeasonalAutoRegressionOrder := 1;
ARIMA.ArimaSpecification.SeasonalMovingAverageOrder := 2;
ARIMA.ArimaSpecification.SeasonalDifferenceOrder := 1;
ARIMA.ModelCoefficients.Intercept.Mode := InterceptMode.AutoEstimate;
ARIMA.Forecast.LastPoint := 50;
ARIMA.MaxIteration := 1000;
InitialValuesAR := New Double[2];
InitialValuesAR[0] := 0.1;
InitialValuesAR[1] := 0.1;
InitValues := ARIMA.InitialValueS;
InitValues.SeasonalMovingAverage := InitialValuesAR;
res := ARIMA.Execute;
Debug.WriteLine(res.ToString);
Debug.WriteLine("==== Прогноз ====");
For i := ARIMA.ModelPeriod.LastPoint To ARIMA.Forecast.Value.GetUpperBound(1) Do
d0 := ARIMA.Forecast.Value[i];
Debug.WriteLine(i.ToString + ", " + d0.ToString);
End For;
End Sub Main;
После выполнения примера в окно консоли будут выведены прогнозные значения:
Module execution started
0
==== Прогноз ====
25, 12636.482109016037
26, 13041.24796445494
27, 13601.481085977053
28, 13931.505879643601
29, 14233.620526920235
30, 14578.697968022951
31, 14983.956610447251
32, 15188.40912091774
33, 15448.606272883246
34, 15772.078260862387
35, 16108.401867030516
36, 16257.816475780941
37, 16503.333840743326
38, 16821.648249549682
39, 17129.404367380917
40, 17256.695399946017
41, 17499.446794542913
42, 17819.348823613571
43, 18117.01951840911
44, 18237.114944772329
45, 18481.86866778848
46, 18805.675887157846
47, 19101.360327077888
48, 19220.686702278188
49, 19468.974465713105
Module execution finished
См. также: