Skip to contents

Formula: PRSS(beta, lambda) = sum_i (y_i - b0 - sum_j x_ij b_j)^2 + lambda sum_j b_j^2

Usage

Ridgeobj(X, y, beta, lam, add_intercept = TRUE)

Arguments

X

Design matrix, one record per row.

y

Response vector of length n.

beta

Coefficient vector.

lam

Regularization parameter lambda; must be non-negative.

add_intercept

Treat the first entry of beta as an unpenalized intercept and prepend a column of ones to X.

Value

List with prss, rss, penalty, lambda, n, p.

References

Montesinos Lopez, Montesinos Lopez and Crossa (2022), Multivariate Statistical Machine Learning Methods for Genomic Prediction, Springer, doi:10.1007/978-3-030-89010-0. Chapter 3, Sect. 3.6.1 p. 81: PRSS_lambda(beta) = RSS(beta) + lambda beta'D beta with D = diag(0, 1, ..., 1), so the intercept is not penalized. Read from the chapter PDF, not recalled.

Examples

X <- cbind(c(1, 2, 3, 4), c(0, 1, 0, 1))
y <- c(1.1, 2.3, 2.9, 4.2)
Ridgeobj(X, y, beta = c(0.1, 1, 0.2), lam = 0.5)[c("prss", "rss", "penalty")]
#> $prss
#> [1] 0.57
#> 
#> $rss
#> [1] 0.05
#> 
#> $penalty
#> [1] 0.52
#>