Повторите ANOVA через подмножество столбцов в пандах - PullRequest
0 голосов
/ 29 ноября 2018
import numpy as np
import random

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

Я хочу запустить серию ANOVA, используя «группу» в качестве моей категориальной переменной и проходя по циклу «ABCD».(итого 4 ANOVAs).

Я построил функцию для своих ANOVA:

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))

, но это не работает, ия не уверен почему.У кого-нибудь есть предложения?Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...