如何在python中计算累积正态分布?

时间:2019-11-23 22:13:08

标签: python normal-distribution

我目前正在使用Excel通过以下方式计算累积正态分布

x = 0
mean = 0.03
standard deviation = 0.055

然后我使用公式

=1-NORMDIST(0,0.03,0.055,TRUE)

这将产生0.7的输出,这正是我想要的。

如何在python上获得相同的结果?

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用scipy.stats.norm

from scipy.stats import norm
print(sf(x=0, loc=0.03, scale=0.055))
Out[10]: 0.7072795327155363

答案 1 :(得分:0)

如果您可以使用scipy,则可以执行以下操作:

from scipy import stats
stats.norm.cdf(0)
0.5  

,但是看起来您想要的实际上是上尾概率,在scipy.stats中简称为sf的生存函数。

stats.norm.sf(0, 0.03, 0.055)
0.7072795327155363

应该给您您想要的。 scipy包中有许多连续且离散的分布。这些文档也可以在线阅读:

https://docs.scipy.org/doc/scipy-0.16.1/reference/stats.html

支持其他分布函数,也支持其他常见的分布计算,例如随机抽样,均值,质量/密度函数等。

如果您愿意,可以直接通过以下方式进行计算:

>>> 1-stats.norm.cdf(0, 0.03, 0.055)
0.7072795327155363