SAS分析法代码.docx
《SAS分析法代码.docx》由会员分享,可在线阅读,更多相关《SAS分析法代码.docx(11页珍藏版)》请在冰点文库上搜索。
SAS分析法代码
SAS分析常用的过程过程步大全
为区分过程名称的拼写,故意部分小写,以便识别和记忆。
基本SAS程序代码结构:
---------
PROCMODEdata=Arndata.moddat; /*命令的解释*/
varyx1-x6; /*命令的解释*/
modely=x1-x6;
run;
------------------------------------------
正态性检验
PROCUNIvariate
---------
PROCUNIvariate data=Arndata.unidat;
varx1;
run;
------------------------------------------
相关分析和回归分析
PROCREG回归
---------
PROCREGdata=Arndata.regdat;
varyx1-x6;
modely=x1-x6/selection=stepwise;/*加入逐步回归选项*/
printcli; /*加入输出预测结果部分,还可以输出acov,all,cli,clm,collin,collinoint,cookd,corrb,
covb,dw(时序检验统计量),i,influence,p,partial,pcorr1,pcorr2,r,
scorr1,scorr2,seqb,spec,ss1,ss2,stb,tol,vif(异方差检验统计量),xpx*/
ploty*x2/conf95; /*做散点图*/
run;
------------------------------------------
---------
DATA Arndata.regdat;
x2x2=x2*x2;
x1x2=x1*x2;
PROCREGdata=Arndata.regdat;
varyx1x2x2x2x1x2; /*多项式回归,非线性回归*/
modely= x1x2x2x2x1x2 /selection=stepwise; /*加入逐步回归选项*/
printcli;
ploty*x2/conf95; /*做散点图*/
run;
------------------------------------------
PROCRSreg二次响应面回归
PROCORTHOreg病态数据回归
PROCNLIN非线性回归
PROCTRANSreg变换回归
PROCCALIS线性结构方程和路径分析
PROCGLM一般线性模型
PROCGENmod广义线性模型
方差分析
PROCANOVA单因素均衡数据和非均衡数据
---------
PROCANOVAdata=Arndata.anovadat; /*命令的解释*/
classtyp; /*命令的解释*/
modely=typ; /*可以看出此处是单因素方差分析(分类型自变量对数值型自变量的影响) */
run;
------------------------------------------
PROCGLM多因素非均衡数据:
---------
PROCGLMdata=Arndata.glmdat; /*命令的解释*/
classtypeatypeb; /*命令的解释*/
modely=typeatypeb; /*可以看出此处是 不考虑交互作用的多因素方差分析(分类型自变量对数值型自变量的影响) */
run;
------------------------------------------
---------
PROCGLMdata=Arndata.glmdat; /*命令的解释*/
classtypeatypeb; /*命令的解释*/
modely=typeatypebtypea*typeb; /*可以看出此处是 考虑交互作用的多因素方差分析(分类型自变量对数值型自变量的影响) */
run;
------------------------------------------
主成分分析
PROCPRINcomp
---------
PROCPRINcomp data=Arndata.pmdat n=4 out=w1outstat=w2;
varx1-x6;
PROCprintdata=w1;
PROCplotdata=w1vpct=80; /*一句话,其实print就是plot输出图形的文字形式而已*/
plotprin1*prin2$districts='*'/
haxis=-3.5to3by0.5HREF=-2,0,2
vaxis=-3to4.5by1.5HREF=-2,0,2; /*主成分的散点图,也就是载荷图*/
run;
------------------------------------------
因子分析
PROCFACTOR
---------
PROCFACTORdata=Arndata.factordatsimplecorr;
varyx1-x6;
title'18个财务指标的分析';
title2'主成分解';
run;
PROCFACTORdata=Arndata.factordatn=4; /*选择4个公共因子*/
varyx1-x6;
run;
PROCFACTORdata=Arndata.factordatn=4
rotate=VARImaxREorder; /*因子旋转:
方差最大因子法*/
varyx1-x6;
run;
------------------------------------------
PROCSCORE
---------
PROCFACTORdata=Arndata.factordatn=4
rotate=VARImaxREorderscoreout=score_Out; /*输出因子得分矩阵*/
run;
PROCprintdata=score_Out;
vardistrictsfactor1factor2factor3factor4;
run;
PROCplot data=score_Out;
plotfactor1*factor2$districts='*'/href=0 Vref=0; /*因子的散点图,也就是载荷图*/
run;
------------------------------------------
典型相关分析
PROCCANcorr
基本SAS程序代码结构:
---------
DATAjt(TYPE=CORR); /*TYPE=CORR表明数据类型为相关矩阵,而不是原始数据,type还可以是cov,ucov,factor,sscp,ucorr等*/
inputnames$1-2(x1x2y1-y3)(6.); /*name$表示读取左侧的变量名,1-2表示变量名的字符落在第1,2列上*/
cards;
x110.8……
x2……
y1……
y2……
y3……
;
PROCCANcorrdata=Arndata.cancorrdat
edf=70redundancy; /*误差自由度的参考值,默认值是n=1000;redundancy表示输出冗余度分析的结果 */
varx1x2;
withy1y2y3;
run;
------------------------------------------
对应分析 /*交叉表分析的拓展,寻找行和列的关系,一般行指代各种cases,而列代表各种visions*/
PROCCORResp
---------
PROCCORRespdata=Arndata.correspdatout=result;
varx1-x6;
idType;
run;
optionsps=40;
procplotdata=result;
plotdim2*dim1="*"$Type/box
haxis=-0.2to0.3by0.1
Vaxis=-0.1to0.3by0.1
Href=0Vref=0;
run;
------------------------------------------
聚类分析
PROCCLUSTER
---------
PROCCLUSTERdata=Arndata.clusdat
method=aveouttree=clusdat_Out;
varx1-x6;
iddatid;
run;
proctreehorizontal; /*做聚类树*/
run;
------------------------------------------
PROCFASTclus
---------
PROCFASTclusdata=Arndata.clusdat
maxclusters=3listout=clusdat_Out;
varx1-x6;
iddatid;
run;
------------------------------------------
PROCACEclus
PROCVARCLUS
---------
PROCVARclusdata=Arndata.clusdat;/*系统默认使用主成分法聚类*/
varx1-x6;
run;
---------
PROCVARclushierarchydata=Arndata.clusdat;/*保证分析过程中不同水平的谱系结构*/
varx1-x6;
run;
---------
PROCVARcluscentroiddata=Arndata.clusdatouttree=clusdat_out;/*使用重心法聚类*/
varx1-x6;
run;
------------------------------------------
PROCTREE
---------
PROCTREEdata=Arndata.clusdathorizontal;/*使用TREE过程绘制聚类谱系图*/
varx1-x6;
run;
------------------------------------------
判别分析
PROCDISCRIM
---------
PROCDISCRIMdata=Arndata.discrimdat
listout=discrimdat_Outdistancepool=yes;
classTyp;/*指定分类变量*/
varx1-x6;/*用于建立判别识别函数的变量*/
ididdiscrim;/*标注样本的变量*/
run;
---------
第二种方法,将需要判别的新样本放在testdata里:
---------
PROCDISCRIMdata=Arndata.discrimdat1testdata=Arndata.discrimdat2
testlisttestout=discrimdat_Out;/*将原来的几个选项加注test标示*/
classTyp;/*指定分类变量*/
varx1-x6;/*用于建立判别识别函数的变量*/
ididdiscrim;/*标注样本的变量*/
run;
------------------------------------------
PROCSTEPdisc:
逐步判别分析过程
---------
PROCSTEPdiscmethod=stepwisedata=Arndata.discrimdat
SLentry=0.10SLstay=0.10;/*设定引入和剔除的显著性水平*/
classTyp;/*指定分类变量*/
varx1-x6;/*用于建立判别识别函数的变量*/
run;
------------------------------------------
PROCCANdisc:
Fisher判别分析过程
---------
PROCCANdiscdata=Arndata.discrimdatout=discrimdat_Out
distancesimple;
classTyp;/*指定分类变量*/
varx1-x6;/*用于建立判别识别函数的变量*/
run;
procprintdata=discrimdat_Out;
run;
------------------------------------------