计算python中均值的95%置信区间

时间:2015-07-23 13:47:54

标签: statistics

我需要的帮助不大。如果我有30个随机样本,平均值为52,方差为30,那么我如何计算平均值的95%置信区间,估计和真实方差为30。

1 个答案:

答案 0 :(得分:0)

在这里,您可以结合使用numpystatsmodels的功能来开始学习:

要生成均值为52且方差为30的正态分布浮点,可以将numpy.random.normalnumbers = np.random.normal(loc=52, scale=30, size=30)一起使用,其中参数为:

Parameters
----------
loc : float
    Mean ("centre") of the distribution.
scale : float
    Standard deviation (spread or "width") of the distribution.
size : int or tuple of ints, optional
    Output shape.  If the given shape is, e.g., ``(m, n, k)``, then
    ``m * n * k`` samples are drawn.  Default is None, in which case a
    single value is returned.

这是使用DescrStatsW.tconfint_mean的平均值的95%置信区间:

import statsmodels.stats.api as sms
conf = sms.DescrStatsW(numbers).tconfint_mean()
conf

# output
# (36.27, 56.43)

编辑-1

但是,这还不是全部。。。根据样本量,您应该使用Z得分而不是sms.DescrStatsW(numbers).tconfint_mean()所使用的t得分。而且我感到,经验法则阈值为30,并且您的问题中有30个观察值并非巧合。 Z vs t还取决于您是否知道总体标准偏差,还是必须依靠样本的估计值。而且这些计算方式也不同。看一下here。如果您希望我对此进行解释和进一步说明,那么我很乐意在周末再进行研究。