Двухстороннее ANOVA в statsmodels Python дает различную сумму квадратов, чем SPSS - PullRequest
0 голосов
/ 24 сентября 2018

Я учусь использовать 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: output

Тип 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: output

Также R2 = 0,722 и прил. R2 = 0,694 для вышеуказанных ANOVA.

Результаты двухстороннего ANOVA SPSS: SPSS output ANOVA table

Результаты двухстороннего ANOVA Graphpad Prism: Graphpad output ANOVA table

...