您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > SAS矩阵分析常用代码
为区分过程名称的拼写,故意部分小写,以便识别和记忆。基本SAS程序代码结构:---------PROCMODEdata=Arndata.moddat;/*命令的解释*/varyx1-x6;/*命令的解释*/modely=x1-x6;run;------------------------------------------正态性检验PROCUNIvariate---------PROCUNIvariatedata=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;---------------------------------------------------DATAArndata.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---------PROCPRINcompdata=Arndata.pmdatn=4out=w1outstat=w2;varx1-x6;PROCprintdata=w1;PROCplotdata=w1vpct=80;/*一句话,其实print就是plot输出图形的文字形式而已*/plotprin1*prin2$districts='*'/haxis=-3.5to3by0.5HREF=-2,0,2vaxis=-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=4rotate=VARImaxREorder;/*因子旋转:方差最大因子法*/varyx1-x6;run;------------------------------------------PROCSCORE---------PROCFACTORdata=Arndata.factordatn=4rotate=VARImaxREorderscoreout=score_Out;/*输出因子得分矩阵*/run;PROCprintdata=score_Out;vardistrictsfactor1factor2factor3factor4;run;PROCplotdata=score_Out;plotfactor1*factor2$districts='*'/href=0Vref=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.cancorrdatedf=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/boxhaxis=-0.2to0.3by0.1Vaxis=-0.1to0.3by0.1Href=0Vref=0;run;------------------------------------------聚类分析PROCCLUSTER---------PROCCLUSTERdata=Arndata.clusdatmethod=aveouttree=clusdat_Out;varx1-x6;iddatid;run;proctreehorizontal;/*做聚类树*/run;------------------------------------------PROCFASTclus---------PROCFASTclusdata=Arndata.clusdatmaxclusters=3listout=clusdat_Out;varx1-x6;iddatid;run;------------------------------------------PROCACEclusPROCVARCLUS---------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.discrimdatlistout=discrimdat_Outdistancepool=yes;classTyp;/*指定分类变量*/varx1-x6;/*用于建立判别识别函数的变量*/ididdiscrim;/*标注样本的变量*/run;---------第二种方法,将需要判别的新样本放在testdata里:---------PROCDISCRIMdata=Arndata.discrimdat1testdata=Arndata.discrimdat2testlisttestout=discrimdat_Out;/*将原来的几个选项加注test标示*/classTyp;/*指定分类变量*/varx1-x6;/*用于建立判别识别函数的变量*/ididdiscrim;/*标注样本的变量*/run;------------------------------------------PROCSTEPdisc:逐步判别分析过程---------PROCSTEPdiscmethod=stepwisedata=Arndata.discrimdatSLentry=0.10SLstay=0.10;/*设定引入和剔除的显著性水平*/classTyp;/*指定分类变量*/varx1-x6;/*用于建立判别识别函数的变量*/run;------------------------------------------PROCCANdisc:Fisher判别分析过程---------PROCCANdiscdata=Arndata.discrimdatout=discrimdat_Outdistancesimple;classTyp;/*指定分类变量*/varx1-x6;/*用于建立判别识别函数的变量*/run;procprintdata=discrimdat_Out;run;------------------------------------------
本文标题:SAS矩阵分析常用代码
链接地址:https://www.777doc.com/doc-2857194 .html