Я учусь использовать Python для моих статистических анализов, и, выясняя, как выполнить двухстороннюю ANOVA с statsmodels, я обнаружил, что мой код Python дает немного аберрантные значения.Сравнивая выходные данные, вы можете увидеть, что значения SS_Factor_1 и Скорректированный R2 отличаются для Python по сравнению с SPSS / Graphpad.Более того, хотя SPSS и Graphpad вычисляют сумму квадратов типа III, вывод statsmodel ANOVA при typ = 3 является наиболее аберрантным, тогда как typ = 1 или 2 гораздо ближе.Почему они не согласны?И почему typ = 3 самый разный?
Мой вопрос очень похож на этот , который остался без ответа.Моя репутация также слишком низкая, чтобы комментировать этот вопрос.
Тип II Сумма квадратов Код Python:
formula = 'dependent_variable ~ C(factor_1) * C(factor_2)'
model = ols(formula, data=df_freq_time).fit()
aov_table = anova_lm(model, typ=2)
aov_table
Вывод Python:
Тип III Сумма квадратов Код Python:
formula = 'dependent_variable ~ C(factor_1) * C(factor_2)'
model = ols(formula, data=df_freq_time).fit()
aov_table = anova_lm(model, typ=3)
aov_table
Выход Python:
Также R2 = 0,722 и прил. R2 = 0,694 для вышеуказанных ANOVA.
Результаты двухстороннего ANOVA SPSS:
Результаты двухстороннего ANOVA Graphpad Prism: