从平均值和标准差计算 Z 分数

Posted

技术标签:

【中文标题】从平均值和标准差计算 Z 分数【英文标题】:Z-score calculation from mean and st dev 【发布时间】:2018-07-20 04:49:53 【问题描述】:

如果我已经知道临界值、均值和 st dev,我想问一下是否有任何流行的软件包,例如:numpy、scipy 等具有计算 Z-Score 的内置函数。

我通常这样做:

def Zscore(xcritical, mean, stdev):
    return (xcritical - mean)/stdev

#example:
xcritical = 73.06
mean = 72
stdev = 0.5

zscore = Zscore(xcritical, mean, stdev)

后来我使用scipy.stats.norm.cdf 来计算 x 低于 xcritical 的概率。

import scipy.stats as st
print(st.norm.cdf(zscore))

我想知道我是否可以以某种方式简化它。我知道有 scipy.stats.zscore 函数,但它需要一个样本数组而不是样本统计信息。

【问题讨论】:

【参考方案1】:

已知电池的寿命(以小时为单位)大致呈正态分布,标准偏差 σ = 1.25 小时。 10 节电池的随机样本的平均寿命为 x = 40.5 小时。 一种。是否有证据支持电池寿命的说法 超过40小时?使用 α = 0.5。

norm.sf,因为我想知道钟形曲线的右侧是否超过了alpha来回答。

norm.sf(40.5, loc=40, scale=1.25/np.sqrt(10)) #recall the z score formula

p 值 = 0.102

何:u=40;哈:u>40

因此 p 值大于 alpha,因此我们无法拒绝原假设并得出结论,确实有证据支持电池寿命超过 40 小时。 P 值 0.10 > 0.05 alpha

【讨论】:

【参考方案2】:

Python 3.9 开始,标准库在NormalDist 对象上提供zscore 函数作为statistics 模块的一部分:

NormalDist(mu=72, sigma=.5).zscore(73.06)
# 2.1200000000000045

【讨论】:

【参考方案3】:

只需一行即可完成;像这样:

>>> import scipy.stats as st
>>> st.norm(mean, stdev).cdf(xcritical))

【讨论】:

【参考方案4】:

在您的问题中,我不确定您计算“x”低于“xcritical”的概率是什么意思,因为您没有定义“x”。无论如何,我将回答如何计算 'x' 值的 z-score。

按照 scipy.stats.norm 文档 here,似乎没有内置方法来计算值的 z 分数(在您的情况下为“xcritical”) ,给定平均值和标准差。但是,您可以使用内置方法 cdfppf 进行计算。考虑以下 sn-p(这些值与您在帖子中使用的值相同,其中 'xcritical' 是您希望计算 z-score 的值):

xcritical = 73.06
mean = 72
stdev = 0.5

p = norm.cdf(x=xcritical,loc=mean,scale=stdev)
z_score = norm.ppf(p)
print('The z-score for  corresonding to  mean and  std deviation is: :.3f'.format(xcritical,mean,stdev,z_score))

在这里,我们首先使用 norm.cdf() 计算在给定 'mean' 和 'stdev' 的情况下获得 'xcritical' 值的累积概率 'p'。 norm.cdf() 计算正态分布曲线下从负无穷到“x”值(在本例中为“xritical”)的面积百分比。然后,我们将这个概率传递给 norm.ppf() 以获得对应于那个 'x' 值的 z 分数。 norm.ppf() 是百分比点函数,它产生对应于标准正态分布曲线中通过的较低尾部概率的 (z) 值。此代码的输出 2.12 与您将从函数 Zscore() 获得的输出相同。

希望有帮助!

【讨论】:

以上是关于从平均值和标准差计算 Z 分数的主要内容,如果未能解决你的问题,请参考以下文章

Z-分数(Z-score)是

Z-Score

什么是Z-score?都有哪些使用场景?

统计中的Z-score是啥意思

数据清洗 | 通过 Z-Score 方法判断异常值

Z-score和T-score的区别