全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Gauss专版
7466 12
2011-04-18
Efficient Tests for an Autoregressive Unit Root,DF-GLS检验的原文
附件列表
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-4-18 17:33:36
Xuelida版主以前提供了一个相应的matlab程序。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-18 17:34:53
一个DF-GLS检验的Gauss程序:
@  DF-GLS for AR(1). Univariate  @
@  Usage:
     
     {x} = ers(y,ioption)
     
     output = x TxN matrix. GLS demeanded or detrended data
     Input = y: TxN matrix
             ioption = 1 for constant
             ioption = 2 for linear trend
     
     {x1,x2} = ersfish(y1,cdc);
     
     output x1 = Nx1 t-value for DF-GLS for Panel AR(1) model
            x2 = 1x1 Fisher statistics
     Input  y1 = TxN GLS demeanded or detrended data
            cdc = DF-GLS critical values
@            


proc  ERS(y,ioption);
local t,c1,c2,y1,y2,z,z1,z2,b1,b2,yd1,yd2;
if ioption == 1;

t = rows(y);
c1 = 1- 7/t;
y1 = y[2:t,.] - y[1:t-1,.].*c1;
y1 = y[1,.]|y1;
z = ones(t,1);
z1 = z[2:t,.] - z[1:t-1,.].*c1;
z1 = z[1,.]|z1;
b1 = invpd(z1'z1)*z1'y1;
yd1 = y - b1';
endif;

if ioption == 2;
t = rows(y);
c2 = 1- 13.5/t;
y2 = y[2:t,.] - y[1:t-1,.].*c2;
y2 = y[1,.]|y2;
z = ones(t,1)~seqa(1,1,t);
z2 = z[2:t,.] - z[1:t-1,.].*c2;
z2 = z[1,.]|z2;
b2 = invpd(z2'z2)*z2'y2;
yd1 = y - b2[1] - seqa(1,1,t).*b2[2];
endif;
retp(yd1);
endp;



proc (2) = ersfish(y1,cdc);
local cyy0,cyx0,cb0,tb0,cs0,ts0,ct0,tt0,pv,i;
local tyy0,tyx0,yy1,yy2;

yy1 = y1;

i = 1;
do while i <= n;
  yy1[.,i] = ers(y1[.,i],1);
i = i + 1;
endo;

  cyy0 = yy1[2:t,.];   cyx0 = yy1[1:t-1,.];

  cb0 = sumc(cyy0.*cyx0)./sumc(cyx0.*cyx0);
  cs0 = cyy0 - cyx0.*cb0';
  cs0 = meanc(cs0.*cs0)./sumc(cyx0.*cyx0);
  ct0 = (cb0-1)./sqrt(cs0);

  pv = zeros(cols(cyx0),2);
  i = 1;
  do while i <= cols(cyx0);
   pv[i,1] = minindc(abs(ct0[i] - cdc))./rows(cdc);
  i = i + 1;
  endo;

  pv = ln(pv);
  pv = sumc(pv).*(-2);

retp(ct0,pv[1]);
endp;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-18 17:36:16
将程序中的N数改成1既是单一时间序列的DF-GLS检验。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-18 17:36:41
非常感谢楼主
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-19 13:15:01
@  DF-GLS for AR(1). Univariate  @
@  Usage:
     
     {x} = ers(y,ioption)
     
     output = x TxN matrix. GLS demeanded or detrended data
     Input = y: TxN matrix
             ioption = 1 for constant
             ioption = 2 for linear trend
     
     {x1,x2} = ersfish(y1,cdc);
     
     output x1 = Nx1 t-value for DF-GLS for Panel AR(1) model
            x2 = 1x1 Fisher statistics
     Input  y1 = TxN GLS demeanded or detrended data
            cdc = DF-GLS critical values
@   
        
n=1;
t=10;

proc  ERS(y,ioption);
local t,c1,c2,y1,y2,z,z1,z2,b1,b2,yd1,yd2;
if ioption == 1;

t = rows(y);
c1 = 1- 7/t;
y1 = y[2:t,.] - y[1:t-1,.].*c1;
y1 = y[1,.]|y1;
z = ones(t,1);
z1 = z[2:t,.] - z[1:t-1,.].*c1;
z1 = z[1,.]|z1;
b1 = invpd(z1'z1)*z1'y1;
yd1 = y - b1';
endif;

if ioption == 2;
t = rows(y);
c2 = 1- 13.5/t;
y2 = y[2:t,.] - y[1:t-1,.].*c2;
y2 = y[1,.]|y2;
z = ones(t,1)~seqa(1,1,t);
z2 = z[2:t,.] - z[1:t-1,.].*c2;
z2 = z[1,.]|z2;
b2 = invpd(z2'z2)*z2'y2;
yd1 = y - b2[1] - seqa(1,1,t).*b2[2];
endif;
retp(yd1);
endp;



proc (2) = ersfish(y1,cdc);
local cyy0,cyx0,cb0,tb0,cs0,ts0,ct0,tt0,pv,i;
local tyy0,tyx0,yy1,yy2;

yy1 = y1;

i = 1;
do while i <= n;
  yy1[.,i] = ers(y1[.,i],1);
i = i + 1;
endo;

  cyy0 = yy1[2:t,.];   cyx0 = yy1[1:t-1,.];

  cb0 = sumc(cyy0.*cyx0)./sumc(cyx0.*cyx0);
  cs0 = cyy0 - cyx0.*cb0';
  cs0 = meanc(cs0.*cs0)./sumc(cyx0.*cyx0);
  ct0 = (cb0-1)./sqrt(cs0);

  pv = zeros(cols(cyx0),2);
  i = 1;
  do while i <= cols(cyx0);
   pv[i,1] = minindc(abs(ct0[i] - cdc))./rows(cdc);
  i = i + 1;
  endo;

  pv = ln(pv);
  pv = sumc(pv).*(-2);

retp(ct0,pv[1]);
endp;
我运行以上程序,为什么Gauss提示Done后没有显示结果?谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群