Perhaps those more in the know than I could clarify some confusion. In the 
ANOVA 'R' code I see:

    mss <- sum(if (is.null(w)) object$fitted.values^2 else w * 
        object$fitted.values^2)
    if (ssr < 1e-10 * mss) 
        warning("ANOVA F-tests on an essentially perfect fit are unreliable")

But in the summary.lm I see:

        mss <- if (attr(z$terms, "intercept")) 
            sum((f - mean(f))^2)
        else sum(f^2)

or

        mss <- if (attr(z$terms, "intercept")) {
            m <- sum(w * f/sum(w))
            sum(w * (f - m)^2)
        }

At the very least the ANOVA code seems to be inefficient to calculate mss then 
only use it for a warning. But it seems that it is being calculated 
incorrectly. It is hard to tell since it is only used to issue the warning. But 
it may be that the warning is incorrect in some cases if mss is not calculated 
correctly. Ideas?

Kevin

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to