ISmLinearRegress.AutoRegressionOrder

Синтаксис

AutoRegressionOrder: Array;

Описание

Свойство AutoRegressionOrder определяет массив значений порядков авторегрессии.

Комментарии

Свойство устарело, используйте ISmLinearRegress.ARMA.

Число элементов в массиве равно числу регрессоров, каждый элемент массива - это порядок авторегрессии для определенного регрессора.

Пример

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

Sub UserARMA;
Var
    Method: SmLinearRegress;
    Factors: ISlSeries;
    status: Integer;
    Serie, Factor: Array Of Double;
    AutoRegression: Array Of Integer;
    MovingAverage: ISlMovingAverage;
    // Процедура вывода данных
    Sub Print(Data: Array Of Double);
    Var
        i: Integer;
        d: Double;
    Begin
        Debug.WriteLine("---Begin---");
        For i := 0 To Data.Length - 1 Do
            If Double.IsNan(Data[i]) Then
                Debug.WriteLine(i.ToString + ", ---empty---");
            Else
                d := Data[i];
                Debug.WriteLine(i.ToString + ", " + d.ToString);
            End If;
        End For;
        Debug.WriteLine("---End---");
    End Sub Print;
Begin
    Method := New SmLinearRegress.Create;
    // Задаем объясняемый ряд
    Serie := New Double[20];
    Serie[00] := 6209; Serie[01] := 6385;
    Serie[02] := 6752; Serie[03] := 6837;
    Serie[04] := 6495; Serie[05] := 6907;
    Serie[06] := 7349; Serie[07] := 7213;
    Serie[08] := 7061; Serie[09] := 7180;
    Serie[10] := 7132; Serie[11] := 7137;
    Serie[12] := 7473; Serie[13] := 7722;
    Serie[14] := 8088; Serie[15] := 8516;
    Serie[16] := 8941; Serie[17] := 9064;
    Serie[18] := 9380; Serie[19] := 9746;
    Method.Explained.Value := Serie;
    // Задаем объясняющий ряд
    Factor := New Double[30];
    Factor[00] := 4110; Factor[01] := 4280; Factor[02] := 4459;
    Factor[03] := 4545; Factor[04] := 4664; Factor[05] := 4861;
    Factor[06] := 5195; Factor[07] := 5389; Factor[08] := 5463;
    Factor[09] := 5610; Factor[10] := 5948; Factor[11] := 6218;
    Factor[12] := 6521; Factor[13] := 6788; Factor[14] := 7222;
    Factor[15] := 7486; Factor[16] := 7832; Factor[17] := 8153;
    Factor[18] := 8468; Factor[19] := 9054; Factor[20] := 9907;
    Factor[21] := 10333; Factor[22] := 10863; Factor[23] := 11693;
    Factor[24] := 12242; Factor[25] := 12227; Factor[26] := 12910;
    Factor[27] := 13049; Factor[28] := 13384; Factor[29] := 14036;
    Factors := Method.Explanatories;
    Factors.Add.Value := Factor;
    // Задаем порядок авторегрессии
    AutoRegression := New Integer[1];
    AutoRegression[0] := 1;
    Method.AutoRegressionOrder := AutoRegression;
    // Задаем порядок скользящего среднего
    MovingAverage := Method.MovingAverage;
    MovingAverage.Order := 1;
    // Задаем паарметры идентификации и прогнозирования
    Method.ModelPeriod.LastPoint := 20;
    Method.Forecast.LastPoint := 30;
    // Выполняем расчёт и выводим результаты
    status := Method.Execute;
    If status <> 0 Then
        Debug.WriteLine(Method.Errors);
    Else
        Debug.WriteLine("=== Модельный ряд ===");
        Print(Method.Fitted);
    End If;
End Sub UserARMA;

После выполнения примера в окно консоли будет выведен результат расчёта линейной регрессии (с учетом порядков авторегрессии и скользящего среднего):

Module execution started
=== Модельный ряд ===
---Begin---
0, ---empty---
16308.8871936080559
26471.7885351477735
36733.3512163842852
46820.8779462457242
56652.5058681077217
67010.7198497886648
77350.3278950893746
87282.1928089833591
97223.527613091579
107392.6799238485391
117434.9598356610159
127520.610258716616
137811.2804878565239
148090.9081748603894
158400.2317429192444
168772.0929030022307
179135.2080017110657
189300.7010037270848
199665.1487412507631
---End---
Module execution finished

См. также:

ISmLinearRegress