ISmVectorAutoRegress.MissingData

Синтаксис Fore

MissingData: IMissingData;

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

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

Описание

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

Комментарии

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

Пример Fore

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

Sub UserProc;
Var
    VarModel: ISmVectorAutoRegress;
    y1, y2: Array[15Of Double;
    status: Integer;
    Eqs: ISlEquations;
    Eq: ISlEquation;
    ARO: Array[2Of Integer;
    VARStat: IVARStatistics;
Begin
    VarModel := New SmVectorAutoRegress.Create;
    //значения массивов y1 и y2
    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] := 7132;  y1[11] := Double.Nan;
    y1[12] := 7473;  y1[13] := 7722;  y1[14] := 8088;
    y2[00] := 4110;  y2[01] := 4280;  y2[02] := 4459;
    y2[03] := 4545;  y2[04] := 4664;  y2[05] := 4861;
    y2[06] := 5195;  y2[07] := 5389;  y2[08] := 5463;
    y2[09] := 5610;  y2[10] := 5948;  y2[11] := 6218;
    y2[12] := 6521;  y2[13] := 6788;  y2[14] := 7222;
    Eqs := VarModel.Equations;
    Eq := Eqs.Add;
    Eq.Serie.Value := y1;
    Eq.AutoRegressionOrder := ARO;
    Eq.Forecast.LastPoint := 43;
    Eq.Intercept.Mode := InterceptMode.AutoEstimate;
    Eq := Eqs.Add;
    Eq.Serie.Value := y2;
    Eq.AutoRegressionOrder := ARO;
    Eq.Intercept.Mode := InterceptMode.AutoEstimate;
    VarModel.ModelPeriod.FirstPoint := 1;
    VarModel.ModelPeriod.LastPoint := 10;
    Eq.Forecast.LastPoint := 15;
    VarModel.MissingData.Method := MissingDataMethod.SampleAverage;
    status := VarModel.Execute;
    If status <> 0 Then
        Debug.WriteLine(VarModel.Errors);
        Else
            VARStat := VarModel.VARStatistics;
            Debug.WriteLine("AIC = " + VARStat.AIC.ToString);
            Debug.WriteLine("LLV = " + VARStat.LLV.ToString);
            Debug.WriteLine("RC = " + VARStat.RC.ToString);
            Debug.WriteLine("SC = " + VARStat.SC.ToString);
    End If
End Sub UserProc;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    VarModel: ISmVectorAutoRegress;
    y1, y2: Array[15Of Double;
    status: Integer;
    Eqs: ISlEquations;
    Eq: ISlEquation;
    ARO: Array[2Of Integer;
    VARStat: IVARStatistics;
Begin
    VarModel := New SmVectorAutoRegress.Create();
    //значения массивов y1 и y2
    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] := 7132;  y1[11] := Double.Nan;
    y1[12] := 7473;  y1[13] := 7722;  y1[14] := 8088;
    y2[00] := 4110;  y2[01] := 4280;  y2[02] := 4459;
    y2[03] := 4545;  y2[04] := 4664;  y2[05] := 4861;
    y2[06] := 5195;  y2[07] := 5389;  y2[08] := 5463;
    y2[09] := 5610;  y2[10] := 5948;  y2[11] := 6218;
    y2[12] := 6521;  y2[13] := 6788;  y2[14] := 7222;
    Eqs := VarModel.Equations;
    Eq := Eqs.Add();
    Eq.Serie.Value := y1;
    Eq.AutoRegressionOrder := ARO;
    Eq.Forecast.LastPoint := 43;
    Eq.Intercept.Mode := InterceptMode.imAutoEstimate;
    Eq := Eqs.Add();
    Eq.Serie.Value := y2;
    Eq.AutoRegressionOrder := ARO;
    Eq.Intercept.Mode := InterceptMode.imAutoEstimate;
    VarModel.ModelPeriod.FirstPoint := 1;
    VarModel.ModelPeriod.LastPoint := 10;
    Eq.Forecast.LastPoint := 15;
    VarModel.MissingData.Method := MissingDataMethod.mdmSampleAverage;
    status := VarModel.Execute();
    If status <> 0 Then
        System.Diagnostics.Debug.WriteLine(VarModel.Errors);
        Else
            VARStat := VarModel.VARStatistics;
            System.Diagnostics.Debug.WriteLine("AIC = " + VARStat.AIC.ToString());
            System.Diagnostics.Debug.WriteLine("LLV = " + VARStat.LLV.ToString());
            System.Diagnostics.Debug.WriteLine("RC = " + VARStat.RC.ToString());
            System.Diagnostics.Debug.WriteLine("SC = " + VARStat.SC.ToString());
    End If;
End Sub;

См. также:

ISmVectorAutoRegress