MissingData: IMissingData;
MissingData: Prognoz.Platform.Interop.Stat.SlMissingData;
Свойство MissingData определяет параметры обработки пропусков.
По умолчанию обработка пропусков не выполняется.
Добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
ar: SmAutoRegress;
res, i: Integer;
y1: Array[24] Of Double;
AROrder: Array[3] Of Integer;
Begin
ar := New SmAutoRegress.Create;
// значения y1
y1[00] := 6209; y1[01] := 6385; y1[02] := 6752;
y1[03] := 6837; y1[04] := 6495; y1[05] := Double.Nan;
y1[06] := 7349; y1[07] := 7213; y1[08] := 7061;
y1[09] := 7180; y1[10] := 7528; y1[11] := Double.Nan;
y1[12] := 7228; y1[13] := 7722; y1[14] := 8088;
y1[15] := 8516; y1[16] := 8941; y1[17] := Double.Nan;
y1[18] := 9380; y1[19] := 9746; y1[20] := 9907;
y1[21] := 10333; y1[22] := 10863; y1[23] := 11693;
ar.Serie.Value := y1;
ar.ModelPeriod.FirstPoint := 1;
ar.ModelPeriod.LastPoint := 24;
ar.Forecast.LastPoint := 35;
AROrder[0] := 1;
AROrder[1] := 3;
AROrder[2] := 5;
ar.AutoRegressionOrder := AROrder;
ar.MissingData.Method := MissingDataMethod.SampleAverage;
res := ar.Execute;
If res <> 0 Then
Debug.WriteLine(ar.Errors);
Else
Debug.WriteLine("=== Сглаженный ряд ===");
Debug.Indent;
For i := 0 To ar.Fitted.Length - 1 Do
Debug.WriteLine(ar.Fitted[i]);
End For;
Debug.Unindent;
Debug.WriteLine("=== Прогнозный ряд ===");
Debug.Indent;
For i := 0 To ar.Forecast.Value.Length - 1 Do
Debug.WriteLine(ar.Forecast.Value[i]);
End For;
Debug.Unindent;
End If;
End Sub UserProc;
После выполнения примера в окно консоли будет выведен сглаженный и прогнозный ряд.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
ar: SmAutoRegress;
res, i: Integer;
y1: Array[24] Of Double;
AROrder: Array[3] Of Integer;
Fitted, Forecast: System.Array;
Begin
ar := New SmAutoRegress.Create();
// значения y1
y1[00] := 6209; y1[01] := 6385; y1[02] := 6752;
y1[03] := 6837; y1[04] := 6495; y1[05] := Double.Nan;
y1[06] := 7349; y1[07] := 7213; y1[08] := 7061;
y1[09] := 7180; y1[10] := 7528; y1[11] := Double.Nan;
y1[12] := 7228; y1[13] := 7722; y1[14] := 8088;
y1[15] := 8516; y1[16] := 8941; y1[17] := Double.Nan;
y1[18] := 9380; y1[19] := 9746; y1[20] := 9907;
y1[21] := 10333; y1[22] := 10863; y1[23] := 11693;
ar.Serie.Value := y1;
ar.ModelPeriod.FirstPoint := 1;
ar.ModelPeriod.LastPoint := 24;
ar.Forecast.LastPoint := 35;
AROrder[0] := 1;
AROrder[1] := 3;
AROrder[2] := 5;
ar.AutoRegressionOrder := AROrder;
ar.MissingData.Method := MissingDataMethod.mdmSampleAverage;
res := ar.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(ar.Errors);
Else
System.Diagnostics.Debug.WriteLine("=== Сглаженный ряд ===");
System.Diagnostics.Debug.Indent();
Fitted := ar.Fitted;
For i := 0 To ar.Fitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Fitted[i]);
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("=== Прогнозный ряд ===");
System.Diagnostics.Debug.Indent();
Forecast := ar.Forecast.Value;
For i := 0 To ar.Forecast.Value.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Forecast[i]);
End For;
System.Diagnostics.Debug.Unindent();
End If;
End Sub;
См. также: