PCG_smooth: High-dimensional spline smoothing using a matrix-free...

Description Usage Arguments Value Examples

View source: R/mgss_main.R

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 preconditioned conjugated gradient (PCG) method using a diagonal preconditioner.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
PCG_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 PCG-method. Defaults to zero.

K_max

Positive integer as upper bound for the number of PCG-iterations. Defaults to prod(m+q+1).

tolerance

Positive number as error tolerance for the stopping criterion of the PCG-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.

Examples

1
2
3
4
data <- generate_test_data(100, 2)
X <- data$X_train
y <- data$y_train
PCG_smooth(m = c(7,7), q = c(3,3), lambda = 0.1, X = X, y = y)

mgss documentation built on May 10, 2021, 9:07 a.m.