在SAS中绘制QQ图(Quantile-Quantile Plot)是一种常用的统计图形方法,用于评估数据是否符合某种理论分布(如正态分布),或比较两组数据的分布是否相似,QQ图通过绘制数据的分位数与理论分布分位数或另一组数据分位数的关系,直观展示分布的匹配程度,以下是SAS中绘制QQ图的详细步骤、命令说明及实例分析。

SAS绘制QQ图的核心命令
SAS中最常用的QQ图绘制命令是通过PROC UNIVARIATE和PROC CAPABILITY过程实现的,这两个过程均支持QQ图的生成,且功能各有侧重。
使用PROC UNIVARIATE绘制QQ图
PROC UNIVARIATE过程是SAS中单变量分析的基础工具,其QQPLOT语句可直接生成QQ图,基本语法如下:
PROC UNIVARIATE DATA=数据集 NORMAL PLOT;
VAR 变量名;
QQPLOT 变量名 / NORMAL(MU=估计值 SIGMA=估计值);
RUN;
NORMAL选项:指定与正态分布比较,若省略则默认绘制正态QQ图。PLOT选项:要求输出包括QQ图在内的多种图形。QQPLOT语句:指定绘制QQ图的变量,NORMAL选项后可自定义分布参数(如均值MU和标准差SIGMA),若不指定则使用样本估计值。
使用PROC CAPABILITY绘制QQ图
PROC CAPABILITY过程在图形定制和分布拟合方面更灵活,适合复杂分析,其语法如下:
PROC CAPABILITY DATA=数据集 GRAPHICS;
VAR 变量名;
QQPLOT 变量名 / NORMAL(SHAPE=EST THRESHOLD=EST);
INSET MEAN STD / POSITION=NE;
RUN;
GRAPHICS选项:要求生成高质量矢量图形。QQPLOT语句的NORMAL选项中,SHAPE=EST和THRESHOLD=EST表示自动估计形状参数和位置参数(如威布尔分布)。INSET语句:可在图中插入统计量(如均值、标准差)。
QQ图参数与选项详解
QQ图的输出效果取决于选项设置,以下是关键参数说明:

| 选项/参数 | 作用 | 示例 |
|---|---|---|
NORMAL |
指定理论分布为正态分布 | NORMAL(MU=0 SIGMA=1) |
EXPONENTIAL |
指定指数分布 | EXPONENTIAL(THETA=EST SIGMA=EST) |
LOGNORMAL |
指定对数正态分布 | LOGNORMAL(Z=EST SIGMA=EST) |
WEIBULL |
指定威布尔分布 | WEIBULL(THETA=EST SIGMA=EST ALPHA=EST) |
COLOR |
设置数据点颜色 | COLOR=BLUE |
L=符号 |
设置数据点符号 | L=SQUARE |
GRID |
添加网格线 | GRID |
绘制自定义参数的正态QQ图:
PROC UNIVARIATE DATA=sashelp.class NORMAL PLOT;
QQPLOT height / NORMAL(MU=60 SIGMA=5) L=CIRCLE GRID;
RUN;
实例分析:正态性检验QQ图
以SAS内置数据集sashelp.class的身高变量height为例,绘制正态QQ图并分析:
PROC UNIVARIATE DATA=sashelp.class NORMAL PLOT;
VAR height;
QQPLOT height / NORMAL(MU=EST SIGMA=EST)
SQUARE
INSET MEAN STD N;
HISTOGRAM height / NORMAL;
RUN;
输出解读:
- QQ图主体:横坐标为理论分位数(标准正态分布),纵坐标为数据分位数,若数据点沿对角线分布,则符合正态分布。
- 置信带:默认绘制95%置信带,若数据点大部分落在带内,支持正态性假设。
- 直方图叠加:
HISTOGRAM语句叠加直方图与正态密度曲线,辅助判断。
非正态分布的QQ图绘制
若需检验其他分布(如指数分布),修改QQPLOT语句的分布选项:

PROC CAPABILITY DATA=sashelp.class;
VAR weight;
QQPLOT weight / EXPONENTIAL(THETA=EST SIGMA=EST);
RUN;
多组数据QQ图比较
通过PROC QUANTREG或PROC SGPLOT可绘制两组数据的QQ图比较:
PROC SGPLOT DATA=sashelp.class;
QUANTILE X=height Y=weight / GROUP=sex;
XAXIS LABEL="Height Quantiles";
YAXIS LABEL="Weight Quantiles";
RUN;
注意事项
- 样本量要求:QQ图对样本量敏感,小样本可能难以判断,建议样本量≥30。
- 异常值识别:QQ图中偏离对角线较远的点可能为异常值。
- 参数估计:若指定
MU=EST和SIGMA=EST,SAS使用最大似然估计,结果与PROC CAPABILITY一致。
相关问答FAQs
问题1:SAS中QQ图的置信带如何自定义?
解答:在PROC UNIVARIATE或PROC CAPABILITY中,通过QQPLOT语句的ALPHA=选项设置置信水平,如ALPHA=0.1表示90%置信带。
QQPLOT height / NORMAL ALPHA=0.1;
PROC CAPABILITY支持CONFIDENCE语句进一步调整带型(如TYPE=PERCENTILE)。
问题2:如何保存SAS生成的QQ图为图片文件?
解答:使用ODS(输出传送系统)指定图形格式,例如保存为PNG格式:
ODS GRAPHICS ON / RESET=ALL IMAGEFMT=PNG;
ODS LISTING CLOSE;
ODS PNG FILE="C:\QQPlot.png";
PROC UNIVARIATE DATA=sashelp.class NORMAL PLOT;
QQPLOT height;
RUN;
ODS PNG CLOSE;
ODS LISTING;
关键参数说明:IMAGEFMT=PNG指定格式,FILE=指定路径,执行后需关闭ODS以释放资源。
