如何在SAS中计算Z-cores(附代码)

678 阅读2分钟

在统计学中,Z分数告诉我们一个数值离平均值有多少个标准差。

我们使用以下公式来计算Z分数。

z= (X - μ) / σ

其中:

  • X是一个单一的原始数据值
  • μ是数据集的平均值
  • σ是数据集的标准差。

下面的例子显示了如何在SAS中计算原始数据值的Z-cores。

例子:在SAS中计算Z-cores

假设我们在SAS中创建了以下数据集:

/*create dataset*/
data original_data;
    input values;
    datalines;
7
12
14
12
16
18
6
7
14
17
19
22
24
13
17
12
;
run;

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

现在假设我们想为数据集中的每个值计算Z-score。

我们可以使用proc sql来实现。

/*create new variable that shows z-scores for each raw data value*/
proc sql;
    select values, (values - mean(values)) / std(values) as z_scores
    from original_data;
quit;

z-scores in SAS

values列显示的是原始数据值,z_scores列显示的是每个值的z-score。

如何在SAS中解释Z-scores

z-score 告诉我们一个值离平均值有多少个标准差。

Z分数可以是正的,也可以是负的,或者等于零。

正的Z分数表示一个特定的值大于平均值,负的Z分数表示一个特定的值小于平均值,而Z分数为零表示一个特定的值等于平均值。

如果我们计算我们的数据集的平均值和标准差,我们会发现平均值是14.375,标准差是5.162

所以,我们数据集中的第一个值是7,它的Z分数是(7-14.375)/5.162=-1.428。这意味着 "7 "这个值低于 平均值1.428个标准差。

我们数据中的下一个值,12,其z-score为(12-14.375) / 5.162 =-0.46。这意味着 "12 "这个值低于 平均值0.46个标准差。

一个数值离平均值越远,该数值的z分数的绝对值就越高。

例如,与12相比,值7离平均值(14.375)更远,这就解释了为什么7的Z分数的绝对值更大。