Подбирайте модель VAR к симулированным данным

Этот пример симулирует данные из произвольной 3-D модели VAR (2) и подбирает модель VAR (2) к симулированным данным.

Создайте следующую модель VAR.

yt=[10.5-0.5]+[0.3-0.10.050.10.20.1-0.10.20.4]yt-1+[0.10.050.0010.0010.10.01-0.01-0.010.2]yt-2+[0.5-0.20]t+Lεt.

εt 3-D стандартная Гауссова случайная переменная и L 3х3 единичная матрица.

Constant = [1; 0.5; -0.5];
AR1 = [0.3 -0.1 0.05; 0.1 0.2 0.1; -0.1 0.2 0.4];
AR2 = [0.1 0.05 0.001; 0.001 0.1 0.01; -0.01 -0.01 0.2];
Trend = [0.5; -0.2; 0];
L = eye(3);
TrueMdl = varm('Constant',Constant,'AR',{AR1 AR2},'Trend',Trend,...
    'Covariance',L);

TrueMdl полностью заданный varm объект модели, что означает все параметры его соответствующей модели VAR (2), известен.

Сгенерируйте путь к временным рядам длины 100 использований simulate.

rng(1); % For reproducibility
numobs = 100;
Y = simulate(TrueMdl,numobs);

Создайте 3-D шаблон модели VAR (2) для оценки. Задайте присутствие линейного компонента тренда.

Mdl = varm(3,2);
Mdl.Trend = nan(Mdl.NumSeries,1);

Mdl varm объект модели, служащий шаблоном для оценки.

Подбирайте модель VAR к симулированным данным путем вызова estimate.

EstMdl = estimate(Mdl,Y);

EstMdl полностью заданный, предполагаемый varm объект модели. Объем выборки оценки равняется 98 потому что estimate требует 2 преддемонстрационных наблюдений для инициализации.

Сравните предполагаемую модель с истинной моделью.

results = summarize(EstMdl)
results = struct with fields:
               Description: "AR-Stationary 3-Dimensional VAR(2) Model with Linear Time Trend"
                SampleSize: 98
    NumEstimatedParameters: 24
             LogLikelihood: -396.0032
                       AIC: 840.0063
                       BIC: 902.0456
                     Table: [24x4 table]
                Covariance: [3x3 double]
               Correlation: [3x3 double]

Lhat = chol(EstMdl.Covariance,'lower')
Lhat = 3×3

    0.9632         0         0
   -0.0926    0.9555         0
    0.0337   -0.0190    0.8755

trueValues = [Constant; AR1(:); AR2(:); Trend];
compCoeff = abs(results.Table.Value - trueValues);
twoSE = compCoeff > 2*results.Table.StandardError
twoSE = 24x1 logical array

   1
   0
   0
   0
   0
   0
   0
   0
   0
   0
      ⋮

Оценка L, инновационная матрица шкалы, довольно близко в величине к единичной матрице. Только предполагаемая константа в первом ряду ответа является двумя стандартными погрешностями далее от его истинного значения.

Смотрите также

Объекты

Функции

Похожие темы