# How to do LASSO regression with a dependent variable that has two limits

I would like to estimate a LASSO regression for a dependent variable that has a lower limit at -0.661 and an upper limit at 1 in R. I have already estimated a tobit regression without LASSO with the AER package. Is there a possibility to introduce a LASSO penalty term to this kind of model?

I have come across this question where the dependent variable had a theoretical range between 0 and 1, so that a beta-regression was appropriate (this would not be the case for me, though, since my variable can also be negative):
How to do LASSO regression with a dependent variable that is continuous between 0 and 1

I am thankful for any help!

• There is no such option for LASSO. You could always try modelling it without such restrictions, and hope for the best. Alternatively you could scale your data to (0,1) and use beta regression, if you are into that. Commented Jan 26, 2022 at 13:49
• Regarding the censoring tag, is your variable censored, or is it simply bounded as it is? Commented Jan 26, 2022 at 15:24
• Regarding the comment from @user2974951: it's true that lasso was originally formulated for the squared error (with unbounded, real responses). But, since then, the term 'lasso' has sometimes been used to describe $\ell_1$ regularization more broadly (e.g. logistic regression with a lasso penalty). It's certainly possible to generalize lasso to problems with bounded responses. Commented Jan 26, 2022 at 16:08
• The variable is the German EQ5D-5L, i.e. a quality of life measure with a theoretical range between -0.661 and 1 (pubmed.ncbi.nlm.nih.gov/29460066). I would argue that it is censored because people in perfect health (i.e. who have an EQ5D value of 1) or in the worst defined condition (-0.661) might in reality still differ in their quality of life.
– Nerd
Commented Jan 27, 2022 at 10:04

The glmnet package fits LASSO and related models via penalized maximum likelihood regression. A Tobit model can be fit by maximum likelihood, as the vignette for the R censReg package shows.

Thus in principle, as suggested in the comment from @user20160, you can use log-likelihood from a Tobit model as the loss function to combine with the L1 penalization on the coefficient magnitudes to get a LASSO model for Tobit regression. I don't know whether that's implemented anywhere for Tobit models, however.

The tobit() function in the AER package that you used is simply a wrapper for the standard survreg() function in the R survival package. It uses Surv() objects as outcomes (with values below/above the detection limit noted as left/right-censored), and specifies a family argument of "gaussian." The survreg object that it returns contains the log-likelihood for the model.

So you might pre-process your data that way into Surv() objects. Then write a wrapper function that, for any penalty value and set of predictors, calls survreg() that way, extracts the log-likelhood, and penalizes it by the penalty value times the sum of regression-coefficient magnitudes. Might be very slow, but could work as a one-off solution.

There also might be a way to exploit the ability of glmnet to allow custom families, but I don't have any experience with that.

Would it be appropriate to build a regression model to predict the logit of $$(y+0.661)/1.661$$ ? This is unbounded.

• Unbounded? As I see it, this expression is bounded between 0 and 1.397953 Commented Jan 27, 2022 at 8:19
• Using the inverse logistic function changes the range (0.0, 1.0) to $(-\inf, \inf)$ Commented Jan 28, 2022 at 8:32