scipy.stats.

bayes_mvs#

scipy.stats.bayes_mvs(data, alpha=0.9)[源代码]#

均值、方差和标准差的贝叶斯置信区间。

参数:
dataarray_like

输入数据,如果是多维的,则通过 bayes_mvs 展平为 1-D。需要 2 个或更多数据点。

alphafloat,可选

返回的置信区间包含真实参数的概率。

返回:
mean_cntr, var_cntr, std_cntrtuple

三个结果分别对应于均值、方差和标准差。每个结果都是一个元组,形式如下:

(center, (lower, upper))

其中 center 是给定数据的条件下该值的条件 pdf 的均值,(lower, upper) 是一个置信区间,以中位数为中心,包含概率为 alpha 的估计值。

另请参阅

mvsdist

说明

每个均值、方差和标准差估计值的元组表示 (center, (lower, upper)),其中 center 是给定数据的条件下该值的条件 pdf 的均值,(lower, upper) 是一个以中位数为中心的置信区间,包含概率为 alpha 的估计值。

将数据转换为 1-D,并假设所有数据都具有相同的均值和方差。使用杰弗里先验作为方差和标准差。

等效于 tuple((x.mean(), x.interval(alpha)) for x in mvsdist(dat))

参考文献

T.E. Oliphant, “A Bayesian perspective on estimating mean, variance, and standard-deviation from data”, https://scholarsarchive.byu.edu/facpub/278, 2006.

示例

首先是一个基本示例,演示输出

>>> from scipy import stats
>>> data = [6, 9, 12, 7, 8, 8, 13]
>>> mean, var, std = stats.bayes_mvs(data)
>>> mean
Mean(statistic=9.0, minmax=(7.103650222612533, 10.896349777387467))
>>> var
Variance(statistic=10.0, minmax=(3.176724206, 24.45910382))
>>> std
Std_dev(statistic=2.9724954732045084,
        minmax=(1.7823367265645143, 4.945614605014631))

现在我们生成一些正态分布的随机数据,并获得均值和标准差的估计值,以及这些估计值的 95% 置信区间

>>> n_samples = 100000
>>> data = stats.norm.rvs(size=n_samples)
>>> res_mean, res_var, res_std = stats.bayes_mvs(data, alpha=0.95)
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.hist(data, bins=100, density=True, label='Histogram of data')
>>> ax.vlines(res_mean.statistic, 0, 0.5, colors='r', label='Estimated mean')
>>> ax.axvspan(res_mean.minmax[0],res_mean.minmax[1], facecolor='r',
...            alpha=0.2, label=r'Estimated mean (95% limits)')
>>> ax.vlines(res_std.statistic, 0, 0.5, colors='g', label='Estimated scale')
>>> ax.axvspan(res_std.minmax[0],res_std.minmax[1], facecolor='g', alpha=0.2,
...            label=r'Estimated scale (95% limits)')
>>> ax.legend(fontsize=10)
>>> ax.set_xlim([-4, 4])
>>> ax.set_ylim([0, 0.5])
>>> plt.show()
../../_images/scipy-stats-bayes_mvs-1.png