菜鸟科技网

sas如何用命令绘制qq图?

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

sas如何用命令绘制qq图?-图1
(图片来源网络,侵删)

SAS绘制QQ图的核心命令

SAS中最常用的QQ图绘制命令是通过PROC UNIVARIATEPROC 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=ESTTHRESHOLD=EST表示自动估计形状参数和位置参数(如威布尔分布)。
  • INSET语句:可在图中插入统计量(如均值、标准差)。

QQ图参数与选项详解

QQ图的输出效果取决于选项设置,以下是关键参数说明:

sas如何用命令绘制qq图?-图2
(图片来源网络,侵删)
选项/参数 作用 示例
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;

输出解读

  1. QQ图主体:横坐标为理论分位数(标准正态分布),纵坐标为数据分位数,若数据点沿对角线分布,则符合正态分布。
  2. 置信带:默认绘制95%置信带,若数据点大部分落在带内,支持正态性假设。
  3. 直方图叠加HISTOGRAM语句叠加直方图与正态密度曲线,辅助判断。

非正态分布的QQ图绘制

若需检验其他分布(如指数分布),修改QQPLOT语句的分布选项:

sas如何用命令绘制qq图?-图3
(图片来源网络,侵删)
PROC CAPABILITY DATA=sashelp.class;
    VAR weight;
    QQPLOT weight / EXPONENTIAL(THETA=EST SIGMA=EST);
RUN;

多组数据QQ图比较

通过PROC QUANTREGPROC SGPLOT可绘制两组数据的QQ图比较:

PROC SGPLOT DATA=sashelp.class;
    QUANTILE X=height Y=weight / GROUP=sex;
    XAXIS LABEL="Height Quantiles";
    YAXIS LABEL="Weight Quantiles";
RUN;

注意事项

  1. 样本量要求:QQ图对样本量敏感,小样本可能难以判断,建议样本量≥30。
  2. 异常值识别:QQ图中偏离对角线较远的点可能为异常值。
  3. 参数估计:若指定MU=ESTSIGMA=EST,SAS使用最大似然估计,结果与PROC CAPABILITY一致。

相关问答FAQs

问题1:SAS中QQ图的置信带如何自定义?
解答:在PROC UNIVARIATEPROC 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以释放资源。

分享:
扫描分享到社交APP
上一篇
下一篇