exponenta event banner

Реализация, казалось бы, несвязанной регрессии

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

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

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

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

  • Каждый ответ можно связать с разным подмножеством экзогенных предикторов.

  • Серия ответов может не иметь общих перехватов или коэффициентов регрессии.

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

E (αitxpjs 'X) ={0;t≠s,i≠jσij;i≠j,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

где α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-по-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 шаблон объекта модели, представляющий трехмерную модель 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 является T-by- 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 является 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- jnσ ^εj2∑jnσ ^ Yj2,

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

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

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

См. также

Объекты

Функции

Связанные темы