ISmGreyForecast.MissingData

Синтаксис Fore

MissingData: IMissingData;

Синтаксис Fore.NET

MissingData: Prognoz.Platform.Interop.Stat.SlMissingData;

Описание

Свойство MissingData определяет метод обработки пропусков.

Комментарии

По умолчанию обработка пропусков не выполняется.

Пример Fore

Добавьте ссылку на системную сборку Stat.

Sub UserProc;
Var
    Grey: ISmGreyForecast;
    y: Array[43Of 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.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    Grey: ISmGreyForecast;
    y: Array[43Of 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;

См. также:

ISmGreyForecast