You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scipy stats.ttest_ind无法获取自由度:文档与实际存在差异?

独立样本t检验(ttest_ind)提取自由度的问题

我在使用Scipy的stats模块中的ttest_ind函数时,想要提取独立样本t检验的自由度信息。根据SciPy v1.11.4官方文档,该函数会返回三个值:

  • statistic:t统计量
  • pvalue:对应备择假设的p值
  • df:计算t统计量时使用的自由度

但运行以下代码时出现错误:

from scipy.stats import ttest_ind

# 两组示例数据
group1 = [25, 30, 22, 28, 32]
group2 = [18, 24, 20, 26, 19]

t_statistic, p_value, degrees_of_freedom = ttest_ind(group1, group2, permutations=None)

报错信息:

ValueError: not enough values to unpack (expected 3, got 2)


问题原因与解决方法

不是文档错误,问题出在参数设置上:
ttest_ind函数默认不返回自由度,需要显式设置return_df=True参数,才能获取包含自由度的三元组。修改后的代码如下:

from scipy.stats import ttest_ind

group1 = [25, 30, 22, 28, 32]
group2 = [18, 24, 20, 26, 19]

# 添加return_df=True参数
t_statistic, p_value, degrees_of_freedom = ttest_ind(group1, group2, permutations=None, return_df=True)

print(f"自由度: {degrees_of_freedom}")

另外,如果你使用的是SciPy 1.7.0及以上版本,也可以通过设置result=True让函数返回一个TtestResult对象,直接从中提取自由度:

result = ttest_ind(group1, group2, permutations=None, result=True)
print(f"自由度: {result.df}")

内容的提问来源于stack exchange,提问作者luifrancgom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:18:11