MissingData: IMissingData;
MissingData: Prognoz.Platform.Interop.Stat.SlMissingData;
Свойство MissingData определяет метод обработки пропусков.
По умолчанию обработка пропусков не выполняется.
Добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
Grey: ISmGreyForecast;
y: Array[43] Of Double;
d0, d1: Double;
res, i: Integer;
Begin
Grey := New SmGreyForecast.Create;
// Значение Y
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] := 14036; y[18] := 15010; 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] := Double.Nan;
y[30] := 14242; y[31] := 14704; y[32] := 13802; y[33] := 14197; y[34] := Double.Nan;
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.Serie.Value := y;
Grey.ModelPeriod.FirstPoint := 1;
Grey.ModelPeriod.LastPoint := 40;
Grey.Forecast.LastPoint := 45;
Grey.Forecast.ConfidenceLevel := 0.8;
Grey.MissingData.Method := MissingDataMethod.SampleAverage;
res := Grey.Execute;
If res <> 0 Then
Debug.WriteLine(Grey.Errors);
Else
Debug.WriteLine("Исходный ряд / Модельный ряд");
Debug.Indent;
For i := 0 To Grey.ModelPeriod.LastPoint - 1 Do
d0 := Y[i];
d1 := Grey.Fitted[i];
Debug.WriteLine((i+1).ToString + ". " + d0.ToString + " / "+d1.ToString);
End For;
Debug.Unindent;
End If;
End Sub UserProc;
После выполнения примера в окно консоли будут выведены значения исходного и модельного рядов.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
Grey: ISmGreyForecast;
y: Array[43] Of Double;
d0, d1: System.Array;
res, i: Integer;
Begin
Grey := New SmGreyForecast.Create();
// Значение Y
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] := 14036; y[18] := 15010; 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] := Double.Nan;
y[30] := 14242; y[31] := 14704; y[32] := 13802; y[33] := 14197; y[34] := Double.Nan;
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.Serie.Value := y;
Grey.ModelPeriod.FirstPoint := 1;
Grey.ModelPeriod.LastPoint := 40;
Grey.Forecast.LastPoint := 45;
Grey.Forecast.ConfidenceLevel := 0.8;
Grey.MissingData.Method := MissingDataMethod.mdmSampleAverage;
res := Grey.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(Grey.Errors);
Else
System.Diagnostics.Debug.WriteLine("Исходный ряд / Модельный ряд");
System.Diagnostics.Debug.Indent();
For i := 0 To Grey.ModelPeriod.LastPoint - 1 Do
d0 := Y;
d1 := Grey.Fitted;
System.Diagnostics.Debug.WriteLine((i+1).ToString() + ". " + d0[i].ToString() + " / "+d1[i].ToString());
End For;
System.Diagnostics.Debug.Unindent();
End If;
End Sub;
См. также: