如何标准化R中的数据列并获取贝尔曲线直方图以获得一个范围内的百分比?

问题描述 投票:1回答:1

我有一个数据集,其中一列包含从300到400的随机数字。我正在尝试使用R找到320到350之间该列的比例。据我所知,我需要标准化这些数据并创建一个铃曲线首先。我有平均值和标准差,但是当我做(X - mean)/ SD并从该列获得直方图时,它仍然不是钟形曲线。

这是我试过的代码。

myData$C1 <- (myData$C1 - C1_mean) / C1_SD
r probability-density standardized bell-curve
1个回答
1
投票

如果您只是计算该范围内的观察数量,则无需进行任何标准化,您可以直接使用

mean(myData$C1 >= 320 & myData$C1 <= 350)

至于标准化,它肯定不会产生任何“钟形曲线”:它只会改变分布(居中)并重新调整数据(除以标准偏差)。除此之外,密度函数的形状本身保持不变。

例如,

x <- c(rnorm(100, mean = 300, sd = 20), rnorm(100, mean = 400, sd = 20))
mean(x >= 320 & x <= 350)
# [1] 0.065
hist(x)
hist((x - mean(x)) / sd(x))

enter image description here

我怀疑你所寻找的是对真实的,未被观察到的比例的估计。如果必须使用标准正态分布函数的列表值,则标准化过程将适用。然而,在R中,我们可能没有这样的事情。特别是,

pnorm(350, mean = mean(x), sd = sd(x)) - pnorm(320, mean = mean(x), sd = sd(x))
# [1] 0.2091931

这是概率P(320 <= X <= 350),其中X通常以平均mean(x)和标准偏差sd(x)分布。这个数字与上面的数字完全不同,因为我们通过假设它是正常的来指定基础分布;它实际上是两个正态分布的混合。

© www.soinside.com 2019 - 2024. All rights reserved.