statsmodels.stats.anova.anova_lm

statsmodels.stats.anova.anova_lm(*args, **kwargs)[source]

Anova table for one or more fitted linear models.

Parameters
argsfitted linear model results instance

One or more fitted linear models

scalefloat

Estimate of variance, If None, will be estimated from the largest model. Default is None.

teststr {“F”, “Chisq”, “Cp”} or None

Test statistics to provide. Default is “F”.

typstr or int {“I”,”II”,”III”} or {1,2,3}

The type of Anova test to perform. See notes.

robust{None, “hc0”, “hc1”, “hc2”, “hc3”}

Use heteroscedasticity-corrected coefficient covariance matrix. If robust covariance is desired, it is recommended to use hc3.

Returns
anovaDataFrame

When args is a single model, return is DataFrame with columns:

sum_sqfloat64

Sum of squares for model terms.

dffloat64

Degrees of freedom for model terms.

Ffloat64

F statistic value for significance of adding model terms.

PR(>F)float64

P-value for significance of adding model terms.

When args is multiple models, return is DataFrame with columns:

df_residfloat64

Degrees of freedom of residuals in models.

ssrfloat64

Sum of squares of residuals in models.

df_difffloat64

Degrees of freedom difference from previous model in args

ss_dfffloat64

Difference in ssr from previous model in args

Ffloat64

F statistic comparing to previous model in args

PR(>F): float64

P-value for significance comparing to previous model in args

See also

model_results.compare_f_test, model_results.compare_lm_test

Notes

Model statistics are given in the order of args. Models must have been fit using the formula api.

Examples

>>> import statsmodels.api as sm
>>> from statsmodels.formula.api import ols
>>> moore = sm.datasets.get_rdataset("Moore", "carData", cache=True) # load
>>> data = moore.data
>>> data = data.rename(columns={"partner.status" :
...                             "partner_status"}) # make name pythonic
>>> moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)',
...                 data=data).fit()
>>> table = sm.stats.anova_lm(moore_lm, typ=2) # Type 2 Anova DataFrame
>>> print(table)