我有一个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.interval从scipy.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)).
问题是:哪个版本是正确的?