我试图找到95%的置信区间的平均值使用给定的数组。问题是,每当我尝试使用stats.t
的区间方法时,它给我的结果与我手工计算的置信区间不同。我是否无意中错误地使用了间隔方法?
我已经附上了我在下面使用的代码。
# find a 95 percent confidence interval for the mean weight of a popcorn bag
data = np.array([91, 101, 98, 98, 103, 97, 102, 105, 94, 90])
sMu = np.mean(data)
sSigma = np.std(data)
sem = stats.sem(data)
n = len(data)
df = n - 1
dist = stats.t(df)
critical_value = dist.ppf(0.975)
print(dist.interval(0.975, loc=sMu, scale=sem))
print(stats.t.interval(0.975, df=9, loc=sMu, scale=sem))
upper = sMu + (sem * critical_value)
lower = sMu - (sem * critical_value)
print('Manually Calculated: ', upper,' ', lower)
字符串
1条答案
按热度按时间lymnna711#
t分布的
ppf
方法(百分点函数)用于查找与给定置信水平对应的临界值。在本例中,您需要找到95%置信区间的临界值,该值对应于t分布中的0.975。使用0.975的原因是临界值与t分布的上尾相关联,您需要找到在尾部留下2.5%概率的值(以获得中间的95%置信区间)。但是,
interval
方法用于直接从分布对象计算置信区间。因此,必须将0.95(而不是0.975)作为第一个参数传递,以获得95%的置信区间。该方法在内部负责查找与给定置信水平相对应的临界值。这样,只需在以下两行中将值0.975替换为0.95:字符串