Learn R Programming

gratia (version 0.8.2)

penalty: Extract and tidy penalty matrices

Description

Extract and tidy penalty matrices

Usage

penalty(object, ...)

# S3 method for gam penalty(object, smooth = NULL, rescale = FALSE, ...)

# S3 method for mgcv.smooth penalty(object, rescale = FALSE, ...)

# S3 method for tensor.smooth penalty(object, margins = FALSE, ...)

# S3 method for t2.smooth penalty(object, margins = FALSE, ...)

# S3 method for re.smooth.spec penalty(object, data, ...)

Value

A 'tibble' (data frame) of class penalty_df inheriting from tbl_df, with the following components:

  • smooth - character; the label mgcv uses to refer to the smooth,

  • type - character; the type of smooth,

  • penalty - character; the label for the specific penalty. Some smooths have multiple penalty matrices, so the penalty component identifies the particular penalty matrix and uses the labelling that mgcv uses internally,

  • row - character; a label of the form fn where n is an integer for the nth basis function, referencing the columns of the penalty matrix,

  • col - character; a label of the form fn where n is an integer for the nth basis function, referencing the columns of the penalty matrix,

  • value - double; the value of the penalty matrix for the combination of row and col,

Arguments

object

a fitted GAM or a smooth.

...

additional arguments passed to methods.

smooth

character; vector of smooths to extract penalty matrices for. If NULL, penalty matrices for all smooths in object are extracted.

rescale

logical; by default, mgcv will scale the penalty matrix for better performance in mgcv::gamm(). If rescale is TRUE, this scaling will be undone to put the penalty matrix back on the original scale.

margins

logical; extract the penalty matrices for the tensor product or the marginal smooths of the tensor product?

data

data frame; a data frame of values for terms mentioned in the smooth specification.

Author

Gavin L. Simpson

Examples

Run this code
# \dontshow{
op <- options(cli.unicode = FALSE, pillar.sigfig = 3)
# }
load_mgcv()
dat <- data_sim("eg4", n = 400, seed = 42)
m <- gam(y ~ s(x0, bs = "cr") + s(x1, bs = "cr") +
           s(x2, by = fac, bs = "cr"),
         data = dat, method = "REML")

# penalties for all smooths
penalty(m)

# for a specific smooth
penalty(m, smooth = "s(x2):fac1")

options(op)

Run the code above in your browser using DataLab