Sas:如何使用 proc 单变量进行正态性测试


您可以将 SAS 中的proc univariate正态语句结合使用,对数据集中的变量执行多个正态性检验。

此过程使用以下基本语法:

 proc univariate data =my_data normal ;
    var my_variable;
run ;

以下示例展示了如何在实践中使用此过程。

示例:SAS 中用于正态性检验的 Proc Univariate

假设我们在 SAS 中有以下数据集,其中包含有关各种篮球运动员的信息:

 /*create dataset*/
data my_data;
    input team $pointsrebounds;
    datalines ;
At 12 8
At 12 8
At 12 8
At 23 9
At 20 12
At 14 7
At 14 7
B 20 2
B 20 5
B 29 4
B 14 7
B 20 2
B 20 2
B 20 5
;
run ;

/*view dataset*/
proc print data =my_data;

我们可以使用proc univariatenormal语句对变量执行各种正态性检验:

 proc univariate data =my_data normal ;
    var points;
run ;

结果中将显示多个表格,但标题为“正态性检验”的表格包含正态性检验的结果:

SAS proc 单变量正态性检验

默认情况下,SAS 执行四个正态性检验并显示每个检验统计数据和相应的 p 值:

  • 夏皮罗-威尔克检验:W = 0.867,p = 0.0383
  • 柯尔莫哥洛夫-斯米尔诺夫检验:D = .237,p = .0318
  • 克拉默-冯·米塞斯检验:W-Sq = 0.152,p = 0.0200
  • 安德森-达林检验:A-Sq = 0.847,p = 0.0223

每个正态性检验均使用以下原假设和备择假设:

  • H 0 :数据呈正态分布。
  • H A :数据不呈正态分布。

由于每个正态性检验的p 值小于 0.05,因此我们将拒绝每个正态性检验的原假设。

这意味着有足够的证据可以得出结论,变量不是正态分布的。

请注意,您还可以创建叠加正态曲线的直方图,以可视化变量值的分布:

 proc univariate data =my_data;
    histogram points / normal ;
run ; 

直方图向我们表明,值的分布并没有很好地遵循正态曲线,这与我们进行的正态性检验的结果一致。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何在SAS中使用过程摘要
如何在 SAS 中使用 Proc Tabulate
如何在 SAS 中使用 Proc 排序规则

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注