[英]Confidence Interval for t-test (difference between means) in Python
I am looking for a quick way to get the t-test confidence interval in Python for the difference between means.我正在寻找一种快速方法来获取 Python 中的 t 检验置信区间,以了解均值之间的差异。 Similar to this in R:
在 R 中与此类似:
X1 <- rnorm(n = 10, mean = 50, sd = 10)
X2 <- rnorm(n = 200, mean = 35, sd = 14)
# the scenario is similar to my data
t_res <- t.test(X1, X2, alternative = 'two.sided', var.equal = FALSE)
t_res
Out:出去:
Welch Two Sample t-test
data: X1 and X2
t = 1.6585, df = 10.036, p-value = 0.1281
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-2.539749 17.355816
sample estimates:
mean of x mean of y
43.20514 35.79711
Next:下一个:
>> print(c(t_res$conf.int[1], t_res$conf.int[2]))
[1] -2.539749 17.355816
I am not really finding anything similar in either statsmodels or scipy, which is strange, considering the importance of significance intervals in hypothesis testing (and how much criticism the practice of reporting only the p-values recently got).我在 statsmodels 或 scipy 中都没有发现任何类似的东西,这很奇怪,考虑到假设检验中显着性区间的重要性(以及最近只报告 p 值的做法受到了多少批评)。
Here how to use StatsModels' CompareMeans
to calculate the confidence interval for the difference between means: 这里如何使用StatsModels的
CompareMeans
计算置信区间的差异意味着:
import numpy as np, statsmodels.stats.api as sms
X1, X2 = np.arange(10,21), np.arange(20,26.5,.5)
cm = sms.CompareMeans(sms.DescrStatsW(X1), sms.DescrStatsW(X2))
print cm.tconfint_diff(usevar='unequal')
Output is 输出是
(-10.414599391793885, -5.5854006082061138)
and matches R: 并匹配R:
> X1 <- seq(10,20)
> X2 <- seq(20,26,.5)
> t.test(X1, X2)
Welch Two Sample t-test
data: X1 and X2
t = -7.0391, df = 15.58, p-value = 3.247e-06
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-10.414599 -5.585401
sample estimates:
mean of x mean of y
15 23
An alternate answer using pingouin
(basically copied code from here and adapted to use Ulrich Stern 's variables)使用
pingouin
的替代答案(基本上从这里复制代码并适应使用Ulrich Stern的变量)
import pingouin as pg
x1, x2 = np.arange(10,21), np.arange(20,26.5,.5)
res = pg.ttest(x1, x2, paired=False)
print(res)
prints印刷
T dof tail p-val CI95% cohen-d BF10 power
T-test -7.039 15.58 two-sided 0.000003 [-10.41, -5.59] 3.009 2.251e+04 1.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.