slasso.fr {slasso} | R Documentation |
Smooth LASSO estimator for the function-on-function linear regression model
Description
The smooth LASSO (S-LASSO) method for the function-on-function linear regression model provides interpretable coefficient function estimates that are both locally sparse and smooth (Centofanti et al., 2020).
Usage
slasso.fr(
Y_fd,
X_fd,
basis_s,
basis_t,
lambda_L,
lambda_s,
lambda_t,
B0 = NULL,
...
)
Arguments
Y_fd |
An object of class fd corresponding to the response functions. |
X_fd |
An object of class fd corresponding to the covariate functions. |
basis_s |
B-splines basis along the |
basis_t |
B-splines basis along the |
lambda_L |
Regularization parameter of the functional LASSO penalty. |
lambda_s |
Regularization parameter of the smoothness penalty along the |
lambda_t |
Regularization parameter of the smoothness penalty along the |
B0 |
Initial estimator of the basis coefficients matrix of the coefficient function. Should have dimensions in accordance with the basis dimensions of |
... |
Other arguments to be passed to the Orthant-Wise Limited-memory Quasi-Newton optimization function. See the |
Value
A list containing the following arguments:
-
B
: The basis coefficients matrix estimate of the coefficient function. -
Beta_hat_fd
: The coefficient function estimate of class bifd. -
alpha
: The intercept function estimate. -
lambdas_L
: Regularization parameter of the functional LASSO penalty. -
lambda_s
: Regularization parameter of the smoothness penalty along thes
-direction. -
lambda_t
: Regularization parameter of the smoothness penalty along thet
-direction. -
Y_fd
: The response functions. -
X_fd
: The covariate functions. -
per_0
: The fraction of domain where the coefficient function is zero. -
type
: The output type.
References
Centofanti, F., Fontana, M., Lepore, A., & Vantini, S. (2020). Smooth LASSO Estimator for the Function-on-Function Linear Regression Model. arXiv preprint arXiv:2007.00529.
See Also
Examples
library(slasso)
data<-simulate_data("Scenario II",n_obs=150)
X_fd=data$X_fd
Y_fd=data$Y_fd
domain=c(0,1)
n_basis_s<-30
n_basis_t<-30
breaks_s<-seq(0,1,length.out = (n_basis_s-2))
breaks_t<-seq(0,1,length.out = (n_basis_t-2))
basis_s <- fda::create.bspline.basis(domain,breaks=breaks_s)
basis_t <- fda::create.bspline.basis(domain,breaks=breaks_t)
mod_slasso<-slasso.fr(Y_fd = Y_fd,X_fd=X_fd,basis_s=basis_s,basis_t=basis_t,
lambda_L = -1.5,lambda_s =-8,lambda_t = -7,B0 =NULL,invisible=1,max_iterations=10)