В этом примере показано, как включать внешние данные для нескольких исследований на вид несвязанной регрессии (SUR). Ответ и внешний ряд являются случайными путями от стандартного Распределения Гаусса.
В на вид несвязанной регрессии (SUR) каждая переменная отклика является функцией подмножества внешнего ряда, но не любой эндогенной переменной. Таким образом, для и , модель для ответа в период
Индексы коэффициентов регрессии и внешних предикторов указывают что:
Можно сопоставить каждый ответ с различным подмножеством внешних предикторов.
Ряд ответа не может совместно использовать прерывания или коэффициенты регрессии.
SUR размещает инновационную корреляцию внутрипериода, но инновационную независимость межпериода, т.е.
Предположим, что истинная модель
где , многомерные Гауссовы случайные переменные каждый имеющий средний нуль и совместно имеющий ковариационную матрицу
Предположим, что пути представляют различные эконометрические измерения, например, запас возвращается.
Симулируйте четыре внешних пути к предиктору от стандартного Распределения Гаусса.
rng(1); % For reproducibility n = 3; % Number of response series nExo = 4; % Number of exogenous series T = 100; X = randn(100,nExo);
mvregress
, рабочая лошадь estimate
, требует, чтобы вы ввели внешние данные в T
- 1 вектор ячейки. Ячейка из ячейки вектор матрица проекта указание на линейное соотношение внешних переменных с каждым рядом ответа в период . Однако estimate
партнеры каждый предиктор к каждому ответу. В результате estimate
требует данных о предикторе в матрице.
Создайте объект модели VAR, который характеризует истинную модель. Симулируйте длину 100 путей ответов из модели.
aTrue = [1; -1; 0.5]; bTrue = [[2; 4; -2] [-1.5; 2.5; 0.5] [0.5; -1.75; -1.5] [0.75; -0.05; 0.7]]; InnovCov = [1 0.5 -0.05; 0.5 1 0.25; -0.05 0.25 1]; TrueMdl = varm('Beta',bTrue,'Constant',aTrue,'Covariance',InnovCov)
TrueMdl = varm with properties: Description: "3-Dimensional VARX(0) Model with 4 Predictors" SeriesNames: "Y1" "Y2" "Y3" NumSeries: 3 P: 0 Constant: [1 -1 0.5]' AR: {} Trend: [3×1 vector of zeros] Beta: [3×4 matrix] Covariance: [3×3 matrix]
Y = simulate(TrueMdl,T,'X',X);
Создайте модель VAR, подходящую для SUR использование краткого синтаксиса varm
.
Mdl1 = varm(n,0);
Mdl1
varm
шаблон объекта модели, представляющий 3D модель VAR (0). В отличие от TrueMdl
, ни один из коэффициентов, прерываний и ковариационной матрицы внутрипериода не имеет значения. Поэтому Mdl1
подходит для оценки.
Оцените коэффициенты регрессии с помощью estimate
. Извлеките остаточные значения. Отобразите предполагаемую модель с помощью summarize
.
[EstMdl1,~,~,E] = estimate(Mdl1,Y,'X',X);
summarize(EstMdl1)
3-Dimensional VARX(0) Model with 4 Predictors Effective Sample Size: 100 Number of Estimated Parameters: 15 LogLikelihood: -412.026 AIC: 854.052 BIC: 893.129 Value StandardError TStatistic PValue _________ _____________ __________ ___________ Constant(1) 0.97898 0.11953 8.1902 2.6084e-16 Constant(2) -1.0644 0.10019 -10.623 2.3199e-26 Constant(3) 0.45323 0.10123 4.4772 7.5611e-06 Beta(1,1) 1.7686 0.11994 14.745 3.2948e-49 Beta(2,1) 3.8576 0.10054 38.37 4.1502e-322 Beta(3,1) -2.2009 0.10158 -21.667 4.1715e-104 Beta(1,2) -1.5508 0.12345 -12.563 3.3861e-36 Beta(2,2) 2.4407 0.10348 23.587 5.2666e-123 Beta(3,2) 0.46414 0.10455 4.4395 9.0156e-06 Beta(1,3) 0.69588 0.13491 5.1583 2.4922e-07 Beta(2,3) -1.7139 0.11308 -15.156 6.8911e-52 Beta(3,3) -1.6414 0.11425 -14.367 8.3713e-47 Beta(1,4) 0.67036 0.12731 5.2654 1.399e-07 Beta(2,4) -0.056437 0.10672 -0.52885 0.59691 Beta(3,4) 0.56581 0.10782 5.2476 1.5406e-07 Innovations Covariance Matrix: 1.3850 0.6673 -0.1591 0.6673 0.9731 0.2165 -0.1591 0.2165 0.9934 Innovations Correlation Matrix: 1.0000 0.5748 -0.1357 0.5748 1.0000 0.2202 -0.1357 0.2202 1.0000
EstMdl
varm
объект модели, содержащий предполагаемые параметры. E
isa - матрица остаточных значений.
В качестве альтернативы и в этом случае, можно использовать оператор обратной косой черты на X
и Y
. Однако необходимо включать столбец из единиц в X
для прерываний.
coeff = ([ones(T,1) X]\Y)
coeff = 5×3
0.9790 -1.0644 0.4532
1.7686 3.8576 -2.2009
-1.5508 2.4407 0.4641
0.6959 -1.7139 -1.6414
0.6704 -0.0564 0.5658
coeff
n
- nExo + 1
матрица предполагаемых коэффициентов регрессии и прерываний. Предполагаемые прерывания находятся в первом столбце, и остальная часть матрицы содержит предполагаемые коэффициенты регрессии
Сравните все оценки с их истинными значениями.
InterceptsTbl = table(aTrue,EstMdl1.Constant,coeff(1,:)',... 'VariableNames',["True" "estimate" "backslash"])
InterceptsTbl=3×3 table
True estimate backslash
____ ________ _________
1 0.97898 0.97898
-1 -1.0644 -1.0644
0.5 0.45323 0.45323
cB = coeff'; cB = cB(:); CoefficientsTbl = table(bTrue(:),EstMdl1.Beta(:),cB((n + 1):end),... 'VariableNames',["True" "estimate" "backslash"])
CoefficientsTbl=12×3 table
True estimate backslash
_____ _________ _________
2 1.7686 1.7686
4 3.8576 3.8576
-2 -2.2009 -2.2009
-1.5 -1.5508 -1.5508
2.5 2.4407 2.4407
0.5 0.46414 0.46414
0.5 0.69588 0.69588
-1.75 -1.7139 -1.7139
-1.5 -1.6414 -1.6414
0.75 0.67036 0.67036
-0.05 -0.056437 -0.056437
0.7 0.56581 0.56581
InnovCovTbl = table(InnovCov,EstMdl1.Covariance,... 'VariableNames',["True" "estimate"])
InnovCovTbl=3×2 table
True estimate
_______________________ ________________________________
1 0.5 -0.05 1.385 0.6673 -0.15914
0.5 1 0.25 0.6673 0.97312 0.21649
-0.05 0.25 1 -0.15914 0.21649 0.99338
Оценки от реализации estimate
и оператор обратной косой черты является тем же самым и справедливо близко к их соответствующим истинным значениям.
Один способ проверять силу отношения между предикторами и ответами состоит в том, чтобы вычислить коэффициент детерминации (т.е. часть изменения, объясненного предикторами), который является
где предполагаемое отклонение остаточного ряда , и предполагаемое отклонение ряда ответа .
R2 = 1 - sum(diag(cov(E)))/sum(diag(cov(Y)))
R2 = 0.9118
Модель SUR и данные о предикторе объясняют приблизительно 93% изменения данных об ответе.