CG_smooth: High-dimensional spline smoothing using a matrix-free CG-method.
Description
Fits a smooth spline to a set of given observations using penalized splines with curvature or difference penalty and multiple covariates. The underlying linear system is solved with a matrix-free conjugated gradient (CG) method.
Usage
CG_smooth(
m,
q,
lambda,
X,
y,
pen_type = "curve",
l = NULL,
alpha_start = NULL,
K_max = NULL,
tolerance = 1e-06,
print_error = TRUE
)
Arguments
m
Vector of non-negative integers. Each entry gives the number of inner knots for the respective covariate.
q
Vector of positive integers. Each entry gives the spline degree for the respective covariate.
lambda
Positive number as weight for the penalty term.
X
Matrix containing the covariates as columns and the units as rows.
y
Vector of length nrow(X) as the variable of interest.
pen_type
Utilized penalization method. Either "curve" for the curvature penalty or "diff" for the difference penalty. Defaults to "curve".
l
Positive integer vector of length P indicating for the penalty degree. Only required if pen_type = "diff".
alpha_start
Vector of length prod(m+q+1) as starting value for the CG-method. Defaults to zero.
K_max
Positive integer as upper bound for the number of CG-iterations. Defaults to prod(m+q+1).
tolerance
Positive number as error tolerance for the stopping criterion of the CG-method. Defaults to 1e-6.
print_error
Logical, indicating if the iteration error should be printed or not.
Value
Returns a list containing the input m, q, and Omega. Further gives the fitted spline coefficients alpha, the fitted values fitted_values, the residuals residuals, the root mean squared error rmse and the R-squared value R_squared.