如何使用 norm.ppf()?

新手上路,请多包涵

我不明白如何正确使用此功能,有人可以向我解释一下吗?

假设我有:

  • 平均值为 172.7815
  • 标准偏差为 4.1532
  • N = 50(50 个样本)

当我被要求使用 norm.ppf() 计算 (95%) 误差范围时,代码是否如下所示?

 norm.ppf(0.95, loc=172.78, scale=4.15)

还是看起来像这样?

 norm.ppf(0.95, loc=0, scale=1)

因为我知道它是在计算置信区间右侧的曲线面积(95%、97.5% 等……见下图),但是当我有均值和标准差时,我真的很困惑如何使用该功能。

在此处输入图像描述

原文由 FateCoreUloom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
1 个回答

该方法 norm.ppf() 取一个百分比并返回该百分比出现的值的标准偏差乘数。

它相当于密度图上的“单尾测试”。

来自 scipy.stats.norm:

ppf(q, loc=0, scale=1) 百分比点函数(cdf 的倒数——百分位数)。

标准正态分布

编码:

 norm.ppf(0.95, loc=0, scale=1)

返回 标准正态分布 单尾检验 的 95% 显着性区间(即均值为 0 且标准差为 1 的正态分布的特例)。

我们的榜样

要计算我们 95% 显着性区间所在的 OP 提供的示例的值(对于 _单尾测试_),我们将使用:

 norm.ppf(0.95, loc=172.7815, scale=4.1532)

这将返回 一个值(用作 “标准偏差乘数” ),标记如果我们的数据是正态分布,95% 的数据点将包含在何处。

为了获得准确的数字,我们采用 norm.ppf() 输出并将其乘以我们的标准偏差以获取相关分布。

双尾测试

如果我们需要计算“双尾测试”(即我们关注大于 小于平均值的值),那么我们需要拆分显着性(即我们的 alpha 值) _,因为我们仍在使用计算方法对于单尾_。分成两半象征着被分配给两条尾巴的显着性水平。 95% 的显着性水平具有 5% 的 alpha;将 5% 的 alpha 拆分为两条尾巴,返回 2.5%。从 100% 中取 2.5% 返回 97.5% 作为显着性水平的输入。

因此,如果我们关注均值两侧的值,我们的代码将输入 .975 以表示跨双尾的 95% 显着性水平:

 norm.ppf(0.975, loc=172.7815, scale=4.1532)

误差范围

误差幅度是在使用样本统计数据估计总体参数时使用的显着性水平。我们希望使用 norm.ppf() 的双尾输入 生成我们的 95% 置信区间,因为我们关心大于和小于我们的平均值的值:

 ppf = norm.ppf(0.975, loc=172.7815, scale=4.1532)

接下来,我们将获取 ppf 并将其乘以我们的标准偏差以返回区间值:

 interval_value = std * ppf

最后,我们通过从均值中加上和减去区间值来标记置信区间:

 lower_95 = mean - interval_value
upper_95 = mean + interval_value

用垂直线绘制:

 _ = plt.axvline(lower_95, color='r', linestyle=':')
_ = plt.axvline(upper_95, color='r', linestyle=':')

原文由 jameshollisandrew 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题