一些值具有均值为 0.0276 的正态分布。需要什么标准偏差才能使 98% 的值介于 0.0275 和 0.0278 之间?
我感到困惑的是当 Z 在两个区间之间时如何计算标准偏差。我知道 P(-.0001/σ < Z < .0002/σ) = .98,但我不知道从哪里开始。
一些值具有均值为 0.0276 的正态分布。需要什么标准偏差才能使 98% 的值介于 0.0275 和 0.0278 之间?
我感到困惑的是当 Z 在两个区间之间时如何计算标准偏差。我知道 P(-.0001/σ < Z < .0002/σ) = .98,但我不知道从哪里开始。
使用“68-95-99.7”规则,我们几乎可以立即在脑海中解决这个问题。 我将详细解释该过程,因为这很重要。 答案没有什么意义:这个问题的重点是帮助我们学会思考概率分布。
68-95-99.7 规则中的这些数字是(大约)正态变量位于其平均值的 1、2 和 3 个标准差内的概率百分比。通过从 100% 中减去这些数字,可以得出正态变量超出其平均值的 1、2 和 3 个 SD 的机会分别约为 32、5 和 0.3%。由于这种分布是对称的,我们可以将这些数字中的每一个分成两半,以找出在给定方向上超出平均值的 1、2 和 3 个 SD 的机会:这些值分别约为 16%、2.5% 和 0.15% . (图中显示了稍微更准确的值。)
该图使用区域来表示机会。例如,最左边的值 16% 是曲线下位于 -1 左侧的所有面积的比例。与数字相关的“尾部区域”被标记。(这些区域重叠;例如,16% 的值包括 2.3% 和 0.13% 的值所占的区域。)
有效思考概率的人会使用这样的心理数字。
转向问题中的数据: 0.0275 是 0.0276 均值左侧的 0.0001,而 0.0278 是均值右侧的 0.0002:两倍。因此,我们需要将未知数量的标准差之间的概率的 98% 包围在均值的左侧——称之为倍数表示它在左侧 - 并且是平均值右侧标准差的两倍,因此是
等效地,100 - 98 = 2% 的概率必须超出此范围。该图显示 2.3% 的概率位于左侧基本上 0% 位于 所以将是一个准确的猜测(尽管有点低)。
达到这一点所需的唯一算术包括减法、除法(0.0002 / 0.0001)和减半。
如果您想更接近“答案”,请查找(或计算)其中 2% 的概率在: 那是 仍然是基本上 0% 在右边的情况 (因为实际上还有一点点概率超出的正确值必须比)
无论哪种方式,我们得出的结果是是在某个地方或者
最后,回到问题中的数据:标准差等于(或者标准差等于这都一样)。 因此,我们的答案是
快速而肮脏,基于 68-95-99.7 规则:
更精致一点,基于表查找:
我们知道这两个答案都会有点过大,但第二个必须相当准确。
经过这个思考过程,我们可以R立即写下以下命令,因为它们直接执行计算(尽管更准确):
(Z <- uniroot(function(z) pnorm(2*z)-pnorm(-z) - 0.98, c(2,3))$root)
2.054 158
这与我以前得到的三位十进制数字表一致
(0.0276 - 0.0275) / Z
4.86 8176e-05
它与我们的第一个答案几乎一致,几乎是两个有效数字,第二个答案几乎是四个有效数字——比我们真正应得的要多。
所以你可以使用 R 来得到答案:
target=function (sd){
b=pnorm(0.0278, mean = 0.0276, sd = sd)
a=pnorm(0.0275, mean = 0.0276, sd = sd)
return(abs(b-a-0.98))
}
sd=optim(1,target)
sd$par
这给出了:
> sd$par
[1] 4.868167e-05
我们正在做的是使用数值方法来计算这样
必须用数值求解。这是R使用简单求根算法的解决方案。我们简单地解方程
在哪里表示正态分布的累积分布函数,均值和标准差.和(和) 分别是上限和下限,并且() 是介于两者之间的值的比例和.
该函数find_sigma非常通用:它接受固定参数,,和.
find_sigma <- function(sigma, a, b, mu, prop) {
(pnorm(b, mean = mu, sd = sigma) - pnorm(a, mean = mu, sd = sigma)) - prop
}
uniroot(
find_sigma
, lower = .Machine$double.xmin
, upper = 1
, a = 0.0275 # lower bound
, b = 0.0278 # upper bound
, mu = 0.0276 # mean
, prop = 0.98 # proportion between a and b
, maxiter = 10000
, tol = 1e-20
# , extendInt = "yes"
)
$root
[1] 4.868168e-05
标准差是正如其他答案所发现的那样。
我相信没有简单的方法来计算这个。我建议研究它的数值解决方案。
稍微解释一下,这是正态分布:
区间 [a, b] 中值的百分比由下式给出:
你知道 F(a,b),你知道 a 和 b,你知道平均值. 你需要做的是解决这个方程. 但是,积分是误差函数,无法解析求解,因此无法求解.
使用数值方法,它变得更容易 - 例如,您可以计算具有固定的正态分布对于 1000 x 值,计算 a 和 b 之间的面积,然后迭代更改直到找到最接近 0.98 的值。
大多数编程语言中也有计算给定参数的累积正态分布的函数,所以如果你想要更高的精度,你可以使用这些函数(再次迭代)。