首页 文章

如何使用vgxvarx在matlab中运行这个简单的VAR(VARX?)模型?

提问于
浏览
0

基本上,我想运行具有线性时间趋势和常数的VAR模型(双变量) . 也就是说,我要估计一个形式的方程式(原谅可怜的符号,但我相信没有mathjax,我觉得方程式比单词更容易)

[x_t y_t]'= [c_1 c_2]' + [p_1^1 p_2^1 ; p_1^2 p_2^2]* [x_{t-1} y_{t-1}]' +
      + [g^x g^y]'*t + [e^x e^y]

其中 e 是误差项(白噪声), g 是"gammas",即时间趋势的常数, c 是常数, {t-1} 项是滞后的,它们乘以的矩阵是滞后系数 .

我的问题,或者至少我似乎无法弄清楚,是如何实现 [g^x g^y]'*t 术语 . 这是因为,如果我将 t 指定为时间序列的一部分vgxvarx,那么将包含 t 的延迟项,这不是我想要的 . 但是, if I include t as exogenous data, then matlab gives me a (1x1) matrix of coefficients, b. However, I am looking for a (2x1) vector of coefficients ......

也就是说,matlab似乎将外生数据实现为 X_t * b ,其中 X_t 是(n×r),而 b 是回归系数大小 r 的向量 .

我意识到我可以使用 mvregress 估算这个等式,我已经完成了 . 但是,我很好奇是否可以使用vgxvarx估算方程式?

谢谢 .

编辑:或许稍微详细说明我的问题:我希望估计的规范有 [g^x g^y]'*t ,其中 g^x g^y 是我需要估计的系数,而 y ,它只是当前时间段,是输入(回归量) . 然而,当给出vgxvarx的外生数据时,Matlab估计 X_t *b ,这给我带来了麻烦(我需要 X_t 至少有两个维度,但是 t 在规范中是一维的 . 即使我说没关系,让 X_t 是二维的, b 是一维的,当我想要一个(2 x 1)系数向量...)

Edit2:一些有用的链接:

Matlab page on VAR models Econometrics toolbox pdf. 3-37有一个我发现有点相似的例子 . 我将在下面提出一些相关代码:

tcell = cell(1000,1); % Time as exogenous input
        for i=1:1000
              tcell{i} = [i;0];
        end

正如代码片段所示,它们被包含在“时间作为外生输入”中,但它又是二维的,这不是我想要的 .

编辑3: I have not tried re-working the equation 尝试在没有 *t 术语的情况下编写它 . 也许这就是解决方案 . 如果是这样,我不需要数学计算,但请告诉我,如果这是使用vgxvarx估算方程的唯一(或唯一可行的方法)

1 回答

  • 0

    这应该有所帮助:http://www.mathworks.com/examples/econometrics/mw/econ-ex99989579-simulate-responses-of-estimated-varx-model

    简而言之

    EstY = [yourData];   % In-sample responses
    estX = [eXogenous];  % In-sample exogenous
    n = size(EstY,2);    % num. of Series 
    
    % **** MAYBE THIS IS WHAT YOU ARE LOOKING FOR ****
    
    EstExpandX = kron(estX,eye(n));
    EstCellX = mat2cell(EstExpandX,n*ones(estT,1));
    nX = size(EstExpandX,2);
    
    % *******************************
    
    
    % Estimate the model
    
     Mdl = vgxset('n',n,'nAR',4,'nX',nX,'Constant',true);
    
    
     EstMdl = vgxvarx(Mdl,EstY,EstCellX);
    
     vgxdisp(EstMdl)
    

相关问题