The R package palasso implements the paired lasso.

Installation

Installing the current release from CRAN:

install.packages("palasso")

Installing the latest development version from GitHub:

#install.packages("devtools")
library(devtools)
install_github("rauschenberger/palasso")

Initialisation

We use glmnet for the standard lasso, and palasso for the paired lasso.

Loading and attaching the packages:

Attaching some data to reproduce the examples:

attach(toydata)

Data are available for n=30n=30 samples and p=50p=50 covariate pairs. The object y contains the response (numeric vector of length nn). The object X contains the covariates (list of two numeric matrices, both with nn rows and pp columns).

Standard lasso

The standard lasso is a good choice for exploiting either the first or the second covariate group:

object <- glmnet(y=y,x=X[[1]])
object <- glmnet(y=y,x=X[[2]])

Paired lasso

But the paired lasso might be a better choice for exploiting both covariates groups at once:

object <- palasso(y=y,X=X)

In contrast to the standard lasso, the paired lasso accounts for the structure between the covariate groups.

Given a limited number of non-zero coefficients, we expect the paired lasso to outperform the standard lasso:

object <- palasso(y=y,X=X,max=10)

Methods

Standard methods are available for the paired lasso:

weights(object)
fitted(object)
residuals(object)
predict(object,newdata=X)

Reference

Armin Rauschenberger AR, Iuliana Ciocănea-Teodorescu ICT, Marianne A. Jonker MAJ, Renée X. Menezes RXM, and Mark A. van de Wiel MvdW (2020). “Sparse classification with paired covariates”. Advances in Data Analysis and Classification 14:571-588. doi: 10.1007/s11634-019-00375-6