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))
但是这不起作用,我不确定为什么。有人在这里有什么建议吗?谢谢!