Этот пример моделирует данные из произвольной 3-D модели VAR (2) и соответствует модели VAR (2) к моделируемым данным.
Создайте следующую модель VAR.
3-D стандартная Гауссова случайная переменная и 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
, инновации масштабируют матрицу, довольно близка в значении к единичной матрице. Только предполагаемая константа в первом ряду ответа является двумя стандартными погрешностями далее от его истинного значения.