inv.chisqMeanlink: Link functions for the mean of 1-parameter continuous...

inv.chisqMlinkR Documentation

Link functions for the mean of 1–parameter continuous distributions: The inverse chi–squared distribution.

Description

Computes the inv.chisqMlink transformation, its inverse and the first two derivatives.

Usage

        inv.chisqMlink(theta, bvalue = NULL, inverse = FALSE,
                        deriv = 0, short = TRUE, tag = FALSE) 

Arguments

theta

Numeric or character. This is \theta by default but may be \eta depending on the other parameters. See below for further details.

bvalue, inverse, deriv, short, tag

See Links.

Details

This link functions models the mean of the inverse chi–squared distribution, inv.chisqff.

It is defined as

\eta = -\log ( df - 2),

where df denotes the (non–negative) degrees of freedom, as in inv.chisqff.

Notice, however, that df > 2 is required for the mean of this distribution to be real. Consequently, the domain set for df for this link function is (2, \infty).

Numerical values of df out of range will result in NA or NaN.

Value

For deriv = 0, the inv.chisqMlink transformation of theta when inverse = FALSE. If inverse = TRUE, then the inverse exp(-theta) + 2.

For deriv = 1, d eta / d theta when inverse = FALSE. If inverse = TRUE, then d theta / d eta as a function of theta.

When deriv = 2, the second derivatives in terms of theta are returned.

Note

Numerical instability may occur for values theta too large or possibly, too close to 2. Use argument bvalue to replace them before computing the link.

If theta is character, then arguments inverse and deriv are ignored. See Links for further details.

Author(s)

V. Miranda and Thomas W. Yee.

See Also

inv.chisqff, Links.

Examples

 ##  E1. Modelling the mean of the exponential distribution  ##
    set.seed(17010502)
    dof <- 2.5 
    isq.data <- data.frame(x2 = runif(100, 0, 1))
    isq.data <- transform(isq.data, y = rinv.chisq(n = 100, df = dof + x2))
    
    
    hist(isq.data$y)
    
    
    fit.inv <- vglm(y ~ x2, family = inv.chisqff(link = "inv.chisqMlink"), 
                    data = isq.data, trace = TRUE )
    coef(fit.inv, matrix = TRUE)
    summary(fit.inv)

  ## E3. Special values in a matrix ##
    (theta <- matrix(c(Inf, -Inf, NA, NaN, 1 , 2, 3, 4), ncol = 4, nrow = 2))
    inv.chisqMlink(theta = theta)   ## NaNs for df = theta <= 2 
 
  ## E2. inv.chisqMlink() and its inverse ##
    theta <- 0.1 + 1:5  # dof = df
    my.diff <- theta - inv.chisqMlink(inv.chisqMlink(theta = theta), inverse  =TRUE)
    summary(my.diff)     # Zero


VGAMextra documentation built on Nov. 2, 2023, 5:59 p.m.