ISmCurveEstimation.MissingData

Синтаксис Fore

MissingData: IMissingData;

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

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

Описание

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

Комментарии

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

Пример Fore

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

Sub UserProc;
Var
    trend: SmCurveEstimation;
    ar: Array[25Of Double;
    MData: IMissingData;
    status, i: Integer;
Begin
    // Создаем объект для расчета метода
    trend := New SmCurveEstimation.Create;
    // Задаем значения объясняемого ряда
    ar[00] := 4110; ar[01] := 4280; ar[02] := 4459;  ar[03] := 4545;  ar[04] := 4664;
    ar[05] := 4861; ar[06] := 5195; ar[07] := 4664;  ar[08] := 9054;  ar[09] := Double.Nan;
    ar[10] := 5948; ar[11] := 6218; ar[12] := 6521;  ar[13] := 6788;  ar[14] := 7222;
    ar[15] := 7486; ar[16] := 7832; ar[17] := 8153;  ar[18] := 8468;  ar[19] := Double.Nan;
    ar[20] := 9499; ar[21] := 9866; ar[22] := 10217; ar[23] := 10763; ar[24] := 10683;
    trend.Explained.Value := ar;
    // Задаем параметры объясняющего ряда
    trend.Explanatory.IsTrend := True;
    // Задаем границы периода прогнозирования
    trend.ForecastFirstPoint := 20;
    trend.ForecastLastPoint := 25;
    // Задаем параметры сезонной составляющей
    trend.SeasonalComponent.Mode := SeasonalityType.Additive;
    trend.SeasonalComponent.Cycle := 4;
    // Задаем параметры метода обработки пропусков
    MData := trend.MissingData;
    MData.Method := MissingDataMethod.SampleAverage;
    // Выполняем расчет
    status := trend.Execute;
    If status <> 0 Then
        // Если расчет завершился с ошибками, то выводим их в окно консоли
        Debug.WriteLine(trend.Errors);
        Else
            // Если расчет завершился удачно, то выводим в окно консоли значения модельного ряда
            Debug.WriteLine("== Модельный ряд == ");
            Debug.Indent;
            For i := 0 To trend.Explained.Value.Length - 1 Do
                Debug.WriteLine(trend.Explained.Value[i]);
            End For;
            Debug.Unindent;
    End If;
End Sub UserProc;

После выполнения примера в окно консоли будет выведен модельный ряд.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub UserProc();
Var
    trend: SmCurveEstimation;
    ar: Array[
25Of Double;
    MData: IMissingData;
    status, i: Integer;
Begin
    
// Создаем объект для расчета метода
    trend := New SmCurveEstimation.Create();
    
// Задаем значения объясняемого ряда
    ar[00] := 4110; ar[01] := 4280; ar[02] := 4459;  ar[03] := 4545;  ar[04] := 4664;
    ar[
05] := 4861; ar[06] := 5195; ar[07] := 4664;  ar[08] := 9054;  ar[09] := Double.Nan;
    ar[
10] := 5948; ar[11] := 6218; ar[12] := 6521;  ar[13] := 6788;  ar[14] := 7222;
    ar[
15] := 7486; ar[16] := 7832; ar[17] := 8153;  ar[18] := 8468;  ar[19] := Double.Nan;
    ar[
20] := 9499; ar[21] := 9866; ar[22] := 10217; ar[23] := 10763; ar[24] := 10683;
    trend.Explained.Value := ar;
    
// Задаем параметры объясняющего ряда
    trend.Explanatory.IsTrend := True;
    
// Задаем границы периода прогнозирования
    trend.ForecastFirstPoint := 20;
    trend.ForecastLastPoint := 
25;
    
// Задаем параметры сезонной составляющей
    trend.SeasonalComponent.Mode := SeasonalityType.sstAdditive;
    trend.SeasonalComponent.Cycle := 
4;
    
// Задаем параметры метода обработки пропусков
    MData := trend.MissingData;
    MData.Method := MissingDataMethod.mdmSampleAverage;
    
// Выполняем расчет
    status := trend.Execute();
    
If status <> 0 Then
        
// Если расчет завершился с ошибками, то выводим их в окно консоли
        System.Diagnostics.Debug.WriteLine(trend.Errors);
        
Else
            
// Если расчет завершился удачно, то выводим в окно консоли значения модельного ряда
            System.Diagnostics.Debug.WriteLine("== Модельный ряд == ");
            System.Diagnostics.Debug.Indent();
            
For i := 0 To trend.Explained.Value.Length - 1 Do
                System.Diagnostics.Debug.WriteLine(trend.Explained.Value.GetValue(i));
            
End For;
            System.Diagnostics.Debug.Unindent();
    
End If;
End Sub UserProc;

См. также:

ISmCurveEstimation