I performed a lasso selection using lars::lars for a well normally distributed outcome using a pool of 86 predictors. Here is the plot of the output:

enter image description here

The following covariance test confirmed 'clive' is the best selected:

  Variable Drop_in_covariance P.value
1    clive            13.4357  0.0000
2     pepl             0.2965  0.7436
3     sb5y             0.1028  0.9023
4    radio             0.0656  0.9365
5     roof             0.9746  0.3781

However, when I built a model then using glm with 'clive' and some other biological variables (they are all within the 86-variable pool for lasso), I got this results:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.41025    0.05518   -7.43  4.2e-13 ***
clive        0.06499    0.04110    1.58   0.1144    
cdaysbms2   -0.00798    0.01956   -0.41   0.6836    
exp         -0.01194    0.00386   -3.10   0.0021 ** 
bodr        -0.00052    0.04004   -0.01   0.9896    
medu         0.02642    0.01343    1.97   0.0496 *  
inco         0.00815    0.00298    2.73   0.0065 ** 

Here you can see the best selected 'clive' isn't statistically significant while other some unselected are even significant. It is true when the model only includes 'clive', it becomes significant:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.4269     0.0304  -14.02  < 2e-16 ***
clive         0.0743     0.0133    5.58  3.9e-08 ***

But I'm still confused how to interpret it. I would think if 'clive' is the best one from a pool, then its p.value should be the lowest one even when have other variables from the pool in the model. Would somebody offer an explanation?

  • $\begingroup$ have you scaled the data before to perform lasso? $\endgroup$
    – Donbeo
    Aug 25, 2014 at 22:37
  • $\begingroup$ Yes, the data were scaled. $\endgroup$
    – David Z
    Aug 26, 2014 at 12:40

2 Answers 2


The relationship between Clive and the dependent variable is being (very slightly) mediated by other variables. You can see this because the effect size for Clive is slightly lower when the other variables are included.

In addition, the same variance in the dependent variable is associated with Clive and with the other IVs in the larger model.

No automatic model selection scheme will work perfectly; LASSO does work better than stepwise, in that it penalizes for complexity. But to have everything make sense, you have to add substantive knowledge.

What to do now? That depends on your goals and the nature of the variables. You might consider partial least squares.


I think Peter has made the great point, and I just want to share what I have figured out on this question more specifically.

The reason is simple: collinearity. After I checked the VIF, it shows as this:

    clive cdaysbms2      bodr      medu      inco 
    9.649     1.008     9.648     1.149     1.088

Then I dropped 'bodr' and the rebuilt model makes much more sense:

             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.444685   0.054289   -8.19  1.9e-15 ***
clive        0.068242   0.013698    4.98  8.5e-07 ***
cdaysbms2   -0.008045   0.019621   -0.41    0.682    
medu         0.025732   0.013512    1.90    0.057 .  
inco        -0.000447   0.001091   -0.41    0.682 

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.