![]() |
![]() |
![]() |
PROC 过程 DATA=分析数据 <options>;
VAR 分析变量列;
BY 分组变量; (使用之前都要先排序)
CLASS 分类变量;
TABLES 制表变量;
WEIGHT 权重变量;
PLOT/PLOT2 作图变量;
ID 关键字变量;
FORMAT 格式化;
LABEL 标签;
WHERE 选择;
MODEL 公式 [e.g. Y=X1 X2];
RUN; 暂停 (QUIT; 退出)
部分过程步语句的选项写在 / 符号之后
可以用FORMAT定义的格式分组数据
PROC FORMAT <library=saslib 一般不用>;
VALUE <$> 格式名 /*字符型变量格式名前加$,字符型和数值型的确定看原始变量的类型*/
范围1=格式化值1
范围n=格式化值n;
RUN;
e.g.
'A'='Asia'
1,3,5,7='Odd' /* ,区分离散值 */
50000-HIGH='Not Aforfable' /* -用于连续区间 */
13-<20='teenager' /* <表示开区间 */
0<-HIGH='positive non zero' /* HIGH/LOW指定最高和最低非缺失值 */
OTHER='bad data' /* OTHER将输出格式分配给未列出的其他值 */
①输出表格
②检验分类数据
③创建统计图
PROC FREQ DATA=dataset;
TABLES var or var(行)*var(列) / <options>
/*输出频数,百分比,行百分比,列百分比,累积频数,累计百分比*/
WEIGHT var;
BY var;
RUN;
<options>:
nocol norow nocum nofreq nopercent
missing list(以列表形式展示)
out=dataset outpct(要求输出集中还包含列百分数和行百分数)
MEANS过程步默认输出,SUMMARY过程步默认不输出
PROC MEANS DATA=dataset <options>;
VAR variable_list;
CLASS var;
BY var;
ID var;
OUTPUT OUT=new_dataset 记入数据集统计量名列;
RUN;
常用选项:
MAXDEC=位数 FW=域宽 NOPRINT
MAX MIN MEAN MEDIAN MODE N(有效数) NMISS(无效数) RANGE SUM
STDDEV STDERR VAR
ALPHA= CLM UCLM LCLM (confidence limits)
CSS USS CV SKEWNESS KURTOSIS
Q1(P25) Q3(P75) P1 P5 P10 P90 P95 P99
PROBT (T检验的P值·) T (T统计量)
用OUTPUT语句将汇总统计量写入SAS数据集
OUTPUT OUT=new_dataset statistics(variable-list) = name-list;
/*某种统计量(VAR语句中已定义的要输出的变量) = 定义统计量的新变量名*/
CLASS语句中添加WAYS和TYPES语句等
CLASS var1 var2 var3;
WAYS 1 2;
CLASS var1 var2 var3;
TYPES var1 var2 var3 var1*var2 var1*var3 var2*var3;
/*上面两种写法等价,输出包括交叉组合分类的统计结果*/
CLASS var1 var2 var3;
WAYS 0; / TYPES(); /*仅输出不使用分类变量统计结果*/
NWAY; /*输出数据集中只包含使用所有分类变量的情形*/
MEANS过程的拓展,可以输出更多描述统计量和图形初步
UNIVARIATE默认输出的统计量列表:
样本量、均值、标准差、方差、偏度、峰度、未校正和校正的平方和、变异系数、均值的标准误差、位置参数为0的t检验、最大值、最小值、极差、中位数、上、下四分位数、四分位差、众数、1,5,10,90,95,99百分位数、5个最大的值和5个最小的值(用于数据检查)
在PROC语句中加入NORMAL 和PLOT选项
W或D统计量用于正态分布拟合优度检验、茎叶图(stem-leaf plot)、盒子图(boxplot也称箱线图)
下面的通过相应的作图语句可实现,默认为正态分布,也可以添加其它分布名选项进行比较,注意分布名前添加斜杠/
概率图(PROBPLO)、累计概率图(CDFPLOT)、概率-概率图(PPPLOT)、直方图(HISTOGRAM)、分位数图(QQPLOT,简称QQ图)
分布名:NORMAL / BETA / EXPONENTIAL / GAMMA / LOGNORMAL / WEIBULL
PROC UNIVARIATE DATA=dataset noprint <options>;
VAR var;
BY var;
ID var;
OUTPUT OUT=new_dataset 关键名=变量名 ...
<PCTLPTS=p1(20),p2(80),... PCTLPRE=前缀词> ;
RUN;
<options>:
mu0=值 均值检验
plot
normal 正态检验
BIBASIC <type=loweer|upper|twosided alpha= > 置信区间
-------------------------------------------------------
e.g.
PROC UNIVARIATE DATA = class;
VAR Score;
HISTOGRAM Score/NORMAL;
PROBPLOT Score;
RUN;
PROC univariate data=fitness noprint;
var runtime;
output out=percents p10=op10 p90=op90
median=median q1=q1 q3=q3
pctlpts=20 80 pctlpre=p
qrange=iqrange range=range;
RUN;
proc univariate data=fitness noprint;
histogram oxygen/midpoints = 32 to 60 by 4
normal(L=1 color=orange w=2)
lognormal(L=2 w=3 theta=30)
exponential(L=8 w=4 theta=30);
inset n mean(4.1) std(4.2); /* 添加图例 */
run;
检验样本均值
PROC TTEST DATA=数据集名 <options>;
VAR var;
CLASS var; /*可以用来进行独立双样本的t检验*/
PAIRED var1*var2; /*配对样本均值t检验*/
BY var;
RUN;
<options>:
h0= 单样本t检验
alpha=
ci=<equal等尾区间估计检验|upmu一致最优无偏检验|none选择其一,不输出标准差>
sides = 2|L|U
nobyvar 将变量的名称从标题中移动到输出表格中
PLOTS(<ONLY>) = (<options>) 绘制统计图形(ONLY可以移除自动绘图)
<PLOT-options>:
NONE 不绘制任何图
ALL 请求所有合适的图形
BOXPLOT
HISTOGRAM 带有正态分布和和密度曲线的直方图
INTERVALPLOT 均值置信区间图
QQPLOT
SUMMARYPLOT 包含直方图和盒形图的图形
AGREEMENTPLOT 一致性图
PROFILESPLOT 概略图
PROC CORR DATA=dataset <options> PLOTS= ;
VAR var1 var2; #变量出现在表的顶部
WITH var1 var2; #变量出现在表的左侧
BY var;
RUN;
<options>:
pearson spearman kendall hoeffding
<plots-options>:
scatter(<ellipse=confidence | none>):为成对变量生成散点图
matrix(<histogram>):为所有变量生成散点矩阵图
PROC KDE DATA= OUT=<bivest>;
VAR var1 var2;
RUN;
PROC G3D DATA=<bivest>;
PLOT var2*var1=density;
RUN;
PROC NPAR1WAY DATA= <WILCOXON>;
CLASS var;
VAR var;
RUN;