📜  如何在Python给定均值和标准差的正态分布中计算概率?(1)

📅  最后修改于: 2023-12-03 15:24:36.182000             🧑  作者: Mango

如何在Python给定均值和标准差的正态分布中计算概率?

正态分布(Normal Distribution)也称为高斯分布(Gaussian Distribution),是一种常见的概率分布,具有单峰、对称和钟形的特征。正态分布可以用两个参数来完全描述,即均值和标准差。

在Python中,可以使用SciPy库中的norm模块来计算给定均值和标准差的正态分布中的概率。下面是一些可用的函数:

  • pdf(x, loc=0, scale=1) :概率密度函数(probability density function),表示在给定的均值和标准差下,x的概率密度。loc表示分布的均值,scale表示标准差。返回值是密度函数的值。
  • cdf(x, loc=0, scale=1) :累积分布函数(cumulative distribution function),表示在给定的均值和标准差下,小于等于x的概率。loc表示分布的均值,scale表示标准差。返回值是概率值。
  • ppf(q, loc=0, scale=1) :percent point function,表示在给定的均值和标准差下,使得分布小于等于x的概率等于输入的概率q的值。loc表示分布的均值,scale表示标准差。返回值是分布的x值。
  • interval(alpha, loc=0, scale=1) :计算给定均值和标准差下的置信区间。alpha表示置信水平,loc表示分布的均值,scale表示标准差。返回值是一个元组,它包含了置信区间的下限和上限值。

下面是使用norm模块来计算正态分布中概率的示例代码:

from scipy.stats import norm

# 设定均值和标准差
mu, std = 0, 1

# 计算在1.5以下和1.5以上的概率
p_below = norm.cdf(1.5, loc=mu, scale=std)
p_above = 1 - p_below
print("在均值和标准差为(0, 1)的正态分布中,")
print("小于等于1.5的概率为:{:.2f}%,".format(p_below*100))
print("大于1.5的概率为:{:.2f}%。".format(p_above*100))

输出结果如下:

在均值和标准差为(0, 1)的正态分布中,
小于等于1.5的概率为:93.32%,
大于1.5的概率为:6.68%。

参考文献:

  1. scipy.stats.norm
  2. 正态分布 - 维基百科,自由的百科全书