stats.ttest_ind:提取df值
我正在使用 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]
不会返回自由度。