Python – 统计中的 68-95-99.7 规则
经验法则(也称为68-95-99.7 法则或三西格玛法则)指出,对于任何正态分布,我们都有以下观察结果:
- 68% 的观测值介于平均值的 1 个标准差之间:
- 95% 的观测值位于平均值周围的 2 个标准差之间:
- 99.7% 的观测值位于平均值附近的 3 个标准差之间:
下面是一个标准正态分布图(均值 = 0和标准差 = 1 ),说明了经验法则。
我们可以使用 Python 的SciPy模块提供的函数来验证这一点。
我们可以使用scipy.stats.norm模块的cdf()函数来计算累积概率(分布曲线下的面积)。
Syntax : cdf(x, mean, SD)
Parameters :
- x : value up to which cumulative probability is to be calculated
- mean : mean of the distribution
- SD : standard deviation of the distribution
下面是实现:
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
# setting the values of
# mean and S.D.
mean = 0
SD = 1
# value of cdf between one, two
# and three S.D. around the mean
one_sd = norm.cdf(SD, mean, SD) - norm.cdf(-SD, mean, SD)
two_sd = norm.cdf(2 * SD, mean, SD) - norm.cdf(-2 * SD, mean, SD)
three_sd = norm.cdf(3 * SD, mean, SD) - norm.cdf(-3 * SD, mean, SD)
# printing the value of fractions
# within each band
print("Fraction of values within one SD =", one_sd)
print("Fraction of values within two SD =", two_sd)
print("Fraction of values within three SD =", three_sd)
输出 :
Fraction of values within one SD = 0.6826894921370859
Fraction of values within two SD = 0.9544997361036416
Fraction of values within three SD = 0.9973002039367398
因此,我们看到值的分数几乎等于0.65 、 0.95和0.997 。因此,经验法则得到验证。