ISlARMAGARCH.CoefficientsAR

Синтаксис Fore

CoefficientsAR: ICoefficients;

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

CoefficientsAR: Prognoz.Platform.Interop.Stat.ICoefficients;

Описание

Свойство CoefficientsAR возвращает коэффициенты несезонной авторегрессии.

Комментарии

Для получения коэффициентов скользящего среднего используйте свойство ISlARMAGARCH.CoefficientsMA.

Пример Fore

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

Sub UserProc;
Var
    armagarch: ISmLinearRegress;
    W: Array[12Of Double;
    X: Array[20Of Double;
    ARMA: ISlARMA;
    AR, MA: Array[1Of Integer;
    Inits: Array[1Of Double;
    res: Integer;
    d: Double;
    CoefficientsAR, CoefficientsMA: ICoefficients;
    ModelCoefficients: IModelCoefficients;
Begin
    armagarch := New SmLinearRegress.Create;
    // значения объясняемого ряда
    w[0] := 2; w[4] := -1.9; w[8] := -0.7;
    w[1] := 0.8; w[5] := Double.Nan; w[9] := Double.Nan;
    w[2] := -0.3; w[6] := 3.2; w[10] := 4.3;
    w[3] := -0.3; w[7] := 1.6; w[11] := 1.1;
    armagarch.Explained.Value := w;
    // значения объясняющего ряда
    x[0] := Double.Nan; x[10] := 11;
    x[1] := 2; x[11] := 12;
    x[2] := 3; x[12] := 13;
    x[3] := 4; x[13] := Double.Nan;
    x[4] := 5; x[14] := 15;
    x[5] := 6; x[15] := 16;
    x[6] := Double.Nan; x[16] := 17;
    x[7] := 8; x[17] := Double.Nan;
    x[8] := 9; x[18] := 19;
    x[9] := 10; x[19] := 20;
    // период идентификации
    armagarch.ModelPeriod.FirstPoint := 1;
    armagarch.ModelPeriod.LastPoint := 12;
    armagarch.Forecast.LastPoint := 19;
    // метод обработки пропусков
    armagarch.MissingData.Method := MissingDataMethod.AnyValue;
    // в модели будет использоваться экзогенная переменная
    armagarch.Explanatories.Clear;
    armagarch.Explanatories.Add.Value := X;
    // начальное приближение экзогенной переменной
    armagarch.Explanatories.Item(0).InitValue := 0.7;
    ModelCoefficients := armagarch.ModelCoefficients;
    // в модели будет использоваться константа
    ModelCoefficients.Intercept.Mode := InterceptMode.AutoEstimate;
    // начальное приближение для константы
    ModelCoefficients.Intercept.InitValue := 3;
    ARMA := armagarch.ARMA;
    // порядок авторегрессии
    AR[0] := 2;
    ARMA.OrderAR := AR;
    // порядок скользящего среднего
    MA[0] := 1;
    ARMA.OrderMA := MA;
    // метод определения начальных приближений
    ARMA.CalcInitMode := ARMAInitType.Manual;
    // начальные приближения авторегрессии
    Inits[0] := 0.2;
    ARMA.InitAR := Inits;
    // начальные приближения скользящего среднего
    Inits[0] := 0.3;
    ARMA.InitMA := Inits;
    // метод оптимизации
    ARMA.EstimationMethod := ARMAEstimationMethodType.GaussNewton;
    //число итераций для метода оптимизации
    ARMA.MaxIteration := 50;
    //точность для метода оптимизации
    ARMA.Tolerance := 0.1;
    // расчет модели
    res := armagarch.Execute;
    Debug.WriteLine(armagarch.Errors);
    If (res = 0Then
        // коэффициенты авторегрессии
        Debug.WriteLine("Оценки коэффициентов авторегрессии");
        CoefficientsAR := ARMA.CoefficientsAR;
        Debug.Indent;
        d := CoefficientsAR.Estimate[0];
        Debug.WriteLine("Значение: " + d.ToString);
        d := CoefficientsAR.StandardError[0];
        Debug.WriteLine("Стандартная ошибка: " + d.ToString);
        d := CoefficientsAR.TStatistic[0];
        Debug.WriteLine("t-статистика: " + d.ToString);
        d := CoefficientsAR.Probability[0];
        Debug.WriteLine("Вероятность: " + d.ToString);
        Debug.Unindent;
        // коэффициенты скользящего среднего
        Debug.WriteLine("Оценки коэффициентов скользящего среднего");
        CoefficientsMA := ARMA.CoefficientsMA;
        Debug.Indent;
        d := CoefficientsMA.Estimate[0];
        Debug.WriteLine("Значение: " + d.ToString);
        d := CoefficientsMA.StandardError[0];
        Debug.WriteLine("Стандартная ошибка: " + d.ToString);
        d := CoefficientsMA.TStatistic[0];
        Debug.WriteLine("t-статистика: " + d.ToString);
        d := CoefficientsMA.Probability[0];
        Debug.WriteLine("Вероятность: " + d.ToString);
        Debug.Unindent;
    End If;
End Sub UserProc;

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

В окно консоли будут выведены оценки коэффициентов авторегрессии и оценки коэффициентов скользящего среднего.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    armagarch: ISmLinearRegress;
    W: Array[12Of double;
    X: Array[20Of double;
    ARMA: ISlARMA;
    AR, MA: Array[1Of integer;
    Inits: Array[1Of double;
    res: integer;
    d: double;
    CoefficientsAR, CoefficientsMA: ICoefficients;
    ModelCoefficients: IModelCoefficients;
Begin
    armagarch := New SmLinearRegress.Create();
    // значения объясняемого ряда
    w[0] := 2; w[4] := -1.9; w[8] := -0.7;
    w[1] := 0.8; w[5] := Double.Nan; w[9] := Double.Nan;
    w[2] := -0.3; w[6] := 3.2; w[10] := 4.3;
    w[3] := -0.3; w[7] := 1.6; w[11] := 1.1;
    armagarch.Explained.Value := w;
    // значения объясняющего ряда
    x[0] := Double.Nan; x[10] := 11;
    x[1] := 2; x[11] := 12;
    x[2] := 3; x[12] := 13;
    x[3] := 4; x[13] := Double.Nan;
    x[4] := 5; x[14] := 15;
    x[5] := 6; x[15] := 16;
    x[6] := Double.Nan; x[16] := 17;
    x[7] := 8; x[17] := Double.Nan;
    x[8] := 9; x[18] := 19;
    x[9] := 10; x[19] := 20;
    // период идентификации
    armagarch.ModelPeriod.FirstPoint := 1;
    armagarch.ModelPeriod.LastPoint := 12;
    armagarch.Forecast.LastPoint := 19;
    // метод обработки пропусков
    armagarch.MissingData.Method := MissingDataMethod.mdmAnyValue;
    // в модели будет использоваться экзогенная переменная
    armagarch.Explanatories.Clear();
    armagarch.Explanatories.Add().Value := X;
    // начальное приближение экзогенной переменной
    armagarch.Explanatories.Item[0].InitValue := 0.7;
    ModelCoefficients := armagarch.ModelCoefficients;
    // в модели будет использоваться константа
    ModelCoefficients.Intercept.Mode := InterceptMode.imAutoEstimate;
    // начальное приближение для константы
    ModelCoefficients.Intercept.InitValue := 3;
    ARMA := armagarch.ARMA;
    // порядок авторегрессии
    AR[0] := 2;
    ARMA.OrderAR := AR;
    // порядок скользящего среднего
    MA[0] := 1;
    ARMA.OrderMA := MA;
    // метод определения начальных приближений
    ARMA.CalcInitMode := ARMAInitType.armaitManual;
    // начальные приближения авторегрессии
    Inits[0] := 0.2;
    ARMA.InitAR := Inits;
    // начальные приближения скользящего среднего
    Inits[0] := 0.3;
    ARMA.InitMA := Inits;
    // метод оптимизации
    ARMA.EstimationMethod := ARMAEstimationMethodType.armaemtGaussNewton;
    //число итераций для метода оптимизации
    ARMA.MaxIteration := 50;
    //точность для метода оптимизации
    ARMA.Tolerance := 0.1;
    // расчет модели
    res := armagarch.Execute();
    System.Diagnostics.Debug.WriteLine(armagarch.Errors);
    If (res = 0Then
        // коэффициенты авторегрессии
        System.Diagnostics.Debug.WriteLine("Оценки коэффициентов авторегрессии");
        CoefficientsAR := ARMA.CoefficientsAR;
        System.Diagnostics.Debug.Indent();
        //d := CoefficientsAR.Estimate[0];
        d := CoefficientsAR.Estimate.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("Значение: " + d.ToString());
        //d := CoefficientsAR.StandardError[0];
        d := CoefficientsAR.StandardError.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("Стандартная ошибка: " + d.ToString());
        //d := CoefficientsAR.TStatistic[0];
        d := CoefficientsAR.TStatistic.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("t-статистика: " + d.ToString());
        //d := CoefficientsAR.Probability[0];
        d := CoefficientsAR.Probability.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("Вероятность: " + d.ToString());
        System.Diagnostics.Debug.Unindent();
        // коэффициенты скользящего среднего
        System.Diagnostics.Debug.WriteLine("Оценки коэффициентов скользящего среднего");
        CoefficientsMA := ARMA.CoefficientsMA;
        System.Diagnostics.Debug.Indent();
        //d := CoefficientsMA.Estimate[0];
        d := CoefficientsMA.Estimate.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("Значение: " + d.ToString());
        //d := CoefficientsMA.StandardError[0];
        d := CoefficientsMA.StandardError.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("Стандартная ошибка: " + d.ToString());
        //d := CoefficientsMA.TStatistic[0];
        d := CoefficientsMA.TStatistic.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("t-статистика: " + d.ToString());
        //d := CoefficientsMA.Probability[0];
        d := CoefficientsMA.Probability.GetValue(0As double;
        System.Diagnostics.Debug.WriteLine("Вероятность: " + d.ToString());
        System.Diagnostics.Debug.Unindent();
    End If;
End Sub;

См. также:

ISlARMAGARCH