A set of common utility functions used by VGAM family functions.
1 2 3
Character. Name of the parameter.
Numeric. The total number of linear/additive predictors, called
By total, it is meant summed over the number of responses.
Often, M is the total number of parameters to be estimated (but
this is not the same as the number of regression coefficients, unless
the RHS of the formula is an intercept-only).
The use of
Numeric. The number of linear/additive predictors for one response, called
This argument used to be called
Logical. Useful for the inverse function of
Numeric. The number of responses.
Numeric. The half-bandwidth, which measures the number of bands emanating from the central diagonal band.
See Yee (2015) for some details about some of these functions.
param.names(), this function returns the parameter names
for S responses,
string is returned unchanged if S=1,
paste(string, 1:S, sep = "").
dimm(), this function returns the number of elements
to be stored for each of the working weight matrices.
They are represented as columns in the matrix
See the matrix-band format described in
Section 18.3.5 of Yee (2015).
interleave.VGAM(), this function returns a reordering
of the linear/additive predictors depending on the number of responses.
The arguments presented in Table 18.5 may not be valid
in your version of Yee (2015).
T. W. Yee.
Victor Miranda added the
inverse argument to
Yee, T. W. (2015) Vector Generalized Linear and Additive Models: With an Implementation in R. New York, USA: Springer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
param.names("shape", 1) # "shape" param.names("shape", 3) # c("shape1", "shape2", "shape3") dimm(3, hbw = 1) # Diagonal matrix; the 3 elements need storage. dimm(3) # A general 3 x 3 symmetrix matrix has 6 unique elements. dimm(3, hbw = 2) # Tridiagonal matrix; the 3-3 element is 0 and unneeded. M1 <- 2; ncoly <- 3; M <- ncoly * M1 mynames1 <- param.names("location", ncoly) mynames2 <- param.names("scale", ncoly) (parameters.names <- c(mynames1, mynames2)[interleave.VGAM(M, M1 = M1)]) # The following is/was in Yee (2015) and has a poor/deceptive style: (parameters.names <- c(mynames1, mynames2)[interleave.VGAM(M, M = M1)]) parameters.names[interleave.VGAM(M, M1 = M1, inverse = TRUE)]