| The SCLS model with multiple compositional predictors {Compositional} | R Documentation |
The SCLS model with multiple compositional predictors
Description
The SCLS model with multiple compositional predictors.
Usage
scls2(y, x, wei = FALSE, xnew = NULL)
Arguments
y |
A matrix with the compositional data (dependent variable). Zero values are allowed. |
x |
A list of matrices with the compositional predictors. Zero values are allowed. |
wei |
Do you want weights among the different simplicial predictors? The default is FALSE. |
xnew |
If you have new data use it, otherwise leave it NULL. |
Details
The function performs least squares regression where the beta coefficients are constained to be positive and sum to 1. We were inspired by the transformation-free linear regression for compositional responses and predictors of Fiksel, Zeger and Datta (2020). Our implementation now uses quadratic programming instead of the function optim, and the solution is more accurate and extremely fast. This function allows for more than one simplicial predictors and offers the possibility of assigning weights to each simplicial predictor.
Value
A list including:
ini.mse |
The mean squared error when all simplicial predictors carry equal weight. |
ini.be |
The beta coefficients when all simplicial predictors carry equal weight. |
mse |
The mean squared error when the simplicial predictors carry unequal weights. |
weights |
The weights in a vector form. A vector of length equal to the number of rows of the matrix of coefficients. |
am |
The vector of weights, one for each simplicia predictor. The length of the vector is equal to the number of simplicial predictors. |
est |
The fitted of xnew if xnew is not NULL. |
Author(s)
Michail Tsagris.
R implementation and documentation: Michail Tsagris mtsagris@uoc.gr.
References
Tsagris. M. (2024). Constrained least squares simplicial-simplicial regression. https://arxiv.org/pdf/2403.19835.pdf
See Also
Examples
library(MASS)
set.seed(1234)
y <- rdiri(214, runif(4, 1, 3))
x1 <- as.matrix(fgl[, 2:9])
x <- list()
x[[ 1 ]] <- x1 / rowSums(x1)
x[[ 2 ]] <- Compositional::rdiri(214, runif(4))
mod <- scls2(y, x)
mod