如何在 sas 中创建 qq 图
QQ 图是“分位数-分位数”的缩写,用于评估数据集是否可能来自理论分布。
在大多数情况下,这种类型的图用于确定数据集是否遵循正态分布。
如果数据呈正态分布,QQ 图上的点将位于一条直线对角线上。
相反,图表上的点偏离直线对角线越明显,数据集遵循正态分布的可能性就越小。
在 SAS 中创建 QQ 图的最简单方法是将PROC UNIVARIATE语句与QQPLOT语句结合使用:
proc univariate data =my_data noprint ; qqplot my_variable; run ;
以下示例展示了如何在实践中使用此语法。
注意:我们使用NOPRINT语句删除由PROC UNIVARIATE语句自动生成的所有其他汇总统计信息和表。
示例 1:在 SAS 中为正态数据创建 QQ 图
以下代码演示了如何为包含 1000 个观测值的数据集创建 QQ 图,这些观测值是根据平均值为 10、标准差为 2 的正态分布生成的:
/*generate 1000 values that follow normal distribution with mean 10 and sd 2 */
data normal_data;
do i = 1 to 1000;
x = 10 + 2* rannor (1);
output ;
end ;
run ;
/*create some plot*/
proc univariate data =normal_data noprint ;
qqplot x;
run ;
我们可以看到这些点大部分位于一条直线对角线上,沿着每条尾部有一些微小的偏差。
根据该图,我们可以安全地假设该数据集呈正态分布。
示例 2:非正态数据的 QQ 图
以下代码显示如何为包含从指数分布生成的 1000 个观测值的数据集创建 QQ 图:
/*generate 1000 values that follow an exponential distribution*/
data exp_data;
do i = 1 to 1000;
x = ranexp (1);
output ;
end ;
run ;
/*create some plot*/
proc univariate data =exp_data noprint ;
qqplot x;
run ;
我发现这些点明显偏离直线对角线。这清楚地表明数据集不是正态分布的。
鉴于我们指定数据应遵循指数分布,这应该是有意义的。
其他资源
以下教程解释了如何在 SAS 中执行其他常见任务:
如何在 SAS 中使用 Proc Univariate 进行正态性检验
如何在 SAS 中执行日志转换
如何识别 SAS 中的异常值