ANOVA, as a likelihood ratio test, can take any two nested models and compare them. This assesses the main effects (equivalent to joint test of appropriate regression model coefficients). And one can do this for a linear model, but also a generalized model, like logistic regression, general additive model, quantile regression model and so on - whenever the residual variance or deviance can be determined. The R anova() command does it.

Of course, the classic ANOVA we are taught also works this way - it compares a model with intercept only and with the effect we assess. It compares them via F test and we have the classic ANOVA.

Of course all those models have different assumptions. So why exactly we need the homogeneity of variance and normality of residuals? Doesn't it correspond only to general linear model? Why do THESE assumptions have to be meet if ANOVA can deal with all those models, including GLM, GAM, GLS estimated LM and so on? Is this because of the desired statistical properties if the underlying model is the linear one?


1 Answer 1


The classical ANOVA is, as you say, based on the general linear model. As it is a likelihood ratio test, it can be generalized to many other situations, yes. That is a modern point of view. Fishers original point of view was that the ANOVA (table) was a convenient way of set out the arithmetic (I will try to find a quote.)

Anyhow, when used in the original setting, distribution theory, tests, p-values so on are exact. In the generalized sense they are not. The general case is far to general to have a unified theory. The classical assumptions refers to the classical case. They do not refer to the generalized use of ANOVA, which must be treated on their own. Maybe also the generalized use of ANOVA (that is, the generalized terminology) is somewhat specific to R (and very natural with object oriented programming as used in R.)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.