关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
获取电子版《CDA一级教材》
完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。
TOP热门关键词
免费学术公开课,扫码加入![]() |
data caq;
infile "E:\Modality Properties\caq.dat";
input i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12;
run;
/* Code does not need to be altered until the last two lines. */
OPTIONS NODATE NOSTIMER LS=120 PS=60;
%macro alphaest(DATAset=_last_, vars=, prb=.05, out=parm);
PROC IML;
USE &DATAset;
READ all var {&vars} into data;
prob = &prb;
/*-- Define IML module ---*/
start scalpha(data,prob);
* reset print;
parm = J(1,7,.);/* create return vector: row */
nsub = NROW(data); /* number of subjects */
nvar = NCOL(data); /* number of variables */
nv2= nvar*(nvar+1)/2;
rsub = 1. / nsub; rs1 = 1. / (nsub - 1.);
vrat = nvar / (nvar-1.);
mean = data[+,] / nsub;/* row vector */
/* for prob=.05: quant should be 1.96 */
quant = probit(1. - .5*prob);
print "Prob and Quant:", prob,quant;
/* Compute COV Matrix cov[nvar,nvar] */
cov = rs1 * (data` * data - nsub * mean` * mean);
print cov [colname= { &vars} ];
vvar = vecdiag(cov);/* variances in diag of cov */
summat = cov[+,+]; /* sum entire cov matrix */
sumvars = vvar[+]; /* sum diagonal of cov matrix */
sumcovs = .5*(summat - sumvars); /* sum off diag of cov matrix */
/* only for normal theory ASE:
get wcv[nvar,nvar], wvv[nvar] */
wcv = cov * cov;
wvv = vecdiag(wcv);
sumvar2 = wvv[+];
summat2 = wcv[+,+];
alpha = vrat * (1. - sumvars/summat);
parm[1] = alpha; /* alpha */
/*--- Compute Normal ASE ----*/
tmp = 2. * vrat*vrat / (summat*summat*summat);
t1 = summat * sumvar2;
t2 = summat * sumvars*sumvars;
t3 = 2.*sumvars * summat2;
nase = tmp*(t1 + t2 - t3);
nase = sqrt(rsub*nase);
parm[2] = nase; /* NT standard error */
parm[3] = alpha - quant * nase; /* NT CI lower */
parm[4] = alpha + quant * nase; /* NT CI upper */
/*--- Compute ADF ASE ----*/
/* set symm matrix jac[nvar,nvar] */
dwrtvar = -2. * vrat * sumcovs / (summat*summat);
dwrtcov = vrat * sumvars / (summat*summat);
jac = J(nvar,nvar,dwrtcov);
/* set diagonal */
do j= 1 to nvar;
jac[j,j] = dwrtvar;
end;
/* run through data[nsub,nvar] */
trac = 0.;
do isub=1 to nsub;
v = data[isub,] - mean; /* row vector */
/* note the off diagonal entries are used
twice, that's why jac[] was changed */
wcv = jac # (v` * v - cov);
tmp = wcv[+,+];
trac = trac + tmp * tmp;
end;
nnase = sqrt(rsub*rs1*trac);
parm[5] = nnase; /* ADF standard error */
parm[6] = alpha - quant * nnase; /* ADF CI lower */
parm[7] = alpha + quant * nnase; /* ADF CI upper */
return(parm);
finish scalpha;
/*--- Call the IML Module ---*/
parm = scalpha(data,prob);/* parm[7] should be row vector */
/*--- Fill output data set ---*/
nams = { Alpha NT_SE NT_LCI NT_UCI ADF_SE ADF_LCI ADF_UCI };
create out from parm[colname=nams];
append from parm;
/* end of the macro alphaest */
%mend;
/* Example */
/* Only code below this point needs to be changed. The dataset name and variable names must be specified. Only bolded text needs to be changed. */
/* Call the macro */
%alphaest(dataset=caq,vars=i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12, prb=.05, out=parm);
/* Print the results */
proc print data=out; run;
多谢!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
人气文章
本文标题:请教诸位大侠,如何将这个SAS程序翻译成R?
本文链接网址:https://bbs.pinggu.org/jg/ruanjianpeixun_sasruanjianpeixun_2638489_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。



