SAS 学习笔记(五)— SAS与基本统计分析

文章目录

      • 统计基础补充
      • PROC步基本语法
          • PROC FORMAT 定义输出格式过程
          • PROC FREQ 频数过程(见六 属性数据分析模块)
          • PROC MEANS / PROC SUMMARY过程
          • UNIVARIATE 单变量过程
          • TTEST 检验过程
          • CORR 相关性分析过程
          • KDE 二元非参核密度估计
          • NPAR1WAY 秩和检验

统计基础补充

SAS 学习笔记(五)— SAS与基本统计分析_第1张图片
SAS 学习笔记(五)— SAS与基本统计分析_第2张图片
SAS 学习笔记(五)— SAS与基本统计分析_第3张图片

PROC步基本语法

PROC 过程 DATA=分析数据 <options>;
	VAR 分析变量列;
	BY 分组变量; (使用之前都要先排序)
	CLASS 分类变量;
	TABLES 制表变量;
	WEIGHT 权重变量;
	PLOT/PLOT2 作图变量;
	ID 关键字变量;
	FORMAT 格式化;
	LABEL 标签;
	WHERE 选择;
	MODEL 公式 [e.g. Y=X1 X2];
RUN; 暂停  (QUIT; 退出)

部分过程步语句的选项写在 / 符号之后


PROC FORMAT 定义输出格式过程

可以用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 频数过程(见六 属性数据分析模块)

①输出表格
②检验分类数据
③创建统计图

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(要求输出集中还包含列百分数和行百分数)
PROC MEANS / PROC SUMMARY过程

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;  /*输出数据集中只包含使用所有分类变量的情形*/
UNIVARIATE 单变量过程

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;
TTEST 检验过程

检验样本均值

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   概略图
CORR 相关性分析过程
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>):为所有变量生成散点矩阵图
KDE 二元非参核密度估计
PROC KDE DATA=  OUT=<bivest>;
	VAR  var1  var2;
RUN;
PROC G3D DATA=<bivest>;
	PLOT var2*var1=density;
RUN;
NPAR1WAY 秩和检验
PROC NPAR1WAY DATA=  <WILCOXON>;
	CLASS  var;
	VAR  var;
RUN;

你可能感兴趣的:(SAS)