Реализуйте на вид Несвязанную регрессию

Этот пример показывает, как включать внешние данные для нескольких исследований на вид несвязанной регрессии (SUR). Ответ и внешний ряд являются случайными путями от стандартного Распределения Гаусса.

В на вид несвязанной регрессии (SUR) каждая переменная отклика является функцией подмножества внешнего ряда, но не любой эндогенной переменной. Таким образом, для j=1,..,n и t=1,...,T, модель для ответа j в период t

yjt=aj+bj1xk1t+bj2xk2t+...+bjkjxkjt+εjt

Индексы коэффициентов регрессии и внешних предикторов указывают что:

  • Можно сопоставить каждый ответ с различным подмножеством внешних предикторов.

  • Ряд ответа не может совместно использовать прерывания или коэффициенты регрессии.

SUR размещает инновационную корреляцию внутрипериода, но инновационную независимость межпериода, т.е.

E(εitεjs|X)={0;ts,ijσij;ij,t=sσi2>0;i=j,t=s.

Моделируйте данные из истинной модели

Предположим, что истинная модель

y1t=1+2x1t-1.5x2t+0.5x3t+0.75x4t+ε1ty2t=-1+4x1t+2.5x2t-1.75x3t-0.05x4t+ε2ty3t=0.5-2x1t+0.5x2t-1.5x3t+0.7x4t+ε3t,

где εjt, j=1,...,n многомерные Гауссовы случайные переменные каждый имеющий средний нуль и совместно имеющий ковариационную матрицу

Σ=[10.5-0.050.510.25-0.050.251]

Предположим, что пути представляют различные эконометрические измерения, например, запас возвращается.

Моделируйте четыре внешних пути к предиктору от стандартного Распределения Гаусса.

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-by-1 вектор ячейки. Ячейка t из ячейки вектор матрица проекта указание на линейное соотношение внешних переменных с каждым рядом ответа в период t. Однако 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);

SUR Используя все предикторы для каждого ряда ответа

Создайте модель 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 является a T- n матрица невязок.

Также и в этом случае, можно использовать оператор наклонной черты влево на 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 является nExo + 1 n матрицей предполагаемых коэффициентов регрессии и прерываний. Предполагаемые прерывания находятся в первом столбце, и остальная часть матрицы содержит предполагаемые коэффициенты регрессии

Сравните все оценки с их истинными значениями.

fprintf('\n');
fprintf('               Intercepts      \n');
               Intercepts      
fprintf('     True    |   estimate  |  backslash\n');
     True    |   estimate  |  backslash
fprintf('--------------------------------------\n');
--------------------------------------
for j = 1:n
    fprintf('  %8.4f   |  %8.4f  | %8.4f\n',aTrue(j),EstMdl1.Constant(j),coeff(1,j));
end
    1.0000   |    0.9790  |   0.9790
   -1.0000   |   -1.0644  |  -1.0644
    0.5000   |    0.4532  |   0.4532
cB = coeff';
cB = cB(:);
fprintf('\n');
fprintf('              Coefficients      \n');
              Coefficients      
fprintf('     True    |   estimate  |  backslash\n');
     True    |   estimate  |  backslash
fprintf('--------------------------------------\n');
--------------------------------------
for j = 1:numel(EstMdl1.Beta)
    fprintf('  %8.4f   |  %8.4f  | %8.4f\n',bTrue(j),...
        EstMdl1.Beta(j),cB(n + j));
end
    2.0000   |    1.7686  |   1.7686
    4.0000   |    3.8576  |   3.8576
   -2.0000   |   -2.2009  |  -2.2009
   -1.5000   |   -1.5508  |  -1.5508
    2.5000   |    2.4407  |   2.4407
    0.5000   |    0.4641  |   0.4641
    0.5000   |    0.6959  |   0.6959
   -1.7500   |   -1.7139  |  -1.7139
   -1.5000   |   -1.6414  |  -1.6414
    0.7500   |    0.6704  |   0.6704
   -0.0500   |   -0.0564  |  -0.0564
    0.7000   |    0.5658  |   0.5658
fprintf('\n');
fprintf('                 Innovations Covariance\n');
                 Innovations Covariance
fprintf('            True            |             estimate\n');
            True            |             estimate
fprintf('----------------------------------------------------------\n');
----------------------------------------------------------
for j = 1:n
    fprintf('%8.4f %8.4f %8.4f  |   %8.4f %8.4f %8.4f\n',...
        InnovCov(j,:),EstMdl1.Covariance(j,:));
end
  1.0000   0.5000  -0.0500  |     1.3850   0.6673  -0.1591
  0.5000   1.0000   0.2500  |     0.6673   0.9731   0.2165
 -0.0500   0.2500   1.0000  |    -0.1591   0.2165   0.9934

Оценки от реализации estimate и оператора наклонной черты влево являются тем же самым и справедливо близко к их соответствующим истинным значениям.

Один способ проверять силу отношения между предикторами и ответами состоит в том, чтобы вычислить коэффициент детерминации (т.е. часть изменения, объясненного предикторами), который является

R2=1-jnσˆεj2jnσˆYj2,

где σˆεj2 предполагаемое отклонение остаточного ряда j, и σˆYj2 предполагаемое отклонение ряда ответа j.

R2 = 1 - sum(diag(cov(E)))/sum(diag(cov(Y)))
R2 = 0.9118

Модель SUR и данные о предикторе объясняют приблизительно 93% изменения в данных об ответе.

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

Объекты

Функции

Похожие темы