ISmLongRunCovariance.LRCKernel

Синтаксис Fore

LRCKernel: LRCKernelType;

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

LRCKernel: Prognoz.Platform.Interop.Stat.LRCKernelType;

Описание

Свойство LRCKernel определяет тип ядра.

Комментарии

Если LRCKernel = LRCKernelType.UserSpecified, то вектор ядра должен быть задан с использованием свойства ISmLongRunCovariance.KernelVector.

Пример Fore

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

Sub UserProc;
Var
    lrc: SmLongRunCovariance;
    can, fra, ger, ita: Array[15Of Double;
    res, i, j: Integer;
    str: String;
    kernel: Array Of Double;
    d: Integer = 2;
Begin
    lrc := New SmLongRunCovariance.Create;
    // задаем значения переменных
    can[0] := 6209; fra[0] := 4110; ger[0] := 3415; ita[0] := 2822;
    can[1] := 6385; fra[1] := 4280; ger[1] := 3673; ita[1] := 3023;
    can[2] := 6752; fra[2] := 4459; ger[2] := 4013; ita[2] := 3131;
    can[3] := 6837; fra[3] := 4545; ger[3] := 4278; ita[3] := 3351;
    can[4] := 6495; fra[4] := 4664; ger[4] := 4577; ita[4] := 3463;
    can[5] := 6907; fra[5] := 4861; ger[5] := 5135; ita[5] := 3686;
    can[6] := 7349; fra[6] := 5195; ger[6] := 5388; ita[6] := 3815;
    can[7] := 7213; fra[7] := 5389; ger[7] := 5610; ita[7] := 3960;
    can[8] := 7061; fra[8] := 5463; ger[8] := 5787; ita[8] := 4119;
    can[9] := 7180; fra[9] := 5610; ger[9] := 6181; ita[9] := 4351;
    can[10] := 7132; fra[10] := 5948; ger[10] := 6633; ita[10] := 4641;
    can[11] := 7137; fra[11] := 6218; ger[11] := 6910; ita[11] := 5008;
    can[12] := 7473; fra[12] := 6521; ger[12] := 7146; ita[12] := 5305;
    can[13] := 7722; fra[13] := 6788; ger[13] := 7248; ita[13] := 5611;
    can[14] := 8088; fra[14] := 7222; ger[14] := 7689; ita[14] := 5693;
    // задаем входные ряды
    lrc.Regressors.Clear;
    lrc.Regressors.Add.Value := can;
    lrc.Regressors.Add.Value := fra;
    lrc.Regressors.Add.Value := ger;
    lrc.Regressors.Add.Value := ita;
    // период идентификации 
    lrc.ModelPeriod.FirstPoint := 1;
    lrc.ModelPeriod.LastPoint := 15;
    // тип окна
    lrc.LRCWindow := LRCWindowType.Symmetric;
    // стандартизация данных
    lrc.RemoveMeans := True;
    // учет количества степеней свободы
    lrc.DFAdjustment := False;
    // параметры ядра
    lrc.LRCKernel := LRCKernelType.UserSpecified;
    // спецификация лага
    lrc.LRCLagSpecification := LRCLagSpecificationType.None;
    // вектор ядра
    If lrc.LRCKernel = LRCKernelType.UserSpecified Then
        kernel := New Double[d];
        kernel[0] := 1; kernel[1] := 2;
        lrc.KernelVector := kernel;
    End If;
    // расчет модели
    res := lrc.Execute;
    Debug.WriteLine(lrc.Errors);
    For i := 0 To lrc.WarningsCount - 1 Do
        Debug.WriteLine(lrc.Warnings[i]);
    End For;
    Debug.WriteLine("Ковариационная матрица: ");
    Debug.Indent;
    For i := 0 To lrc.CovarianceMatrix.GetUpperBound(1Do
        str := "";
        For j := 0 To lrc.CovarianceMatrix.GetUpperBound(2Do
            str := str + (lrc.CovarianceMatrix[i, j] As Double).ToString + "  ";
        End For;
        Debug.WriteLine(str);
    End For;
    Debug.Unindent;
End Sub UserProc;

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

В окно консоли будут выведена ковариационная матрица.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    lrc: SmLongRunCovariance;
    Regressors: ISlSerie;
    can, fra, ger, ita: Array[15Of Double;
    res, i, j: Integer;
    str: String;
    kernel: Array Of Double;
    d: Integer = 2;
    Matrix, Warnings: Array;
Begin
    lrc := New SmLongRunCovariance.Create();
    // задаем значения переменных
    can[0] := 6209; fra[0] := 4110; ger[0] := 3415; ita[0] := 2822;
    can[1] := 6385; fra[1] := 4280; ger[1] := 3673; ita[1] := 3023;
    can[2] := 6752; fra[2] := 4459; ger[2] := 4013; ita[2] := 3131;
    can[3] := 6837; fra[3] := 4545; ger[3] := 4278; ita[3] := 3351;
    can[4] := 6495; fra[4] := 4664; ger[4] := 4577; ita[4] := 3463;
    can[5] := 6907; fra[5] := 4861; ger[5] := 5135; ita[5] := 3686;
    can[6] := 7349; fra[6] := 5195; ger[6] := 5388; ita[6] := 3815;
    can[7] := 7213; fra[7] := 5389; ger[7] := 5610; ita[7] := 3960;
    can[8] := 7061; fra[8] := 5463; ger[8] := 5787; ita[8] := 4119;
    can[9] := 7180; fra[9] := 5610; ger[9] := 6181; ita[9] := 4351;
    can[10] := 7132; fra[10] := 5948; ger[10] := 6633; ita[10] := 4641;
    can[11] := 7137; fra[11] := 6218; ger[11] := 6910; ita[11] := 5008;
    can[12] := 7473; fra[12] := 6521; ger[12] := 7146; ita[12] := 5305;
    can[13] := 7722; fra[13] := 6788; ger[13] := 7248; ita[13] := 5611;
    can[14] := 8088; fra[14] := 7222; ger[14] := 7689; ita[14] := 5693;
    // задаем входные ряды
    lrc.Regressors.Clear();
    Regressors := lrc.Regressors.Add();
    Regressors.Value := can;
    Regressors.Value := fra;
    Regressors.Value := ger;
    Regressors.Value := ita;
    // период идентификации 
    lrc.ModelPeriod.FirstPoint := 1;
    lrc.ModelPeriod.LastPoint := 15;
    // тип окна
    lrc.LRCWindow := LRCWindowType.lrcwSymmetric;
    // стандартизация данных
    lrc.RemoveMeans := True;
    // учет количества степеней свободы
    lrc.DFAdjustment := False;
    // параметры ядра
    lrc.LRCKernel := LRCKernelType.lrckUserSpecified;
    // спецификация лага
    lrc.LRCLagSpecification := LRCLagSpecificationType.lrclsNone;
    // вектор ядра
    If lrc.LRCKernel = LRCKernelType.lrckUserSpecified Then
        kernel := New Double[d];
        kernel[0] := 1; kernel[1] := 2;
        lrc.KernelVector := kernel;
    End If;
    // расчет модели
    res := lrc.Execute();
    System.Diagnostics.Debug.WriteLine(lrc.Errors);
    Warnings := lrc.Warnings;
    For i := 0 To lrc.WarningsCount - 1 Do
        System.Diagnostics.Debug.WriteLine(Warnings[i]);
    End For;
    System.Diagnostics.Debug.WriteLine("Ковариационная матрица: ");
    Matrix := lrc.CovarianceMatrix;
    System.Diagnostics.Debug.Indent();
    Matrix := lrc.CovarianceMatrix;
    For i := 0 To lrc.CovarianceMatrix.GetUpperBound(0Do
        str := "";
        For j := 0 To lrc.CovarianceMatrix.GetUpperBound(1Do
            str := str + (Matrix[i, j] As Double).ToString() + "    ";
        End For;
        System.Diagnostics.Debug.WriteLine(str);
    End For;
    System.Diagnostics.Debug.Unindent();
End Sub;

См. также:

ISmLongRunCovariance