全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
4854 5
2008-04-18
这是我们上时间序列课上的一个协整例子
我对这门课一直不明白,所以想请高手帮我分别解释一下分析结果,就是执行完程序后各个表都是怎麽分析和解释的。
我现在就要考试了,手头上还有一个类似的项目要交,现在还不明白,所以非常着急,希望热心的高手指点一下,感激不尽。
data bidon;
infile 'E:\Mes documents\serie temp\exemples\chom.txt' expandtabs;
input idf rc
date = intnx( 'qtr', '30sep1981'd, _n_ );
format date yyqs.;
run;
proc print;run;

symbol i=j;
symbol2 i=j;
proc gplot data=bidon;
plot idf*date rc*date / overlay legend;
run;
quit;

proc varmax data=bidon lagmax=5;
model idf rc / p=2 dify(1);
run;

proc arima data=bidon;
identify var= idf nlag=10 stationnarity=(DICKEY);
estimate p=2;
run;quit;
data bibi;
set bidon;
didf=dif(idf);
run;
proc print;run;
proc arima data=bibi;
identify var= didf nlag=10 stationnarity=(DICKEY);
estimate p=1;
run;quit;
proc arima data=bidon;
identify var= rc nlag=10 stationnarity=(DICKEY);
estimate p=2;
run;quit;
data bibi2;
set bidon;
drc=dif(rc);
run;
proc print;run;
proc arima data=bibi2;
identify var= drc nlag=10 stationnarity=(DICKEY); /*en passant en delta on exclu la constante donc ici on utilise taux et non taux mu*/
estimate p=1 noconstant;
run;quit;
proc varmax data=bidon lagmax=5;
model idf rc / p=2 dify(1);
run;
proc varmax data=bidon lagmax=5;
model idf rc / p=1 dify(1)noint;
run;
proc arima data=bidon;
identify var=idf(1);
estimate p=1 noconstant;
run;quit;
proc arima data=bidon;
identify var=rc(1);
estimate p=1 noconstant;
run;quit;

proc varmax data=bidon;
model idf rc / p=1 dify(1) noint;
causal group1=(idf) group2=(rc);   
run;
proc varmax data=bidon;
  model idf rc / p=1 dify(1) noint;
causal group1=(rc) group2=(idf);   
run;
proc varmax data=bidon;
  model idf rc / p=1 dify(1) noint lagmax=16 print=(impulse=(all)) printform=univariate;
run;

还有一个例子是用 proc iml的
proc iml ;
phi={1 0 0 ,0 1 0 ,1 -1 0};
sig={1 0 1 , 0 1 -1,  1 -1 3};
call  varmasim( y , phi) sigma= sig  n=200  seed=2002;
cn={'y1' 'y2' 'y3'};
create  simul from y [colname=cn];
append from y;
quit;
data simul;
set simul;
date=intnx('quarter', '01Jan1955'd, _n_-1);
format date yyq4;
proc gplot data =simul;
symbol1 v=none  i=join l=1;
symbol2 v=none  i=join l=2;
symbol3 v=none  i=join l=3;
plot  y1*date =1
  y2*date= 2
  y3*date=3/overlay;
  run;
proc varmax;
model y1 y2 y3 /p=1 cointtest =(johansen);
run;

proc varmax;
model y1 y2 y3 /p=2 cointtest =(johansen);
run;
proc varmax;
model y1 y2 y3 /p=1 ecm =(rank=1 normalise= y1) noint;     没有 常数
run;
  
proc varmax;
model y1 y2 y3 /p=1 ecm =(rank=1 normalise= y1 ectrend) ;  *有常数;
run;
proc varmax;
model y1 y2 y3 /p=1 ecm =(rank=1 normalise= y1) ;  *常数在外边;
run;


206607.txt
大小:(96 Bytes)

 马上下载


206608.txt
大小:(921 Bytes)

 马上下载


二维码

扫码加我 拉你入群

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

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

全部回复
2008-4-18 14:51:00
第一个例子的数据在上传文件里,叫chom
二维码

扫码加我 拉你入群

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

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

2008-4-18 17:29:00
<p>
206650.pdf
大小:(159.73 KB)

 马上下载

<br/>
206651.pdf
大小:(307.86 KB)

 马上下载

wei<br/></p><p>为了节省时间,我把结果传上来,希望能有人给我指点一下。</p><p>真的很着急,在线等</p>
二维码

扫码加我 拉你入群

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

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

2008-4-19 15:56:00
二维码

扫码加我 拉你入群

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

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

2008-4-20 08:50:00
以上求助的问题是一个精英能解决的问题。遗憾,自己是心有余而力不足。估计你的问题在人大经济论坛上解决不了。
二维码

扫码加我 拉你入群

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

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

2009-3-8 01:47:00
<p>data bidon;<br/>infile 'E:\Mes documents\serie temp\exemples\chom.txt' expandtabs;<br/>input idf rc<br/>date = intnx( 'qtr', '30sep1981'd, _n_ ); <br/>format date yyqs.; <br/>run;<br/></p><p><span style="color: rgb(0, 0, 255);">这步是导入数据</span><br/></p><p>proc print;run;</p><p><span style="color: rgb(0, 0, 255);">把数据打印到 output窗口</span><br/></p><p><br/>symbol i=j;<br/>symbol2 i=j;<br/>proc gplot data=bidon;<br/> plot idf*date rc*date / overlay legend;<br/>run;<br/>quit;</p><p style="color: rgb(0, 0, 255);">画图说话,(idf rc) *date</p><p>proc varmax data=bidon lagmax=5;<br/> model idf rc / p=2 dify(1);<br/>run;</p><p style="color: rgb(0, 0, 255);">向量自回归模型, y={idf rc}   滞后两阶 y需要做一个差分 dy_t=diff(y), 即 dy_t ~ const + dy_{t-1} +dy_{t-2}</p><p>proc arima data=bidon;<br/>identify var= idf nlag=10 stationnarity=(DICKEY);<br/>estimate p=2;<br/>run;quit;</p><p style="color: rgb(0, 0, 255);">arima 模型,先对idf用一个最高滞后10阶的 ar模型进行识别,模型残差用DF检验平稳性;</p><p><span style="color: rgb(0, 0, 255);">然后发现p=2比较合适,进行估计</span><br/></p><p>data bibi;<br/>set bidon;<br/>didf=dif(idf);<br/>run;<br/>proc print;run;</p><p><span style="color: rgb(0, 0, 255);">数据步 对didf差分</span><br/></p><p>proc arima data=bibi;<br/>identify var= didf nlag=10 stationnarity=(DICKEY);<br/>estimate p=1;<br/>run;quit;</p><p><span style="color: rgb(0, 0, 255);">arima的识别,发现ar(1)合适</span><br/></p><p>proc arima data=bidon;<br/>identify var= rc nlag=10 stationnarity=(DICKEY);<br/>estimate p=2;<br/>run;quit;</p><p><span style="color: rgb(0, 0, 255);">同上</span><br/></p><p>data bibi2;<br/>set bidon;<br/>drc=dif(rc);<br/>run;<br/>proc print;run;</p><p><span style="color: rgb(0, 0, 255);">对rc差分</span><br/></p><p>proc arima data=bibi2;<br/>identify
var= drc nlag=10 stationnarity=(DICKEY); /*en passant en delta on exclu
la constante donc ici on utilise taux et non taux mu*/<br/>estimate p=1 noconstant;<br/>run;quit;</p><p><span style="color: rgb(0, 0, 255);">arima识别</span><br/></p><p>proc varmax data=bidon lagmax=5;<br/> model idf rc / p=2 dify(1);<br/>run;</p><p style="color: rgb(0, 0, 255);">建模 VAR  y=(idf rc)  dy_t~const + dy_{t-1} +dy_{t-2}</p><p><br/></p><p>proc varmax data=bidon lagmax=5;<br/> model idf rc / p=1 dify(1)noint;<br/>run;<br/></p><p><span style="color: rgb(0, 0, 255);">类似的,无常数项的 VAR</span><br/></p><p>proc arima data=bidon;<br/>identify var=idf(1);<br/>estimate p=1 noconstant;<br/>run;quit;</p><p>proc arima data=bidon;<br/>identify var=rc(1);<br/>estimate p=1 noconstant;<br/>run;quit;</p><p><br/> proc varmax data=bidon; <br/>model idf rc / p=1 dify(1) noint; <br/>causal group1=(idf) group2=(rc);   <br/> run;</p><p><span style="color: rgb(0, 0, 255);">做因果检验, idf against rc</span><br/></p><p> proc varmax data=bidon; <br/>  model idf rc / p=1 dify(1) noint; <br/>causal group1=(rc) group2=(idf);   <br/> run;</p><p><span style="color: rgb(0, 0, 255);">反过来 的因果检验 (因果检验是不对称的), rc against idf</span><br/></p><p> proc varmax data=bidon; <br/>  model idf rc / p=1 dify(1) noint lagmax=16 print=(impulse=(all)) printform=univariate;<br/>run;</p><p><span style="color: rgb(0, 0, 255);">打印脉冲响应函数的值,按照变量的顺序依次显示</span><br/></p><p><br/></p><p>还有一个例子是用 proc iml的</p><p>proc iml ;<br/>phi={1 0 0 ,0 1 0 ,1 -1 0};<br/>sig={1 0 1 , 0 1 -1,  1 -1 3};<br/>call <span style="color: rgb(0, 0, 255);"> varmasim</span>( y , phi) sigma= sig  n=200  seed=2002;<br/>cn={'y1' 'y2' 'y3'};<br/>create  simul from y [colname=cn];<br/>append from y;<br/>quit;</p><p><span style="color: rgb(0, 0, 255);">simulate 一个参数为phi (IML的内置函数 VARMASIM), sig的VAR观测序列{y1,y2,y3}</span><br/></p><p><br/></p><p>data simul;<br/> set simul;<br/> date=intnx('quarter', '01Jan1955'd, _n_-1);<br/> format date yyq4;</p><p><span style="color: rgb(0, 0, 255);">给序列打上date stamp</span><br/></p><p><br/>proc gplot data =simul;<br/>symbol1 v=none  i=join l=1;<br/>symbol2 v=none  i=join l=2;<br/>symbol3 v=none  i=join l=3;<br/>plot  y1*date =1<br/>  y2*date= 2<br/>  y3*date=3/overlay;<br/>  run;</p><p><span style="color: rgb(0, 0, 255);">画图</span><br/></p><p>proc varmax;<br/>model y1 y2 y3 /p=1 cointtest =(johansen);<br/>run;</p><p><span style="color: rgb(0, 0, 255);">用Johansen做co-integration检验</span><br/></p><p><br/>proc varmax;<br/>model y1 y2 y3 /p=2 cointtest =(johansen);<br/>run;<br/>proc varmax;<br/>model y1 y2 y3 /p=1 ecm =(rank=1 normalise= y1) noint;     没有 常数</p><p>run;<br/><span style="color: rgb(0, 0, 255);"> 具有1阶协整关系的VAR用ECM的形式表达估计结果</span><br/></p><p><br/></p><p><br/>proc varmax;<br/>model y1 y2 y3 /p=1 ecm =(rank=1 normalise= y1 ectrend) ;  *有常数;<br/>run;</p><p><span style="color: rgb(0, 0, 204);"><span style="color: rgb(255, 0, 0);">ectrend?没见过这个参数</span>.... 是要求ECM上带有时间趋势?</span><br/></p>proc varmax;<br/>model y1 y2 y3 /p=1 ecm =(rank=1 normalise= y1) ;  *常数在外边;<br/>run;<br>xmok77
&nbsp;金币&nbsp;+1
&nbsp;金钱&nbsp;+100
&nbsp;奖励&nbsp;2009-3-8 9:16:48
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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