如何在 r 中 z 分数和百分位数之间进行转换
z 分数告诉我们某个值与数据集平均值的标准差有多少。
百分位数告诉我们数据集中低于某个值的观测值的百分比。
通常您可能需要在 z 分数和百分位数之间进行转换。
您可以使用以下方法在 R 中执行此操作:
方法 1:将 Z 分数转换为百分位数
percentile <- pnorm(z)
方法 2:将百分位数转换为 Z 分数
z <- qnorm(percentile)
以下示例展示了如何在实践中使用每种方法。
示例 1:将 Z 分数转换为 R 中的百分位数
我们可以使用 R 中内置的pnorm函数将 az 分数转换为百分位数。
例如,以下是将 z 分数 1.78 转换为百分位数的方法:
#convert z-score of 1.78 to percentile percentile <- pnorm( 1.78 ) #display percentile percentile [1] 0.962462
事实证明,z 分数 1.78 对应于百分位数96.2 。
我们将此解释为 1.78 的 z 分数高于数据集中所有其他值的约96.2% 。
示例 2:将百分位数转换为 R 中的 Z 分数
我们可以使用 R 中内置的qnorm函数将百分位数转换为 az 分数。
例如,以下是将百分位数 0.85 转换为 z 分数:
#convert percentile of 0.85 to z-score z <- qnorm( 0.85 ) #display z-score z [1] 1.036433
事实证明,百分位数 0.85 对应于 z 分数1.036 。
我们将此解释为数据集中第 85 个百分位数的数据值的 z 得分为1.036 。
另请注意,我们可以使用qnorm函数将百分位数的整数向量转换为 z 分数:
#define vector of percentiles
p_vector <- c(0.1, 0.35, 0.5, 0.55, 0.7, 0.9, 0.92)
#convert all percentiles in vector to z-scores
qnorm(p_vector)
[1] -1.2815516 -0.3853205 0.0000000 0.1256613 0.5244005 1.2815516 1.4050716
以下是如何解释结果:
- 百分位数 0.1 对应于 z 分数-1.28 。
- 百分位数 0.35 对应于 z 分数-0.38 。
- 百分位数 0.5 对应于 z 分数0 。
等等。
其他资源
以下教程解释了如何执行其他常见任务: