Extract and tidy penalty matrices
Extract and tidy penalty matrices
penalty(object, ...) ## S3 method for class 'gam' penalty(object, smooth = NULL, rescale = FALSE, ...) ## S3 method for class 'mgcv.smooth' penalty(object, rescale = FALSE, ...) ## S3 method for class 'tensor.smooth' penalty(object, margins = FALSE, ...) ## S3 method for class 't2.smooth' penalty(object, margins = FALSE, ...) ## S3 method for class 're.smooth.spec' penalty(object, data, ...)
object |
a fitted GAM or a smooth. |
... |
additional arguments passed to methods. |
smooth |
character; vector of smooths to extract penalty matrices for.
If |
rescale |
logical; by default, mgcv will scale the penalty matrix for
better performance in |
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. |
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 n
th basis function, referencing the columns of the penalty matrix,
col
- character; a label of the form fn
where n
is an integer for
the n
th basis function, referencing the columns of the penalty matrix,
value
- double; the value of the penalty matrix for the combination of
row
and col
,
The print()
method uses base::zapsmall()
to turn very small numbers
into 0s for display purposes only; the underlying values of the penalty
matrix or matrices are not changed.
Gavin L. Simpson
load_mgcv() dat <- data_sim("eg4", n = 400, seed = 42) m <- gam(y ~ s(x0) + s(x1) + s(x2, by = fac), data = dat, method = "REML") penalty(m) # for a specific smooth penalty(m, smooth = "s(x2):fac1")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.