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: 0x56291af7dd88>
inv_link(mod, parameter = "scale")
#> function (eta)
#> 1/(exp(eta) + 0.01)
#> <environment: 0x56291af7dd88>
## Works with `family` objects too
link(shash(), parameter = "skewness")
#> function (mu)
#> mu
#> <environment: namespace:stats>