请教诸位大侠,如何将这个SAS程序翻译成R?-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

SAS软件培训

>>

请教诸位大侠,如何将这个SAS程序翻译成R?

请教诸位大侠,如何将这个SAS程序翻译成R?

发布:Leo统计 | 分类:SAS软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

请教诸位大侠,如何将下面的SAS程序翻译成R?datacaq;infile"E:\ModalityProperties\caq.dat";inputi1i2i3i4i5i6i7i8i9i10i11i12;run;/*Codedoesnotneedtobealtereduntilthelasttwolines.*/OPTIONSNODATENOSTIME ...
免费学术公开课,扫码加入


请教诸位大侠,如何将下面的SAS程序翻译成R?

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可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-2638489-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
联系客服
值班时间:工作日(9:00--18:00)