相关疑难解决方法(0)

用scipy获得置信区间的正确方法

我有一个1维数据数组:

a = np.array([1,2,3,4,4,4,5,5,5,5,4,4,4,6,7,8])
Run Code Online (Sandbox Code Playgroud)

我希望获得68%置信区间(即:1西格玛).

在第一个评论这个回答指出,这可以实现使用scipy.stats.norm.intervalscipy.stats.norm功能,通过:

from scipy import stats
import numpy as np
mean, sigma = np.mean(a), np.std(a)

conf_int = stats.norm.interval(0.68, loc=mean, 
    scale=sigma)
Run Code Online (Sandbox Code Playgroud)

但是这篇文章中的评论指出,获得置信区间的实际正确方法是:

conf_int = stats.norm.interval(0.68, loc=mean, 
    scale=sigma / np.sqrt(len(a)))
Run Code Online (Sandbox Code Playgroud)

也就是说,sigma除以样本大小的平方根:np.sqrt(len(a)).

问题是:哪个版本是正确的?

python numpy scipy confidence-interval

33
推荐指数
3
解决办法
5万
查看次数

标签 统计

confidence-interval ×1

numpy ×1

python ×1

scipy ×1