跨熊猫列的子集重复ANOVA

时间:2018-11-29 18:59:50

标签: python pandas function anova

import numpy as np
import random

df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
df['group'] = pd.cut(df['A'], 3)

我想运行一系列方差分析,使用“组”作为分类变量,并循环遍历“ ABCD”。 (因此共有4个方差分析)。

我已经为方差分析构建了一个函数:

def anovas(Group, Metric, Data):
    formula = Metric + "~" + Group
    mod = ols(formula, data=Data).fit()
    aov_table = sm.stats.anova_lm(mod, typ=2)
    mc = MultiComparison(Data[Metric], Data[Group])
    result = mc.tukeyhsd()
    df = pd.DataFrame(data=result._results_table.data[1:], 
columns=result._results_table.data[0])
    return(df, aov_table)

我想将此功能应用于每个列(又称“度量”),同时保持组相同。

从理论上讲,应该是这样的:

df.apply(anovas('group',column,df))

但是这不起作用,我不确定为什么。有人在这里有什么建议吗?谢谢!

0 个答案:

没有答案