全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3113 4
2008-12-28

刚开始学unit root test,然后接触sas程序,看不懂,不知道能不能麻烦给这段程序的每个过程加上些注释啊?希望可以稍微详细一点

尤其是%dftest(resdat_ols,uhat_ols,trend=0,outstat=results2);

这句,不知道是干嘛用的?

谢谢了~~

dm "out;clear;log;clear;";
data simples;
infile "f:\Teaching\ef5470\ef5470_2007\Sas_programs\lab1data.csv" firstobs=2 dlm=',';
input date $ gdp p m d;
run;
%dftest(simples, gdp,dif=(1),trend=0,outstat=results);
proc print data=results;
run;
proc reg data=simples outest=beta tableout ;
model gdp = p m d;
output out=resdat_ols residual=uhat_ols predicted=yhat_ols;
run;
%dftest(resdat_ols,uhat_ols,trend=0,outstat=results2);
proc print data=results2;
run;
data simples; set simples resdat_ols;
et=lag(uhat_ols);
dgdp=gdp-lag(gdp);
dp=p-lag(p);
dm=m-lag(m);
dd=d-lag(d);
run;
proc reg data=simples outest=beta tableout ;
model dgdp = et dp dm dd;
run;
proc arima data=simples;
identify var=dgdp
 nlag=30 ;
run;
estimate p=1 q=4
 nodf
 noconstant
 method=ml
 plot;
run;
forecast
 lead=10
 out=predict
 printall;
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2008-12-28 20:50:00
补充一下,如果我现在数据集中有gdp p m d 四个变量,我想对每个变量的数据进行unit root test,确定是integrated to order 多少的,那么以上这段程序可以怎么修改下,完成这个步骤啊?谢谢!
二维码

扫码加我 拉你入群

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

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

2008-12-29 02:10:00

dftest(var1, var2, var3, va4, var5) 是一个 macro, 共有5个变量

var1: input filename

var2: a variable

var3 and var4 are parameters, var5 is output filename.

%dftest() 调用这个macro.

data simples;
infile "f:\Teaching\ef5470\ef5470_2007\Sas_programs\lab1data.csv" firstobs=2 dlm=',';
input date $ gdp p m d;
run;   /* input the datafile ‘lab1data.csv’ to generate a dataset ‘Simples’ */

%dftest(simples, gdp,dif=(1),trend=0,outstat=results);  

/* call macro dftest, use ‘simples’ as input dataset, gdp as a variable, output results to the dataset ‘Results’ */

proc print data=results;
run;    /* look at the ‘results’ dataset */

proc reg data=simples outest=beta tableout ;
model gdp = p m d;  
output out=resdat_ols residual=uhat_ols predicted=yhat_ols;
run;  

/* call regression procedure, the model is gdp=a1*p + a2*m + a3*d + constant,

output results to three datasets: resdat_ols, uhat_ols, and yhat_ols. */

%dftest(resdat_ols,uhat_ols,trend=0,outstat=results2);

/* call macro dftest, use ‘resdat_ols’ as input dataset, uhat_ols as a variable, output results to the dataset ‘Results2’ */

proc print data=results2;
run;    /* look at the results2 */

data simples; set simples resdat_ols;
et=lag(uhat_ols);
dgdp=gdp-lag(gdp);
dp=p-lag(p);
dm=m-lag(m);
dd=d-lag(d);
run;

/* combining simples and resdat_ols to create a new dataset ‘simples’ with 5 calculated variables (et, dgdp, dp, dm, dd) */

proc reg data=simples outest=beta tableout ;
model dgdp = et dp dm dd;
run;   /* call regression procedure again */

/* below is call arima procedure for time series analysis */
proc arima data=simples;
identify var=dgdp
 nlag=30 ;
run;
estimate p=1 q=4
 nodf
 noconstant
 method=ml
 plot;
run;
forecast
 lead=10
 out=predict
 printall;
run;

/* hope it helps */

二维码

扫码加我 拉你入群

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

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

2008-12-29 10:53:00

楼上真牲口

[此贴子已经被作者于2008-12-29 12:01:18编辑过]

二维码

扫码加我 拉你入群

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

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

2008-12-29 11:08:00
The beginner need it!!!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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