Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

How do I test for Lack Of Fit (F-test) using R? I've seen a similar question, but that was for SPSS and it was just said that is can be easily done in R, but not how.

I know in simple linear regression I would use anova(fm1,fm2), fm1 being my model, fm2 being the same model with x as a factor (if there are several y for x). How do I do it in multiple linear regression?

share|improve this question
2  
Can you say which CV question you are referring to? Note that an ANOVA is a multiple regression model, just one w/ only categorical covariates. In R, the code / formulation should be identical for performing a nested model test b/t 2 ANOVA's & 2 MR's. – gung Oct 21 '12 at 15:51
1  
stats.stackexchange.com/questions/4762/… is the one I was talking about – cups Oct 21 '12 at 16:33

1 Answer

As @gung says in the comment, your question title and text conflict. The F-test for joint significance of all parameters in a model is on a single model fit; it is displayed each time you do summary().

Comparisons of models is a whole different ball game -- as the models need to be nested for inference to be valid.

The lmtest adds a number of common econometrics tests for linear models. As an illustration, here is the beginning of examples(lrtest) for using a likelihood-ratio test to compare two nested models:

R>      ## with data from Greene (1993):
R>      data("USDistLag")
R>      usdl <- na.contiguous(cbind(USDistLag, lag(USDistLag, k = -1)))
R>      colnames(usdl) <- c("con", "gnp", "con1", "gnp1")
R>      fm1 <- lm(con ~ gnp + gnp1, data = usdl)
R>      fm2 <- lm(con ~ gnp + con1 + gnp1, data = usdl)
R>      lrtest(fm2, fm1)
Likelihood ratio test

Model 1: con ~ gnp + con1 + gnp1
Model 2: con ~ gnp + gnp1
  #Df LogLik Df Chisq Pr(>Chisq)    
1   5 -56.07                        
2   4 -65.87 -1 19.61   9.52e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
R> 
share|improve this answer
What I want to do is test a model for Lack Of Fit. I do not want to compare it, I just read that it is done this way. That seems to be not true. So the question is: how do I test my multiple regression model for lack of fit? – cups Oct 21 '12 at 16:35
You can look at summary(lm(y ~ . , data=X)) which prints the F-test for you. – Dirk Eddelbuettel Oct 21 '12 at 16:36
but that is f-test for different variables, not for the whole model. am I wrong? – cups Oct 21 '12 at 16:38
Well, I fear you are wrong. The F-test corresponds to testing all variables at the same time, and as such can be seen as a test of the whole model. You may want to check the documentation of the lmtest package as well as the references it offers. – Dirk Eddelbuettel Oct 21 '12 at 17:50
1  
@DirkEddelbuettel The F-test is not the lack of fit test ! – Stéphane Laurent Oct 21 '12 at 19:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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