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

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

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

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

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

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

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

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

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]

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

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

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 шаблон объекта модели, представляющий 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 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 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 и оператор обратной косой черты является тем же самым и справедливо близко к их соответствующим истинным значениям.

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

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

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

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

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

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

Объекты

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте