我不明白如何正确使用这个功能,有人能给我解释一下吗?
假设我有:
- 平均值为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%等......见下图),但当我有一个平均值和一个标准差时,我真的很困惑如何使用该函数。
5条答案
按热度按时间frebpwbc1#
方法
norm.ppf()
接受一个百分比,并返回该百分比值的标准差乘数。它相当于密度图上的“单尾检验”。
来自科学统计规范:
标准正态分布
代码:
返回 * 标准正态分布 * 上 * 单尾检验 * 的95%显著性区间(即正态分布的特殊情况,其中平均值为0,标准差为1)。
我们的示例
为了计算OP提供的示例的值,我们的95%显著性区间位于该值(对于 * 单尾检验 *),我们将用途:
这将返回一个值(用作 “标准差乘数”),如果我们的数据为正态分布,则该值标记95%的数据点所在的位置。
要获得准确的数字,我们将
norm.ppf()
输出乘以所讨论分布的标准差。双尾测试
如果我们需要计算“双尾检验”(即我们关心的值大于 * 和小于 * 的平均值),那么我们需要拆分显著性(即我们的α值)*,因为我们仍然使用单尾 * 的计算方法。拆分为两半表示显著性水平分配给两个尾部。95%的显著性水平具有5%的α值;将5%的alpha值在两个尾部分开,得到2.5%。从100%中取2.5%,得到97.5%作为显著性水平的输入。
因此,如果我们关注的是均值两侧的值,我们的代码将输入.975来表示双尾的95%显著性水平:
误差幅度
误差幅度是使用样本统计量估计总体参数时使用的显著性水平。我们希望使用
norm.ppf()
的双尾输入生成95%置信区间,因为我们关心的是大于和小于平均值的值:接下来,我们将ppf乘以标准差,得到区间值:
最后,我们将通过从平均值中加上或减去区间值来标记置信区间:
使用垂直线绘图:
qmelpv7a2#
James关于
norm.ppf
返回一个“标准差乘数”的说法是错误的。这让人感觉很贴切,因为当人们搜索norm.ppf时,他的帖子是谷歌搜索结果的第一名。'norm.ppf'是'norm.cdf'的反函数。在本例中,它只返回95%百分点处的值。不涉及“标准差乘数”。
这里有一个更好的答案:How to calculate the inverse of the normal cumulative distribution function in python?
h5qlskok3#
你可以直接用
norm.ppf
计算出置信区间,而不需要计算误差幅度4.1532是样本的标准差,不是样本均值的抽样分布的标准差,所以,
scale
中的norm.ppf
将被指定为scale = 4.1532 / np.sqrt(50)
,这是抽样分布的标准差的估计量。(The抽样分布的标准差的值等于
population standard deviation / np.sqrt(sample size)
。这里,我们不知道总体的标准差,并且样本量大于30,所以sample standard deviation / np.sqrt(sample size)
可以作为一个很好的估计量)。误差幅度可以用
(upper_of_interval - lower_of_interval) / 2
计算。h4cxqtbf4#
计算95%百分位数的金额,并绘制一条垂直线和一个带有该金额的注解
fiei3ece5#
正如其他答案所指出的,
norm.ppf(1-alpha)
返回由传递给它的参数所指定的正态分布的(1-alpha)x100
百分位数的值。例如,在OP中,它返回正态分布的第95百分位数,平均值为172.78,标准差为4.15。如果你要找一个函数,它返回的值和
alpha
的函数相同**(正态分布的第N个百分位数),有一个反函数survival function,norm.isf(alpha)
,它告诉你(1-alpha)
在它上面的位置。