【问题标题】:stats.f_oneway Scipy Anova returns 2 arrays with 4 valuesstats.f_oneway Scipy Anova 返回 2 个具有 4 个值的数组
【发布时间】:2019-11-26 21:54:42
【问题描述】:

尝试对大致如下所示的数据运行一种方法 Anova:

Year   | Diversity  |
2010   |   6        |
2010   |   8        |
...    |   ...      |
2011   |   10       |
...    |   ...      |
2019   |   7        |

有1827行,每年范围内各个点的多样性值。我正在逐年比较差异。当我这样做时

F, p = stats.f_oneway(df.loc[df["Year"] == 2010],
               df.loc[df["Year"] == 2011],
               df.loc[df["Year"] == 2012])

(这里我省略了其余的组,因为这非常难看,但我不知道如何通过不同的组进行 Anova 测试)。我得到一个数组,每个 F 和 p 有 2 个值:

F: type float64, size (2,),
-2.588805281700000000e+11, 4.908743340532151223e+00
p: type float64, size (2,),
nan, 0.00774507

根据我的阅读,我找不到任何人得到 2 个数组,应该只有一个 F 值和一个 P 值,我做错了什么? (df 中没有零或 NAN)。

当我这样做时:

mod = ols('Diversity ~ (Year)', data = df).fit()
mod.summary()

我得到一个普通的汇总表,F = 1.462,p = 0.227(与我上面的尝试不同)。

任何关于我的烂摊子的想法将不胜感激......

【问题讨论】:

    标签: python pandas scipy statistics anova


    【解决方案1】:

    您的 DataFrame 有 2 列,即使在切片之后也是如此,因此您返回 2 个 p 值和 2 个 F 值,一个用于跨样本比较每一列。您应该将每个选择更改为仅包含 'Diversity' 列,例如:

    df.loc[df['Year'] == 2010, 'Diversity']
    

    如果您只想对样本中所有年份的多样性进行方差分析,您可以通过以下方式紧凑地执行此操作:

    stats.f_oneway(*[s for idx, s in df.groupby('Year').Diversity])
    

    MCVE

    import pandas as pd
    import numpy as np
    from scipy import stats
    
    l = [pd.DataFrame(np.random.randint(1, 10, (50, 4))) for i in range(7)]
                                                  # |
                                                  # 4 cols, should get 4 p-vals/F-vals
    
    stats.f_oneway(*l)
    #F_onewayResult(statistic=array([0.70527759, 0.2291319 , 0.03545031, 0.02568242]), 
    #                  pvalue=array([0.49563511, 0.79550711, 0.96517894, 0.97464894]))
                                   #    col1         col2        col3       col4
    

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2019-09-19
      • 2016-10-02
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 2022-09-19
      • 1970-01-01
      相关资源
      最近更新 更多