代码之家  ›  专栏  ›  技术社区  ›  MaaikevR

stats.ttest_ind:提取df值

  •  1
  • MaaikevR  · 技术社区  · 2 年前

    我正在使用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)
    
    

    我可以使用提取统计信息和p值 out[0] out[1] ,但当我尝试用提取df时 out[2] ,我得到以下错误:

    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)

    df值似乎不在 out 只要我试图提取它。out的长度为2,我只能得到前两个元素。 有人知道这里发生了什么吗?或者我该如何解决这个问题?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Free Palestine    2 年前

    out scipy.stats._stats_py.TtestResult 对象

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

    out.df
    #18.0
    

    如果您这样做:

    list(out)
    

    您可以:

    [-11.443934479174386, 1.0790209865144618e-09]
    

    所以 out[2] out[-1] 不会给出df。