stats.ttest_ind:提取df值

1 投票
1 回答
27 浏览
提问于 2025-04-14 16:55

我正在使用 stats.ttest_ind:

a = list(range(0, 10))
b = list(range(20, 40, 2))
out = stats.ttest_ind(a, b)
print(out)

#Output
TtestResult(statistic=-11.443934479174386, pvalue=1.0790209865144616e-09, df=18.0)

我可以通过 out[0]out[1] 来提取统计值和 p 值,但当我尝试用 out[2] 提取自由度(df)时,出现了以下错误:

IndexError: tuple index out of range.

out[-1] 也无法使用。

我还尝试了以下代码:

t_stat, pvalue, df = stats.ttest_ind(a,b)

但这导致了以下错误:ValueError: not enough values to unpack (expected 3, got 2)

看起来当我尝试提取自由度时,out 中并没有这个值。out 的长度是 2,我只能获取前两个元素。有没有人知道这是怎么回事,或者我该如何解决这个问题?

1 个回答

1

out 是一个 scipy.stats._stats_py.TtestResult 对象。

你可以通过以下方式获取自由度:

out.df
#18.0

如果你这样做:

list(out)

你会得到:

[-11.443934479174386, 1.0790209865144618e-09]

所以,out[2]out[-1] 不会返回自由度。

撰写回答