ModelPeriod: IStatPeriod;
Свойство ModelPeriod определяет параметры периода идентификации.
Sub Main;
Var
Grey: ISmGreyForecast;
d0, d1, d2: Double;
res, i: Integer;
y: Array Of Double;
Begin
// значение y
y := New Double[43];
y[00] := 6209;
y[01] := 6385;
y[02] := 6752;
y[03] := 6837;
y[04] := 6495;
y[05] := 6907;
y[06] := 7349;
y[07] := 7213;
y[08] := 7061;
y[09] := Double.Nan;
y[10] := 7132;
y[11] := 7137;
y[12] := 7473;
y[13] := 7722;
y[14] := 8088;
y[15] := 8516;
y[16] := 8941;
y[17] := Double.Nan;
y[18] := Double.Nan;
y[19] := 9746;
y[20] := 9907;
y[21] := 10333;
y[22] := 10863;
y[23] := 11693;
y[24] := 12242;
y[25] := 12227;
y[26] := 12910;
y[27] := 13049;
y[28] := 13384;
y[29] := 14036;
y[30] := 14242;
y[31] := 14704;
y[32] := 13802;
y[33] := 14197;
y[34] := 15010;
y[35] := 15589;
y[36] := 15932;
y[37] := 16631;
y[38] := 17394;
y[39] := 17758;
y[40] := 17308;
y[41] := 16444;
y[42] := 16413;
Grey := New SmGreyForecast.Create;
Grey.Serie.Value := y;
Grey.ModelPeriod.FirstPoint := 5;
Grey.ModelPeriod.LastPoint := 40;
Grey.Forecast.LastPoint := 53;
Grey.Forecast.ConfidenceLevel := 0.8;
Grey.MissingData.Method := MissingDataMethod.SampleAverage;
res := Grey.Execute;
If res <> 0 Then
Debug.WriteLine(Grey.Errors);
Else
Debug.WriteLine(" нижняя доверительная граница, Прогноз, верхняя доверительная граница");
For i := Grey.ModelPeriod.LastPoint+1 To Grey.Forecast.LastPoint Do
d0 := Grey.Forecast.LowerConfidenceLevel[i-1];
d1 := Grey.Forecast.Value[i-1];
d2 := Grey.Forecast.UpperConfidenceLevel[i-1];
Debug.WriteLine(i.ToString+" - "+d0.ToString+" - "+d1.ToString+" - "+d2.ToString);
End For;
End If;
End Sub Main;
После выполнения примера в окно консоли будут выведены значения прогнозного ряда, а также значения верхней и нижней доверительных границ:
Module execution started
нижняя доверительная граница, Прогноз, верхняя доверительная граница
41 - 16996.236518557871 - 18117.324213734595 - 19238.411908911319
42 - 17495.761542642711 - 18616.849237819435 - 19737.936932996159
43 - 18009.059309696768 - 19130.147004873492 - 20251.234700050216
44 - 18536.509557350179 - 19657.597252526903 - 20778.684947703627
45 - 19078.502493237018 - 20199.590188413742 - 21320.677883590466
46 - 19635.439083670488 - 20756.526778847212 - 21877.614474023936
47 - 20207.731350276375 - 21328.8190454531 - 22449.906740629824
48 - 20795.802674810158 - 21916.890369986882 - 23037.978065163607
49 - 21400.088112371148 - 22521.175807547872 - 23642.263502724596
50 - 22021.034713258025 - 23142.122408434749 - 24263.210103611473
51 - 22659.101853695804 - 23780.189548872528 - 24901.277244049252
52 - 23314.761575683591 - 24435.849270860315 - 25556.936966037039
53 - 23988.498936209933 - 25109.586631386657 - 26230.674326563381
Module execution finished
См. также: