IMissingData.Method

Синтаксис Fore

Method: MissingDataMethod;

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

Method: Prognoz.Platform.Interop.Stat.MissingDataMethod;

Описание

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

Комментарии

Пропуск является пустым значением в массиве данных.

По умолчанию в большинстве методов используется MissingDataMethod.Casewise. В тех методах, в которых MissingDataMethod.Casewise неприменим, используется MissingDataMethod.None.

Пример Fore

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

Sub UserProc;
Var
    LR: ISmLinearRegress;
    serie: Array[10Of Double;
    status, i: Integer;
    Intercept: IIntercept;
Begin
    LR := New SmLinearRegress.Create;
    serie[0] := 0;
    serie[1] := 0;
    serie[2] := 0.878471616;
    serie[3] := 0.85401205;
    serie[4] := Double.Nan;
    serie[5] := 1.28083579;
    serie[6] := Double.Nan;
    serie[7] := 4.237308214;
    serie[8] := 4.864879297;
    serie[9] := 7.765499027;
    LR.Explained.Value := serie;
    LR.Forecast.LastPoint := 40;
    // Метод обработки пропусков
    LR.MissingData.Method := MissingDataMethod.NPointsAverage;
    // Дополнительный параметр для метода обработки пропусков
    LR.MissingData.MethodParameter := 2;
    Intercept := LR.ModelCoefficients.Intercept;
    Intercept.Mode := InterceptMode.ManualEstimate;
    Intercept.Estimate := 10;
    status := LR.Execute;
    Debug.WriteLine("Полученный ряд");
    Debug.Indent;
    For i := 0 To LR.Explained.Value.Length - 1 Do
        Debug.WriteLine(LR.Explained.Value[i]);
    End For;
    Debug.Unindent;
    Debug.WriteLine("Исходный ряд");
    Debug.Indent;
    For i := 0 To LR.Explained.OriginalValue.Length - 1 do
        Debug.WriteLine(LR.Explained.OriginalValue[i]);
    End For;
    Debug.Unindent;
End Sub UserProc;

В результате выполнения примера заданы настройки:

В окно консоли будет выведены исходный и полученный ряды.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    LR: ISmLinearRegress;
    serie: Array[10Of double;
    Value, OriginalValue: System.Array;
    status, i: integer;
    Intercept: IIntercept;
Begin
    LR := New SmLinearRegress.Create();
    serie[0] := 0;
    serie[1] := 0;
    serie[2] := 0.878471616;
    serie[3] := 0.85401205;
    serie[4] := Double.Nan;
    serie[5] := 1.28083579;
    serie[6] := Double.Nan;
    serie[7] := 4.237308214;
    serie[8] := 4.864879297;
    serie[9] := 7.765499027;
    LR.Explained.Value := serie;
    LR.Forecast.LastPoint := 40;
    // Метод обработки пропусков
    LR.MissingData.Method := MissingDataMethod.mdmNPointsAverage;
    // Дополнительный параметр для метода обработки пропусков
    LR.MissingData.MethodParameter := 2;
    Intercept := LR.ModelCoefficients.Intercept;
    Intercept.Mode := InterceptMode.imManualEstimate;
    Intercept.Estimate := 10;
    status := LR.Execute();
    Value := LR.Explained.Value;
    OriginalValue := LR.Explained.OriginalValue;
    System.Diagnostics.Debug.WriteLine("Полученный ряд");
    System.Diagnostics.Debug.Indent();
    For i := 0 To Value.Length - 1 do
        System.Diagnostics.Debug.WriteLine(Value[i]);
    End For;
    System.Diagnostics.Debug.Unindent();
    System.Diagnostics.Debug.WriteLine("Исходный ряд");
    System.Diagnostics.Debug.Indent();
    For i := 0 To OriginalValue.Length - 1 Do
        System.Diagnostics.Debug.WriteLine(OriginalValue[i]);
    End For;
    System.Diagnostics.Debug.Unindent();
End Sub;

См. также:

IMissingData