4
$\begingroup$

I have a multiple linear regression with a couple of independent variables in it. Most of them are significant at p<0.001. The model has an R² of 0.83. When I add more variables, the old and the new variables are all highly significant, but R² does not improve at all.

What does that tell me?

$\endgroup$
9
  • $\begingroup$ What's the coefficient on the new variable? $\endgroup$
    – wcampbell
    Commented Apr 5, 2013 at 20:12
  • $\begingroup$ I don't think significance implies a strong correlation, just that the fit is very good. $\endgroup$
    – zzk
    Commented Apr 5, 2013 at 20:16
  • 4
    $\begingroup$ The difference between $R^2$ and adjusted $R^2$ is crucial, Magnus. It sounds like you are referring to the latter in your question, right? $\endgroup$
    – whuber
    Commented Apr 5, 2013 at 20:27
  • 2
    $\begingroup$ What's your sample size? If it's very large, then a tiny increase in $R^2$ could be significant. $\endgroup$
    – Peter Flom
    Commented Apr 5, 2013 at 21:50
  • 1
    $\begingroup$ Yes. I'm referring to adjusted R² here. my sample size is 680 $\endgroup$
    – Magnus
    Commented Apr 6, 2013 at 13:16

2 Answers 2

5
$\begingroup$

No, I don't think you should be concerned about the R-squared directly. Here's an example.

R squared must be increasing, but because of precision, you might not be seeing it.

First generate some data:

library(MASS)
sigma <- matrix(c(1.0, 0.8, 0.8, 0.4, 
                  0.8, 1.0, 0.7, 0.4, 
                  0.8, 0.7, 1.0, 0.4,              
                  0.4, 0.4, 0.4, 1.0),nrow=4)

d <- as.data.frame(mvrnorm(Sigma=sigma, n=2000, mu=rep(0, 4)))
names(d) <- c("y", "x1", "x2", "x3")

Run two models, one with one additional predictor.

> model1 <- lm(y ~ x1 + x2, data=d)
> model2 <- lm(y ~ x1 + x2 + x3, data=d)
> summary(model1)

Call:
lm(formula = y ~ x1 + x2, data = d)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.76599 -0.32031 -0.00252  0.31977  1.58157 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.008183   0.010902   0.751    0.453    
x1          0.475810   0.015359  30.980   <2e-16 ***
x2          0.470222   0.015263  30.808   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.4873 on 1997 degrees of freedom
Multiple R-squared: 0.7615, Adjusted R-squared: 0.7613 
F-statistic:  3188 on 2 and 1997 DF,  p-value: < 2.2e-16 

> summary(model2)

Call:
lm(formula = y ~ x1 + x2 + x3, data = d)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.6898 -0.3148  0.0086  0.3269  1.5480 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.007822   0.010861   0.720    0.471    
x1          0.464192   0.015573  29.808  < 2e-16 ***
x2          0.460004   0.015417  29.837  < 2e-16 ***
x3          0.048184   0.012008   4.013 6.22e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.4855 on 1996 degrees of freedom
Multiple R-squared: 0.7634, Adjusted R-squared: 0.7631 
F-statistic:  2147 on 3 and 1996 DF,  p-value: < 2.2e-16 

In the first model, R-squared is 0.76, in the second model, R-squared is 0.76, but the p-value on x3, which was added in the second model is highly significant.

You can test the change in R-squared with the ANOVA command:

> anova(model1, model2)
Analysis of Variance Table

Model 1: y ~ x1 + x2
Model 2: y ~ x1 + x2 + x3
  Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
1   1997 474.26                                  
2   1996 470.46  1    3.7953 16.102 6.223e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

The p-value is the same as the p-value for x3 in the second model. The change in R-squared was small, but it was significant. That can happen, it's not necessarily a problem.

$\endgroup$
4
  • 2
    $\begingroup$ I think this example--although it will likely provide useful insights upon further analysis--may be somewhat misleading, Jeremy. Your conclusion "it's not a problem" actually belies a huge problem: the $R^2$ barely changes even when the new variable is highly significant because the system is very nearly collinear. (The condition number is over $100$, which is enormous for such a small design matrix.) $\endgroup$
    – whuber
    Commented Apr 5, 2013 at 23:55
  • $\begingroup$ Agreed. I meant not a problem in that this does not mean something has gone wrong. It might be indicative of some other sort of problem, so I've amended it to read "not necessarily a problem". $\endgroup$ Commented Apr 5, 2013 at 23:58
  • 1
    $\begingroup$ thanks for this discussion here as well. Does that mean that (multi)collinearity might be an issue in my model? $\endgroup$
    – Magnus
    Commented Apr 6, 2013 at 13:22
  • 1
    $\begingroup$ it's certainly possible. But whether multicollinearity is an issue depends on your data, and the question you're asking. For example, if I've got two tests of math ability, and I want to control for math ability, these two tests will be highly correlated, but I'm still going to put them into the model, because I want to make sure I've controlled for math ability. $\endgroup$ Commented Apr 6, 2013 at 20:04
1
$\begingroup$

This is because at a certain point you are adding independent variables which explain similarly your response variable. In this situation, these variables are possibly multi collinear.

Example:

A model that has a certain circumference area as a function of independent variables like circumference's diameter and circumference's perimeter would probably perform the same way as if the regression model was dependent on just one of these independent variables.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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