• 登录
Skip to content

一起大数据-技术文章心得

一起大数据网由数据爱好者发起并维护,专注数据分析、挖掘、大数据相关领域的技术分享、交流。不定期组织爱好者聚会,期待通过跨行业的交流和碰撞,更好的推进各领域数据的价值落地。

Menu
  • 首页
  • 大数据案例
  • 数据&电子书
  • 视频
    • Excel视频
    • VBA视频
    • Mysql视频
    • 统计学视频
    • SPSS视频
    • R视频
    • SAS视频
    • Python视频
    • 数据挖掘视频
    • 龙星计划-数据挖掘
    • 大数据视频
    • Machine Learning with Python
  • 理论
    • 统计学
    • 数据分析
    • 机器学习
    • 大数据
  • 软件
    • Excel
    • Modeler
    • Python
    • R
    • SAS
    • SPSS
    • SQL
    • PostgreSQL
    • KNIME
  • 技术教程
    • SQL教程
    • SPSS简明教程
    • SAS教程
    • The Little SAS Book
    • SAS EG教程
    • R语言教程
    • Python3教程
    • IT 技术速查手册
    • Data Mining With Python and R
    • SAS Enterprise Miner
  • 问答社区
  • 我要提问
Menu
SAS 分析常用的过程 过程步大全

SAS 分析常用的过程 过程步大全

Posted on 2016年8月19日

来自 http://www.cnblogs.com/ArnData/archive/2012/05/28/2520928.html

为区分过程名称的拼写,故意部分小写,以便识别和记忆。

 

基本SAS程序代码结构:

———

PROC MODE data=Arndata.moddat;          /* 命令的解释 */

var y x1-x6;                           /* 命令的解释 */

model y = x1-x6;

run;

——————————————

 

 


 

正态性检验

PROC UNIvariate

———

PROC UNIvariate data=Arndata.unidat;

var x1;

run;

——————————————

 

 

 


 

相关分析和回归分析

PROC REG 回归

———

PROC REG data=Arndata.regdat;

var y x1-x6;

model y = x1-x6 / selection=stepwise; /* 加入逐步回归选项 */

print cli;                                            /* 加入输出预测结果部分,还可以输出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*/

plot y*x2 / conf95;                            /* 做散点图 */

run;

——————————————

———

DATA Arndata.regdat;

x2x2 = x2*x2;

x1x2 = x1*x2;

PROC REG data=Arndata.regdat;

var y x1 x2 x2x2 x1x2 ;                                /* 多项式回归,非线性回归 */

model y = x1 x2 x2x2 x1x2 / selection=stepwise;    /* 加入逐步回归选项 */

print cli;

plot y*x2 / conf95;                              /* 做散点图 */

run;

——————————————

PROC RSreg 二次响应面回归

PROC ORTHOreg 病态数据回归

PROC NLIN 非线性回归

PROC TRANSreg 变换回归

PROC CALIS 线性结构方程和路径分析

PROC GLM 一般线性模型

PROC GENmod 广义线性模型

 


 

方差分析

PROC ANOVA 单因素均衡数据和非均衡数据

———

PROC ANOVA data=Arndata.anovadat;          /* 命令的解释 */

class typ;                                   /* 命令的解释 */

model y = typ;                            /* 可以看出此处是 单因素方差分析(分类型自变量对数值型自变量的影响) */

run;

——————————————

PROC GLM 多因素非均衡数据:

———

 

PROC GLM data=Arndata.glmdat;          /* 命令的解释 */

class typea typeb;                /* 命令的解释 */

model y = typea typeb;        /* 可以看出此处是 不考虑交互作用的多因素方差分析(分类型自变量对数值型自变量的影响) */

run;

——————————————

———

 

PROC GLM data=Arndata.glmdat;          /* 命令的解释 */

class typea typeb;                /* 命令的解释 */

model y = typea typeb typea*typeb;        /* 可以看出此处是 考虑交互作用的多因素方差分析(分类型自变量对数值型自变量的影响) */

run;

——————————————

 

 

 


 

主成分分析

PROC PRINcomp

———

PROC PRINcomp data=Arndata.pmdat   n=4  out=w1 outstat=w2 ;

var x1-x6;

PROC print data=w1;

PROC plot data=w1 vpct=80;                                          /* 一句话,其实print就是plot输出图形的文字形式而已 */

plot prin1*prin2 $ districts=’*’/

haxis=-3.5 to 3 by 0.5 HREF=-2,0,2

vaxis=-3 to 4.5 by 1.5 HREF=-2,0,2;              /* 主成分的散点图,也就是载荷图 */

run;

——————————————

 

因子分析

PROC FACTOR

———

PROC FACTOR data=Arndata.factordat simple corr ;

var y x1-x6;

title’18个财务指标的分析’;

title2’主成分解’;

run;

PROC FACTOR data=Arndata.factordat n=4 ;                        /* 选择4个公共因子 */

var y x1-x6;

run;

PROC FACTOR data=Arndata.factordat n=4

rotate=VARImax REorder;                                   /* 因子旋转:方差最大因子法 */

var y x1-x6;

run;

——————————————

PROC SCORE

———

PROC FACTOR data=Arndata.factordat n=4

rotate=VARImax REorder score out=score_Out;     /* 输出因子得分矩阵 */

run;

PROC print data=score_Out;

var districts factor1 factor2 factor3 factor4;

run;

PROC plot data=score_Out;

plot factor1*factor2 $ districts=’*’ / href=0 Vref=0;     /* 因子的散点图,也就是载荷图 */

run;

——————————————

 

 

 


 

典型相关分析

PROC CANcorr

基本SAS程序代码结构:

———

DATA jt(TYPE=CORR);                               /* TYPE=CORR 表明数据类型为相关矩阵,而不是原始数据, type还可以是cov,ucov,factor,sscp,ucorr等*/

input names$ 1-2(x1 x2 y1-y3)(6.);   /* name $ 表示读取左侧的变量名,1-2表示变量名的字符落在第1,2列上 */

cards;

x1 1 0.8 ……

x2 ……

y1 ……

y2 ……

y3 ……

;

PROC CANcorr data=Arndata.cancorrdat

edf=70 redundancy;                  /* 误差自由度的参考值,默认值是n=1000; redundancy表示输出冗余度分析的结果 */

var x1 x2;

with y1 y2 y3;

run;

——————————————

对应分析                 /* 交叉表分析的拓展,寻找行和列的关系,一般行指代各种cases,而列代表各种visions */

PROC CORResp

 

———

PROC CORResp data=Arndata.correspdat out=result;

var x1-x6;

id Type;

run;

options ps=40;

proc plot data=result;

plot dim2*dim1=”*” $ Type / box

haxis=-0.2 to 0.3 by 0.1

Vaxis=-0.1 to 0.3 by 0.1

Href=0 Vref=0;

run;

——————————————


 

聚类分析

PROC CLUSTER

———

PROC CLUSTER data=Arndata.clusdat
method=ave outtree=clusdat_Out;

var x1-x6;

id datid;

run;

proc tree horizontal;                 /* 做聚类树 */
run;

——————————————

PROC FASTclus

———

PROC FASTclus data=Arndata.clusdat
maxclusters=3 list out=clusdat_Out;

var x1-x6;
id datid;
run;

——————————————

 

 

PROC ACEclus

PROC VARCLUS

———

PROC VARclus data=Arndata.clusdat; /* 系统默认使用主成分法聚类 */

var x1-x6;
run;

———

PROC VARclus hierarchy data=Arndata.clusdat; /* 保证分析过程中不同水平的谱系结构 */

var x1-x6;
run;

———

PROC VARclus centroid data=Arndata.clusdat outtree=clusdat_out; /* 使用重心法聚类 */

var x1-x6;
run;

 

——————————————

PROC TREE
———

PROC TREE data=Arndata.clusdat horizontal; /* 使用TREE过程绘制聚类谱系图 */

var x1-x6;
run;

 

——————————————

 

判别分析

PROC DISCRIM

———

PROC DISCRIM data=Arndata.discrimdat
list out=discrimdat_Out distance pool=yes;
class Typ; /* 指定分类变量 */
var x1-x6; /* 用于建立判别识别函数的变量 */
id iddiscrim; /* 标注样本的变量 */
run;
———

第二种方法,将需要判别的新样本放在testdata里:

———

PROC DISCRIM data=Arndata.discrimdat1 testdata=Arndata.discrimdat2
testlist testout=discrimdat_Out; /* 将原来的几个选项加注test标示 */
class Typ; /* 指定分类变量 */
var x1-x6; /* 用于建立判别识别函数的变量 */
id iddiscrim; /* 标注样本的变量 */
run;

——————————————

PROC STEPdisc: 逐步判别分析过程

———

PROC STEPdisc method=stepwise data=Arndata.discrimdat
SLentry=0.10 SLstay=0.10; /* 设定引入和剔除的显著性水平 */
class Typ; /* 指定分类变量 */
var x1-x6; /* 用于建立判别识别函数的变量 */
run;

——————————————

PROC CANdisc: Fisher判别分析过程

———

PROC CANdisc data=Arndata.discrimdat out=discrimdat_Out
distance simple;
class Typ; /* 指定分类变量 */
var x1-x6; /* 用于建立判别识别函数的变量 */
run;
proc print data=discrimdat_Out;
run;

——————————————

发表评论 取消回复

要发表评论,您必须先登录。

推荐访问


数据分析交流:数据分析交流
Excel学习: Excel学习交流
Python交流:一起学习Python(数据分
SQL交流:一起学习SQL(数据分析
微博:一起大数据

最新提问

  • SQL Chat
  • sql server 不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了”阻止保存要求重新创建表的更改”选项。
  • 偏相关分析
  • 复相关系数
  • 【R语言】熵权法确定权重
  • 如何破解Excel VBA密码
  • 解决 vba 报错:要在64位系统上使用,请检查并更新Declare 语句
  • 基于 HuggingFace Transformer 的统一综合自然语言处理库
  • sqlserver分区表索引
  • Navicat连接数据库后不显示库、表、数据

文章标签

ARIMA CBC Excel GBDT KNN Modeler Mysql pandas PostgreSQL python python数据可视化 R SAS sklearn SPSS SQL SVM Tableau TensorFlow VBA 主成分分析 关联规则 决策树 协同过滤 可视化 因子分析 大数据 大数据分析 推荐系统 数据分析 数据可视化 数据挖掘 数据透视表 文本挖掘 时间序列 机器学习 深度学习 神经网络 结构方程 统计学 联合分析 聚类 聚类分析 逻辑回归 随机森林
©2023 一起大数据-技术文章心得 | Design: Newspaperly WordPress Theme