使用 R 计算标准差
Calculate standard deviation using R
使用 R 脚本解决以下问题:
一位过程控制专家表示,他有 95% 的信心认为新的生产过程每单位将节省 26 到 38 美元,更有可能节省大约 32 美元。
如果您要使用正态分布(通过应用经验规则)为这位专家的意见建模,您将对正态分布使用什么标准差? (将您的答案四舍五入到小数点后一位。
看来写这个问题的人很困惑,不知道他们问的是样本平均置信区间问题“95% 置信度”还是简单的总体正态分布问题。
让我们尝试合理化我们如何解决这个问题,我们会发现这个问题的措辞有一些问题:
他说他有 95% 的信心......[暂时忽略其他所有内容并假设这是均值问题的置信区间......我们将看到为什么这是错误的]......首先让我们计算正态分布 table 上的 z 分数,它对应于 0.95% 的累积概率。你说你想在 R 中做这个,所以使用 qnorm()
> qnorm(.95)
[1] 1.644854
现在我们知道节省的钱在:26 美元到 38 美元之间。如果他的 95% 置信度暗示这是一个样本均值,我们现在知道的 26 美元比样本均值低 1.644854 个标准误差,而我们现在知道的 38 美元比样本均值的估计均值高 1.644854 个标准误差...(如果这是一个置信度区间问题)。他们的样本平均值大概是 32 美元。
假设我们尝试解决 st dev。标准错误是:
StDev / sqrt(样本大小)
置信区间为:.
下限:32 - 1.644854 * StDev / sqrt(样本大小);
上限:32 + 1.644854 * StDev / sqrt(sample size) # 我们将在下面使用它
我们可以尝试通过将上限公式放在 = 符号的左侧并将上限公式 38 放在右侧来尝试代数求解 StDev:
32 + (1.644854 * StDev / sqrt(sample size)) = $38 ...现在求解 StDev
StDev = (sqrt(sample size)* (38-32))/1.644854) ...如果我没有在没有纸的情况下在午夜搞砸我的心算...
这里有一个问题,这个修辞练习是为了指出:我们仍然有 2 个变量。您发布的问题根本没有告诉我们足够的信息来解决这个问题,假设这是样本的置信区间。如果这是他们的目标,我们就有点不走运了。
看起来 95% 的置信度条款(并且没有提及样本均值)是为了让你失望,但实际上,它只是让问你这个问题的人看起来对他们问你什么问题。
如果你 re-frame 这个问题并假设 1. 95% 置信度子句是垃圾信息 2. 我们谈论的是给定观察值落在或低于给定值的个体概率,而不是我们对平均观察有 95% 的置信度,并且 3. 写问题的人不理解短语 95% 置信度的正确用法,或者当他们写它时已经筋疲力尽……或者你 mis-transcribed 问题。 .. 那么问题应该这样表述:“我们知道,在所有情况下,95% 的客户节省的费用不超过 38 美元,而 5% 的客户节省的费用为 26 美元或更少。”在这种情况下,我们可以完全放弃标准误差项,然后我们只需要担心总体的标准差和均值:
人口均值为 32
均值 + 1.644854 标准差为 38(95% 的客户节省的钱不超过这个)
38 - 32 = 6(这等于 1.644854 StDev):代数上是这样写的:
6 = 1.644854 * 标准偏差
两边除以 1.644854:
6/1.644854 = 标准差
标准差 = 3.64774
让我们验证一下我们做对了:
> qnorm(.95,mean=32,sd=3.64774) # Verify in R that the stdev we calculated is correct: .95 cumulative probability, mean is 32 and we assert that the StDev is 3.64774. We got:
[1] 38
38 美元或更少是 95% 的人会得到的。这似乎是正确的。
> qnorm(.05,mean=32,sd=3.64774)
[1] 26
26 或更少是储蓄最少的 5% 的客户得到的。这个好像也对。
总结:
- 您发布的问题没有任何意义。要么不完整mis-transcribed,要么写的人好像有点糊涂
- 如果您忽略 95% 置信度子句并重新设计问题以进行猜测以弥补其模糊性,则答案为:标准差为 3.6。
我将此代码用于下限 =2 和上限 =3,并且对于较低的限制值它工作正常,但它不适用于较大的数字,除非我将 0.5 添加到 sd
> f <- function(lwr, upr){
> c("mean"= (upr+lwr)/2,
> "stddev" = (upr-lwr)/4,
> "sdRound" =round((upr-lwr)/4,1)) }
> f(2,3)
有了这个,我得到的答案是:
mean stddev sdRound
2.50 0.25 0.20
我不能在 R 中使用四舍五入的值。正确答案是 0.3,因为四舍五入为 0.3 时 0.25。
当我在下面插入这个 sd=0.3 时,我得到了正确的上限(以及下限)
> upperlimit = round(qnorm(0.95, mean=2.5, sd=0.3),0)
> lowerlimit = round(qnorm(0.05, mean=2.5, sd=0.3))
上限=3
下限=2
这也适用于 f(6,9)
根据正态分布的经验法则:
68% 的数据在一个标准差内,95% 在两个标准差内,99.7% 在三个标准差内。
正如数据所说的 95% 置信度,数据将落在 2 个标准差范围内。
所以,min_value:26=mean-2standard_deviation
或者,max_value:38=平均值+2standard_deviation
给定,均值=32,求解以上两个方程之一,standard_deviation=3.0
使用 R 脚本解决以下问题:
一位过程控制专家表示,他有 95% 的信心认为新的生产过程每单位将节省 26 到 38 美元,更有可能节省大约 32 美元。
如果您要使用正态分布(通过应用经验规则)为这位专家的意见建模,您将对正态分布使用什么标准差? (将您的答案四舍五入到小数点后一位。
看来写这个问题的人很困惑,不知道他们问的是样本平均置信区间问题“95% 置信度”还是简单的总体正态分布问题。
让我们尝试合理化我们如何解决这个问题,我们会发现这个问题的措辞有一些问题:
他说他有 95% 的信心......[暂时忽略其他所有内容并假设这是均值问题的置信区间......我们将看到为什么这是错误的]......首先让我们计算正态分布 table 上的 z 分数,它对应于 0.95% 的累积概率。你说你想在 R 中做这个,所以使用 qnorm()
> qnorm(.95)
[1] 1.644854
现在我们知道节省的钱在:26 美元到 38 美元之间。如果他的 95% 置信度暗示这是一个样本均值,我们现在知道的 26 美元比样本均值低 1.644854 个标准误差,而我们现在知道的 38 美元比样本均值的估计均值高 1.644854 个标准误差...(如果这是一个置信度区间问题)。他们的样本平均值大概是 32 美元。
假设我们尝试解决 st dev。标准错误是:
StDev / sqrt(样本大小) 置信区间为:.
下限:32 - 1.644854 * StDev / sqrt(样本大小);
上限:32 + 1.644854 * StDev / sqrt(sample size) # 我们将在下面使用它
我们可以尝试通过将上限公式放在 = 符号的左侧并将上限公式 38 放在右侧来尝试代数求解 StDev:
32 + (1.644854 * StDev / sqrt(sample size)) = $38 ...现在求解 StDev
StDev = (sqrt(sample size)* (38-32))/1.644854) ...如果我没有在没有纸的情况下在午夜搞砸我的心算...
这里有一个问题,这个修辞练习是为了指出:我们仍然有 2 个变量。您发布的问题根本没有告诉我们足够的信息来解决这个问题,假设这是样本的置信区间。如果这是他们的目标,我们就有点不走运了。
看起来 95% 的置信度条款(并且没有提及样本均值)是为了让你失望,但实际上,它只是让问你这个问题的人看起来对他们问你什么问题。
如果你 re-frame 这个问题并假设 1. 95% 置信度子句是垃圾信息 2. 我们谈论的是给定观察值落在或低于给定值的个体概率,而不是我们对平均观察有 95% 的置信度,并且 3. 写问题的人不理解短语 95% 置信度的正确用法,或者当他们写它时已经筋疲力尽……或者你 mis-transcribed 问题。 .. 那么问题应该这样表述:“我们知道,在所有情况下,95% 的客户节省的费用不超过 38 美元,而 5% 的客户节省的费用为 26 美元或更少。”在这种情况下,我们可以完全放弃标准误差项,然后我们只需要担心总体的标准差和均值:
人口均值为 32
均值 + 1.644854 标准差为 38(95% 的客户节省的钱不超过这个)
38 - 32 = 6(这等于 1.644854 StDev):代数上是这样写的:
6 = 1.644854 * 标准偏差
两边除以 1.644854:
6/1.644854 = 标准差
标准差 = 3.64774
让我们验证一下我们做对了:
> qnorm(.95,mean=32,sd=3.64774) # Verify in R that the stdev we calculated is correct: .95 cumulative probability, mean is 32 and we assert that the StDev is 3.64774. We got:
[1] 38
38 美元或更少是 95% 的人会得到的。这似乎是正确的。
> qnorm(.05,mean=32,sd=3.64774)
[1] 26
26 或更少是储蓄最少的 5% 的客户得到的。这个好像也对。
总结:
- 您发布的问题没有任何意义。要么不完整mis-transcribed,要么写的人好像有点糊涂
- 如果您忽略 95% 置信度子句并重新设计问题以进行猜测以弥补其模糊性,则答案为:标准差为 3.6。
我将此代码用于下限 =2 和上限 =3,并且对于较低的限制值它工作正常,但它不适用于较大的数字,除非我将 0.5 添加到 sd
> f <- function(lwr, upr){
> c("mean"= (upr+lwr)/2,
> "stddev" = (upr-lwr)/4,
> "sdRound" =round((upr-lwr)/4,1)) }
> f(2,3)
有了这个,我得到的答案是:
mean stddev sdRound
2.50 0.25 0.20
我不能在 R 中使用四舍五入的值。正确答案是 0.3,因为四舍五入为 0.3 时 0.25。 当我在下面插入这个 sd=0.3 时,我得到了正确的上限(以及下限)
> upperlimit = round(qnorm(0.95, mean=2.5, sd=0.3),0)
> lowerlimit = round(qnorm(0.05, mean=2.5, sd=0.3))
上限=3 下限=2
这也适用于 f(6,9)
根据正态分布的经验法则:
68% 的数据在一个标准差内,95% 在两个标准差内,99.7% 在三个标准差内。
正如数据所说的 95% 置信度,数据将落在 2 个标准差范围内。
所以,min_value:26=mean-2standard_deviation 或者,max_value:38=平均值+2standard_deviation
给定,均值=32,求解以上两个方程之一,standard_deviation=3.0