Returns the link or its inverse from an estimated model, and provides a simple way to extract these functions from complex models with multiple links, such as location scale models.
Usage
link(object, ...)
# S3 method for class 'family'
link(object, parameter = NULL, which_eta = NULL, ...)
# S3 method for class 'gam'
link(object, parameter = NULL, which_eta = NULL, ...)
# S3 method for class 'bam'
link(object, parameter = NULL, which_eta = NULL, ...)
# S3 method for class 'gamm'
link(object, ...)
# S3 method for class 'glm'
link(object, ...)
# S3 method for class 'list'
link(object, ...)
inv_link(object, ...)
# S3 method for class 'family'
inv_link(object, parameter = NULL, which_eta = NULL, ...)
# S3 method for class 'gam'
inv_link(object, parameter = NULL, which_eta = NULL, ...)
# S3 method for class 'bam'
inv_link(object, parameter = NULL, which_eta = NULL, ...)
# S3 method for class 'gamm'
inv_link(object, ...)
# S3 method for class 'list'
inv_link(object, ...)
# S3 method for class 'glm'
inv_link(object, ...)
extract_link(family, ...)
# S3 method for class 'family'
extract_link(family, inverse = FALSE, ...)
# S3 method for class 'general.family'
extract_link(family, parameter, inverse = FALSE, which_eta = NULL, ...)Arguments
- object
a family object or a fitted model from which to extract the family object. Models fitted by
stats::glm(),mgcv::gam(),mgcv::bam(),mgcv::gamm(), andgamm4::gamm4()are currently supported.- ...
arguments passed to other methods.
- parameter
character; which parameter of the distribution. Usually
"location"but"scale"and"shape"may be provided for location scale models. Other options include"mu"as a synonym for"location","sigma"for the scale parameter inmgcv::gaulss(),"pi"for the zero-inflation term inmgcv::ziplss(),"power"for themgcv::twlss()power parameter,"xi", the shape parameter formgcv::gevlss(),"epsilon"or"skewness"for the skewness and"delta"or"kurtosis"for the kurtosis parameter formgcv::shash(), or"phi"for the scale parameter ofmgcv::gammals()&mgcv::twlss().- which_eta
numeric; the linear predictor to extract for families
mgcv::mvn()andmgcv::multinom().- family
a family object, the result of a call to
family().- inverse
logical; return the inverse of the link function?
Examples
load_mgcv()
link(gaussian())
#> function (mu)
#> mu
#> <environment: namespace:stats>
link(nb())
#> function (mu)
#> log(mu)
#> <environment: namespace:stats>
inv_link(nb())
#> function (eta)
#> pmax(exp(eta), .Machine$double.eps)
#> <environment: namespace:stats>
dat <- data_sim("eg1", seed = 4234)
mod <- gam(list(y ~ s(x0) + s(x1) + s(x2) + s(x3), ~1),
data = dat,
family = gaulss
)
link(mod, parameter = "scale")
#> function (mu)
#> log(1/mu - 0.01)
#> <environment: 0x555733b34690>
inv_link(mod, parameter = "scale")
#> function (eta)
#> 1/(exp(eta) + 0.01)
#> <environment: 0x555733b34690>
## Works with `family` objects too
link(shash(), parameter = "skewness")
#> function (mu)
#> mu
#> <environment: namespace:stats>