Last chance! 50% off unlimited learning
Sale ends in
TypicalVGAMlinkFunction(theta, someParameter = 0,
bvalue = NULL,
inverse = FALSE, deriv = 0,
short = TRUE, tag = FALSE)
theta
is character then inverse
and
deriv
are ignored.
The name theta
should alway0 < theta
then
values of theta
which are less than or equal to 0 can be
replaced by bvalue
before computing the link function value.
Values of theta
which TRUE
the inverse link value
$\theta$ is returned, hence the argument
theta
is really $\eta$.blurb
slot of a
vglmff-class
object.
These arguments are used only if theta
is character,
and gives the formula for the link
Here are the general details.
If inverse = FALSE
and deriv = 0
(default) then the
ordinary link
function $\eta = g(\theta)$ is returned.
If inverse = FALSE
and deriv = 1
then it is
$d\theta / d\eta$
as a function of $\theta$.
If inverse = FALSE
and deriv = 2
then it is
$d^2\theta / d\eta^2$
as a function of $\theta$.
If inverse = TRUE
and deriv = 0
then the inverse
link function is returned, hence theta
is really
$\eta$.
If inverse = TRUE
and deriv
is positive then the
reciprocal of the same link function with
(theta = theta, someParameter, inverse = TRUE, deriv = deriv)
is returned.
The following is a brief enumeration of all
For parameters lying between 0 and 1 (e.g., probabilities):
logit
,
probit
,
cloglog
,
cauchit
,
fsqrt
,
logc
,
golf
,
polf
,
nbolf
.
For positive parameters (i.e., greater than 0):
loge
,
negloge
,
powerlink
.
For parameters greater than 1:
loglog
.
For parameters between $-1$ and $1$:
fisherz
,
rhobit
.
For parameters between $A$ and $B$:
elogit
,
logoff
($B = \infty$).
For unrestricted parameters (i.e., any value):
identity
,
negidentity
,
reciprocal
,
negreciprocal
.
TypicalVGAMfamilyFunction
,
vglm
,
vgam
,
rrvglm
.
cqo
,
cao
.logit("a")
logit("a", short = FALSE)
logit("a", short = FALSE, tag = TRUE)
logoff(1:5, offset = 1) # Same as log(1:5 + 1)
powerlink(1:5, power = 2) # Same as (1:5)^2
# This is old and no longer works:
logoff(1:5, earg = list(offset = 1))
powerlink(1:5, earg = list(power = 2))
fit1 <- vgam(agaaus ~ altitude, binomialff(link = "cloglog"), hunua) # okay
fit2 <- vgam(agaaus ~ altitude, binomialff(link = "cloglog"), hunua) # okay
# This no longer works since "clog" is not a valid VGAM link function:
fit3 <- vgam(agaaus ~ altitude, binomialff(link = "clog"), hunua) # not okay
# No matter what the link, the estimated var-cov matrix is the same
y <- rbeta(n = 1000, shape1 = exp(0), shape2 = exp(1))
fit1 <- vglm(y ~ 1, beta.ab(lshape1 = "identity", lshape2 = "identity"),
trace = TRUE, crit = "coef")
fit2 <- vglm(y ~ 1, beta.ab(lshape1 = logoff(offset = 1.1),
lshape2 = logoff(offset = 1.1)),
trace = TRUE, crit = "coef")
vcov(fit1, untransform = TRUE)
vcov(fit1, untransform = TRUE) - vcov(fit2, untransform = TRUE) # Should be all 0s
\dontrun{ # This is old:
fit1@misc$earg # Some 'special' parameters
fit2@misc$earg # Some 'special' parameters are here
}
par(mfrow = c(2, 2))
p <- seq(0.01, 0.99, len = 200)
x <- seq(-4, 4, len = 200)
plot(p, logit(p), type = "l", col = "blue")
plot(x, logit(x, inverse = TRUE), type = "l", col = "blue")
plot(p, logit(p, deriv = 1), type = "l", col = "blue") # reciprocal!
plot(p, logit(p, deriv = 2), type = "l", col = "blue") # reciprocal!
Run the code above in your browser using DataLab