web-dev-qa-db-ja.com

Pythonのt検定の信頼区間(平均の差)

Python)でt検定の信頼区間を取得するための簡単な方法を探しています。

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

でる:

    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 

次:

>> print(c(t_res$conf.int[1], t_res$conf.int[2]))
[1] -2.539749 17.355816

仮説検定における有意区間の重要性(および最近p値のみを報告する慣行がどれほど批判されたか)を考えると、統計モデルまたはscipyのどちらにも似たようなものは実際にはありません。

19
Anarcho-Chossid

ここでは、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')

出力は

(-10.414599391793885, -5.5854006082061138)

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 
25
Ulrich Stern