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---
1, 6308.8871936080559
2, 6471.7885351477735
3, 6733.3512163842852
4, 6820.8779462457242
5, 6652.5058681077217
6, 7010.7198497886648
7, 7350.3278950893746
8, 7282.1928089833591
9, 7223.527613091579
10, 7392.6799238485391
11, 7434.9598356610159
12, 7520.610258716616
13, 7811.2804878565239
14, 8090.9081748603894
15, 8400.2317429192444
16, 8772.0929030022307
17, 9135.2080017110657
18, 9300.7010037270848
19, 9665.1487412507631
---End---
Module execution finished

См. также:

ISmLinearRegress