Implements multivariate elastic net regression.
joinet(
Y,
X,
family = "gaussian",
nfolds = 10,
foldid = NULL,
type.measure = "deviance",
alpha.base = 1,
alpha.meta = 1,
weight = NULL,
sign = NULL,
...
)
outputs: numeric matrix with \(n\) rows (samples) and \(q\) columns (outputs)
inputs: numeric matrix with \(n\) rows (samples) and \(p\) columns (inputs)
distribution:
vector of length \(1\) or \(q\) with entries
"gaussian"
, "binomial"
or "poisson"
number of folds
fold identifiers:
vector of length \(n\) with entries between \(1\) and nfolds
;
or NULL
(balance)
loss function:
vector of length \(1\) or \(q\) with entries
"deviance"
, "class"
, "mse"
or "mae"
(see cv.glmnet
)
elastic net mixing parameter for base learners: numeric between \(0\) (ridge) and \(1\) (lasso)
elastic net mixing parameter for meta learners: numeric between \(0\) (ridge) and \(1\) (lasso)
input-output relations:
matrix with \(p\) rows (inputs) and \(q\) columns (outputs)
with entries \(0\) (exclude) and \(1\) (include),
or NULL
(see details)
output-output relations:
matrix with \(q\) rows ("meta-inputs") and \(q\) columns (outputs),
with entries \(-1\) (negative), \(0\) (none),
\(1\) (positive) and \(NA\) (any),
or NULL
(see details)
further arguments passed to glmnet
This function returns an object of class joinet
.
Available methods include
predict
,
coef
,
and weights
.
The slots base
and meta
each contain
\(q\)cv.glmnet
-like objects.
input-output relations:
In this matrix with \(p\) rows and \(q\) columns,
the entry in the \(j\)th row and the \(k\)th column
indicates whether the \(j\)th input may be used for
modelling the \(k\)th output
(where \(0\) means "exclude" and
\(1\) means "include").
By default (sign=NULL
),
all entries are set to \(1\).
output-output relations: In this matrix with \(q\) rows and \(q\) columns, the entry in the \(l\)th row and the \(k\)th column indicates how the \(l\)th output may be used for modelling the \(k\)th output (where \(-1\) means negative effect, \(0\) means no effect, \(1\) means positive effect, and \(NA\) means any effect).
There are three short-cuts for filling up this matrix:
(1) sign=1
sets all entries to \(1\) (non-negativity constraints).
This is useful if all pairs of outcomes
are assumed to be positively correlated
(potentially after changing the sign of some outcomes).
(2) code=NA
sets all diagonal entries to \(1\)
and all off-diagonal entries to NA
(no constraints).
(3) sign=NULL
uses Spearman correlation to determine the entries,
with \(-1\) for significant negative, \(0\) for insignificant,
\(1\) for significant positive correlations.
elastic net:
alpha.base
controls input-output effects,
alpha.meta
controls output-output effects;
lasso renders sparse models (alpha
\(=1\)),
ridge renders dense models (alpha
\(=0\))
Armin Rauschenberger, Enrico Glaab (2021) "Predicting correlated outcomes from molecular data" Bioinformatics. btab576 doi: 10.1093/bioinformatics/btab576
cv.joinet
, vignette