1 sort过程
例子:
DATA SCORE;
INPUT NUM $ S1-S3 @@;
CLAS=SUBSTR(num,3,2); /* 用SUBSTR函数从NUM中截取出班级CLAS */
TOT=SUM(OFS1-S3);
CARDS;
060101 79 9687 060102 69 78 92
060203 98 8793 060104 88 93 90
060201 76 8988 060207 90 89 97
;
proc print;
run;
PROC SORT DATA= SCORE OUT=CS1;
BY CLAS descending TOT;
PROC PRINT;
RUN;
Out输出数据集
By通过什么排序 【descending】 字段 descendingTOT按照tot倒序,不写表示默认方式,正序
2 print过程:
例子:
DATA ear_exp;
INPUT name $ reg $ wor $ earn exp @@;
CARDS;
LILING A 15500 4700 LIUHONG B 2 4600 4000
SUNPING B 25300 4800 ZHANGLI A 1 5300 4500
ZHAOGONG A 15600 4600 XIWANG B 1 8500 7400
WEIDONG A 15500 4500 ZHAOJUN A 2 4500 4000
WANGJIAN B 19800 8300 LIUYAN A 2 3500 3300
HUANGHUA A 23800 3500 ZHOULI A 2 3900 3700
QINWEI B 24900 4400 DONGYI B 1 15000 9000
ZHANGSAN B 110500 8800 WANGZI B 2 4900 4500
liujun A 18900 7790 DONGFENG B 1 11000 8090
FENGJUN A 18980 7720 KONGHAI A 1 12000 9000
PROC SORT ;
BY reg wor;
PROC PRINT ;
ID NAME;
BY reg wor;
SUM earn exp;
RUN;
PROC PRINT<选项>;
VAR 变量表
ID 变量表;
BY 变量表;
SUM 变量表;
3format过程
DATA score;
LENGTH name $ 12;
INPUT name t1-t3 @@;
CARDS;
WANGDONG 9070 60 XUEPING 85 95 88 ZHOUHUA 77 84 69
HEYAN 95 7888 SUNHONG 89 97 87 ZHAOBIN 66 98 86
;
PROC FORMAT (Library=l);
VALUE fsmt low-<60='C' 60-<80='B' 80-100='A';
PROC PRINT DATA= score;
FORMAT t1-t3 fsmt.;
run;
Library=选项指定逻辑库,用于保存格式 ,如果不写表示临时工作目录
Value语句用于定义格式 value 格式名 格式内容
4 means过程
例子
PROC means data= mydb.score1 maxdec=3;
var t1-t3;
class clas;
title 'statistics with a class variable';
Proc sort data= mydb.score1;
by clas;
PROC means maxdec=3;
by clas;
var t1-t3;
Title 'statistics with by variable';
run;
MEANS过程
选项
DATA=数据集,指出要分析的数据集
NOPRINT,不输出任何统计量,仅为建立一个新的数据集
MAXDEC=n,指出小数点位数
语句
VAR 变量表; 指出要分析的变量表
BY 变量表; 聚组统计
ID 变量表;
其他统计量过程。
例如
缺省
变量 |
N |
均值 |
标准差 |
最小值 |
最大值 |
例如求最小值
data test;
input clas t1-t3 @@;
cards;
1 100 100100 1 90 98 90
1 91 98 98 289 100 98
2 100 98 972 97 86 99
;
proc means maxdec=3 ;
by clas;
run;
by需要先排序
class不需要先排序
都是分组
Weight权重
Fre观测行频率
5FREQ过程
频率统计过程
例子:
data b; /*读入数据*/
input num $ t1-t3;
v=MEAN(OFt1-t3);
cards;
020221 76 9890
020122 65 5687
020221 35 7998
020223 85 7799
020126 87 7990
020127 57 5860
020227 77 9798
020228 61 5949
020129 77 6787
020331 88 9790
010131 69 9080
010230 72 5980
020232 66 7778
020136 67 7987
020138 90 7579
;
PROC FORMAT ;/*产生成绩等级的格式*/
VALUE vfmt LOW-<60='C'
60-<80='B'
80-HIGH='A';
PROC FREQ data=b; /*对成绩各等级频数分析*/
FORMAT v vfmt.;
TABLES v;
run;
二维表
PROC FREQ DATA=ep.ear_exp;
TABLES reg*wor;
RUN;
N维
*链接
data b; /*读入数据*/
input num $ t1-t3;
v=MEAN(OFt1-t3);
cards;
020221 76 9890
020122 65 5687
020221 35 7998
020223 85 7799
020126 87 7990
020127 57 5860
020227 77 9798
020228 61 5949
020129 77 6787
020331 88 9790
010131 69 9080
010230 72 5980
020232 66 7778
020136 67 7987
020138 90 7579
;
PROC FORMAT ;/*产生成绩等级的格式*/
VALUE vfmt LOW-<60='C'
60-<80='B'
80-HIGH='A';
PROC FREQ data=b; /*对成绩各等级频数分析*/
FORMAT v t1-t3 vfmt. ;
TABLES t1*t2*t3;
run;
最后一个变量是列,倒数第二是行,其他是层
6TABULATE过程
制表过程
例子
data test;
input a b @@;
cards;
1 1 2 1 2 21 3 2 3 2 1 1 2 2 1 1 3 2 3
;
proc tabulate;
class a b;
table a*b;
run;
2个都是列方向维度,a是控制维度,b子维度
table b*a;
控制维度,子维度变化
table b a;
分别从b,a统计
Class分类变量
Var分析变量
统计量
7UNIVARIATE过程
单变量统计过程
计算常用统计量,画图,频数表,正态性检验
例子:
data blood;
input number calcium phosphrs glucose @@;
/* number='identification number'
calcium='calcium mg percent'
phosphrs='inorganicphosphorus mg percent'
glucose='glucosemg percent' */
cards;
15 10.7 4.1 136 63 10.7 3.3 325 239 10.4 4.9 103 477 10.1 4.1 91
263 11.1 4.2 100 480 9.9 3.5 92 16 10.3 4.6 98 64 10.0 3.5 95
22 10.0 3.6 85 77 10.5 4. 100 266 9.7 4.4 100 494 10.1 2.4 96
39 8.8 2.7 90 97 10.0 4.5 97 307 10.0 4.1 117 520 9.8 3.3 80
338 10.4 3.5 93 523 9.0 3.7 87 44 10.5 4.5 160 132 9.5 3.7 105
46 10.0 3.0 95 152 9.8 3.8 100 383 10.6 5.1 91 541 10.8 4.1 120
48 9.9 2.7 90 156 9.7 3.2 90 408 9.5 4.3 135 544 9.1 3.7 111
416 9.8 4.1 105 554 9.4 3.4 132 51 9.9 4.1 100 164 9.6 3.3 155
56 9.7 3.1 110 216 10.7 5.3 117 420 10.2 3.0 97 561 9.9 3.8 102
57 10.6 4.4 138 221 10.6 4.6 110 441 9.9 3.9 98 575 10.7 3.9 100
457 10.0 4.2 95 629 10.2 3.7 104 59 9.4 3.5 95 225 9.5 4.5 95
61 10.1 4.0 97 234 10.4 4.3 100 473 10.0 4.0 93 644 10.0 3.6 110
;
PROC UNIVARIATE DATA= BLOOD PLOT NORMAL FREQ;
VAR PHOSPHRS;
RUN;
结果:
8线性回归REG
Proc reg<选择项>
Var 变量表
By 变量表
Freq 变量表
Weight变量表
Add
Delete
Model 因变量=自变量表 </选择项>
Test
Mtest
例子:
DATAreg1;
INPUT xy @@;
CARDS;
820 165 780 158 720 130 867 180 690 134
787 167 934 186 679 145 639 120 820 158
PROC CORR;
VAR x y;
RUN;
PROC REG;
MODEL y=x;
RUN;
PROC REG data=reg1;
MODELy=x/NOINT;
RUN;
data reg2;
input x@@;
y=x*0.19974;
cards;
1000 900
;
data reg1;
set reg2 reg1;
run;
PROC REG data=reg1;
MODELy=x/NOINT r cli clm;
RUN;
GLM过程
DATA reg1;
INPUT x y @@;
CARDS;
820 165 780158 720 130 867 180 690 134
787 167 934186 679 145 639 120 820 158
;
proc GLM data=reg1;
model y=x/noint;
run;
9 逐步选择法STEPWISE
Proc stepwise
前进法f
MODEL oxy=age weight runpulse maxpulse rstpulseruntime/forward ;
后退法 b
MODEL oxy=age weight runpulse maxpulse rstpulseruntime/backward
;
逐步回归法:前进法修正
Stepwise
最大全相关系数平方改进法
Maxr:
最小全相关系数平方改进法
minR
适用范围:多元线性回归,自变量选择
10指数曲线拟合NLIN过程
使用场景:
11 logistic回归
模型:
向前选择法,
向后剔除法
逐步选择法
最优子集法
Section=模型
Proc logistic<选项>
By
Class
Freq
Model 因变量=自变量表</选项>
Test
Weight
Output out=…
12主成分分析
例子
data tmp131;
input x1 x2 x4 x3@@;
cards;
40 2 5 20 40 1 19 40
10 1.5 5 30 270 4 13 60
120 3 13 50 280 3.5 11 60
250 4.5 18 0 170 3 9 60
180 3.5 14 40 220 2.5 14 30
130 2 30 50 140 2 20 20
220 1.5 17 20 220 2 14 10
160 1.5 35 60 40 1 10 0
120 3.5 9 50 20 1 12 60
10 1.5 12 50 120 2 20 0
;
proc princomp data=tmp131 out=tmp1outstat=liv2 prefix=pre standard cov;
proc corr data=tmp1;
var x1-x4;
with pre1-pre4;
run;
13 factor 因子分析
例子:
data l137;
input +1x1-x10;
cards;
1 947.0023.40 14.80 45.30 0.46 85.20 373.00 9.54 0.37 3.88
2 935.0023.20 16.20 41.70 0.40 83.30 305.00 7.90 0.38 4.81
3 918.2020.90 14.80 43.30 0.38 82.60 320.00 9.51 0.43 4.52
4 910.7023.40 16.10 44.00 0.46 85.20 338.00 8.60 0.33 3.84
5 905.0022.90 17.00 39.80 0.45 80.40 348.00 9.53 0.42 4.40
6 892.6022.30 15.70 44.00 0.41 85.40 286.00 8.67 0.39 4.50
7 853.4020.90 15.90 41.60 0.35 85.40 273.00 9.79 0.42 4.29
8 837.8020.20 14.40 37.30 0.33 82.50 326.00 7.62 0.36 4.73
9 833.3022.20 15.20 38.30 0.37 82.20 310.00 7.84 0.40 5.10
10 760.3020.40 15.50 40.70 0.32 84.20 268.00 7.75 0.35 4.52
;
proc factor simple corr data=l137 ;
var x1-x10;
run;
proc factor PRIORS=SMC MSA SCREE RESIDUAL PREPLOT NFACTORS=4
ROTATE=PROMAX REORDER PLOT
;
run;