楼主: zhaomn200145
6516 12

[学科前沿] DF-GLS检验的原文及相应的Gauss程序 [推广有奖]

  • 1关注
  • 17粉丝

贵宾

学科带头人

66%

还不是VIP/贵宾

-

威望
1
论坛币
581954 个
通用积分
85.6483
学术水平
128 点
热心指数
80 点
信用等级
43 点
经验
61378 点
帖子
1454
精华
1
在线时间
2540 小时
注册时间
2005-9-27
最后登录
2024-4-25

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Efficient Tests for an Autoregressive Unit Root,DF-GLS检验的原文
二维码

扫码加我 拉你入群

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

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

关键词:gauss程序 GAUSS USS Aus unit root 检验 原文

abbr_f4412dc1e624e9d7701c8786ed38e0c2.pdf

2.12 MB

沙发
zhaomn200145 发表于 2011-4-18 17:33:36 |只看作者 |坛友微信交流群
Xuelida版主以前提供了一个相应的matlab程序。

使用道具

藤椅
zhaomn200145 发表于 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;

使用道具

板凳
zhaomn200145 发表于 2011-4-18 17:36:16 |只看作者 |坛友微信交流群
将程序中的N数改成1既是单一时间序列的DF-GLS检验。

使用道具

报纸
llg79 发表于 2011-4-18 17:36:41 |只看作者 |坛友微信交流群
非常感谢楼主

使用道具

地板
zhangtao 发表于 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后没有显示结果?谢谢!

使用道具

7
zhaomn200145 发表于 2011-4-19 19:44:01 |只看作者 |坛友微信交流群
应该首先要载入一个时间序列数据,这在个程序里是没有的。

使用道具

8
zhaomn200145 发表于 2011-4-19 19:46:05 |只看作者 |坛友微信交流群
可以使用recserar命令生成一个简单的自回归时间序列。

使用道具

9
zhaomn200145 发表于 2011-4-19 19:46:51 |只看作者 |坛友微信交流群
然后对其进行单位根检验。

使用道具

10
李骥北 发表于 2011-8-15 22:22:24 |只看作者 |坛友微信交流群
非常有用,感谢楼主。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 08:04