Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For Lasso regression $L(\beta)=(X\beta-y)'(X\beta-y)+\lambda||\beta||_1$, suppose the best solution (minimum testing error for example) selects $k$ features, so that $\hat{\beta}^{lasso}=\left(\hat{\beta}_1^{lasso},\hat{\beta}_2^{lasso},...,\hat{\beta}_k^{lasso},0,...0\right)$. We know $\left(\hat{\beta}_1^{lasso},\hat{\beta}_2^{lasso},...,\hat{\beta}_k^{lasso}\right)$ is a biased estimate of $\left(\beta_1,\beta_2,...,\beta_k\right)$, why we still take $\hat{\beta}^{lasso}$ as the final solution, instead of the more 'reasonable' $\hat{\beta}^{new}=\left(\hat{\beta}_{1:k}^{new},0,...,0\right)$, where $\hat{\beta}_{1:k}^{new}$ is the LS estimate from partial model $L^{new}(\beta_{1:k})=(X_{1:k}*\beta-y)'(X_{1:k}*\beta-y)$. ($X_{1:k}$: keep the columns of $X$ corresponding to the $k$ selected features). In brief, why we use Lasso for both feature election and parameter estimation, instead of only for variable selection and leaving the estimation by other models on the selected features?

More over, what does 'Lasso can select at most $n$ features'? $n$ is the sample size.

share|improve this question
Did you understand the purpose of "Shrinkage" in LASSO? – Michael M Jan 16 '14 at 15:02
The idea's to shrink the coefficient estimates precisely because you've picked the biggest ones. Least-squares estimates are no longer unbiased when you've done feature selection beforehand. – Scortchi Jan 16 '14 at 15:07
You should look at the Adaptive Lasso. I guess you will be pleased to see that one. Uses weights based on ols estimates to reduce bias. – Scratch Jan 16 '14 at 16:16
See the following question for a great answer to "What problem do shrinkage methods solve?"… – D L Dahly Jan 16 '14 at 16:26
To be clear: Not saying @Scortchi is wrong, but this is a bit of a grey area when discussing feature selection, and I think this is an important technical point that should be made very clear. – John Austin May 13 '15 at 18:20

If your aim is optimal in-sample performance (wrt highest R-squared), then just use OLS on every available variable. Dropping variables will decrease R-squared.

If your aim is good out-of-sample performance (which is usually what is much more important), then your proposed strategy will suffer from two sources of overfitting:

  • Selection of variables based on correlations with the response variable
  • OLS estimates

The purpose of LASSO is to shrink parameter estimates towards zero in order to fight above two sources of overfitting. In-sample predictions will be always worse than OLS, but the hope is (depending on the strength of the penalization) to get more realistic out-of-sample behaviour.

Regarding $p > n$: This (probably) depends on the implementation of LASSO you are using. A variant, Lars (least angle regression), does easily work for $p > n$.

share|improve this answer
The "Leekasso" (always pick 10 coefficients) is different than the question's proposal (re-estimate OLS with k predictors picked by LASSO) – Affine Jan 16 '14 at 15:42
@affine you are completely right. I removed the reference. – Michael M Jan 16 '14 at 15:48

I don't believe there is anything wrong with using LASSO for variable selection and then using OLS. From "Elements of Statistical Learning" (pg. 91)

...the lasso shrinkage causes the estimates of the non-zero coefficients to be biased towards zero and in general they are not consistent [Added Note: This means that, as the sample size grows, the coefficient estimates do not converge]. One approach for reducing this bias is to run the lasso to identify the set of non-zero coefficients, and then fit an un-restricted linear model to the selected set of features. This is not always feasible, if the selected set is large. Alternatively, one can use the lasso to select the set of non-zero predictors, and then apply the lasso again, but using only the selected predictors from the first step. This is known as the relaxed lasso (Meinshausen, 2007). The idea is to use cross-validation to estimate the initial penalty parameter for the lasso, and then again for a second penalty parameter applied to the selected set of predictors. Since the variables in the second step have less "competition" from noise variables, cross-validation will tend to pick a smaller value for $\lambda$ [the penalty parameter], and hence their coefficients will be shrunken less than those in the initial estimate.

Another reasonable approach similar in spirit to the relaxed lasso, would be to use lasso once (or several times in tandem) to identify a group of candidate predictor variables. Then use best subsets regression to select the best predictor variables to consider (also see "Elements of Statistical Learning" for this). For this to work, you would need to refine the group of candidate predictors down to around 35, which won't always be feasible. You can use cross-validation or AIC as a criterion to prevent over-fitting.

share|improve this answer
Another part of my question is, why 'Lasso can select at most n features'? If this is the case, I think OLS on the selected features will be at least 'good', since OLS is the 'BLUE' (Not strictly BLUE since it's mostly biased). Just consider an extreme situation that Lasso selects the exactly right features, conducting OLS on these features will restore the true model, which I think is better than the Lasso estimation. – yliueagle Jan 23 '14 at 15:22
The problem is that this "extreme situation" is very unlikely to occur, and there is no way of knowing if LASSO has selected exactly the right features. If LASSO selects too many features, then I think the full OLS model may perform worse than the LASSO estimates. Similarly, ridge regression can outperform OLS if there are too many features (i.e. OLS is overfit). – Alex Williams Jan 23 '14 at 18:25

Regarding the OPs question of why Lasso can select at most n features:

Consider why an OLS might be biased: this is when there are more predictors (p) than observations (n). Thus $X^{T}X$ is of size [p,p] in $\beta = (X^{T} X)^{-1}X^{T}Y$. Taking an inverse of such a matrix is not possible (it may be singular).

Lasso is forced to shrink the coefficients of the variables so that this does not happen, thus it never selects more than n features so that $X^{T}X$ is always invertible.

share|improve this answer

Your Answer


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.