¿Por qué los modelos R y stats dan resultados ANOVA ligeramente diferentes?
Usando un pequeño conjunto de datos de muestra R y el ejemplo ANOVA destatsmodels, los grados de libertad para una de las variables se informan de manera diferente, y los resultados de los valores F también son ligeramente diferentes. ¿Quizás tienen enfoques predeterminados ligeramente diferentes? ¿Puedo configurar statsmodels para usar los valores predeterminados de R?
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
##R code on R sample dataset
#> anova(with(ChickWeight, lm(weight ~ Time + Diet)))
#Analysis of Variance Table
#
#Response: weight
# Df Sum Sq Mean Sq F value Pr(>F)
#Time 1 2042344 2042344 1576.460 < 2.2e-16 ***
#Diet 3 129876 43292 33.417 < 2.2e-16 ***
#Residuals 573 742336 1296
#write.csv(file='ChickWeight.csv', x=ChickWeight, row.names=F)
cw = pd.read_csv('ChickWeight.csv')
cw_lm=ols('weight ~ Time + Diet', data=cw).fit()
print(sm.stats.anova_lm(cw_lm, typ=2))
# sum_sq df F PR(>F)
#Time 2024187.608511 1 1523.368567 9.008821e-164
#Diet 108176.538530 1 81.411791 2.730843e-18
#Residual 764035.638024 575 NaN NaN
La cabeza y la cola de los conjuntos de datos son iguales *, también significan, min, max, mediana de peso y tiempo.