在Python中执行t检验并包含差异的置信区间最简单的方法是什么?我看过各种帖子,但每个帖子都不同,当我试图自己计算置信区间时,似乎有点错误...这里:
import numpy as np
from scipy import stats
g1 = np.array([48.7107107,
36.8587287,
67.7129929,
39.5538852,
35.8622661])
g2 = np.array([62.4993857,
49.7434833,
67.7516511,
54.3585559,
71.0933957])
m1, m2 = np.mean(g1), np.mean(g2)
dof = (len(g1)-1) + (len(g2)-1)
MSE = (np.var(g1) + np.var(g2)) / 2
stderr_diffs = np.sqrt((2 * MSE)/len(g1))
tcl = stats.t.ppf([.975], dof)
lower_limit = (m1-m2) - (tcl) * (stderr_diffs)
upper_limit = (m1-m2) + (tcl) * (stderr_diffs)
print(lower_limit, upper_limit)
返回值:
[-30.12845447] [-0.57070077]
然而,当我在SPSS运行相同的测试时,虽然我有相同的t和p值,但置信区间为-31.87286,1.17371,并且在R中也是如此。我似乎找不到正确的方法来解决这个问题,希望能得到一些帮助。
import warnings
和warnings.simplefilter(action='ignore', category=FutureWarning)
(注意:未经测试,所以我可能语法有误,但“python suppress futurewarning”或类似的搜索应该能找到正确的方法)。 - DSM