Algorithmic constants and parameters for running rrvglm
are set using this function.
rrvglm.control(Rank = 1, Algorithm = c("alternating", "derivative"),
Corner = TRUE, Uncorrelated.latvar = FALSE,
Wmat = NULL, Svd.arg = FALSE,
Index.corner = if (length(str0))
head((1:1000)[-str0], Rank) else 1:Rank,
Ainit = NULL, Alpha = 0.5, Bestof = 1, Cinit = NULL,
Etamat.colmax = 10,
sd.Ainit = 0.02, sd.Cinit = 0.02, str0 = NULL,
noRRR = ~1, Norrr = NA,
noWarning = FALSE,
trace = FALSE, Use.Init.Poisson.QO = FALSE,
checkwz = TRUE, Check.rank = TRUE, Check.cm.rank = TRUE,
wzepsilon = .Machine$double.eps^0.75, ...)
A list with components matching the input names. Some error checking is done, but not much.
The numerical rank \(R\) of the model.
Must be an element from the set
{1,2,...,min(\(M\),p2)}. Here, the
vector of explanatory variables x is partitioned
into (x1,x2), which is of dimension
p1+p2. The variables making up x1 are
given by the terms in noRRR
argument, and the rest of
the terms comprise x2.
Character string indicating what algorithm is to be used. The default is the first one.
Logical indicating whether corner constraints are
to be used. This is one method for ensuring a unique solution.
If TRUE
, Index.corner
specifies the \(R\)
rows of the constraint matrices that are use as the corner
constraints, i.e., they hold an order-\(R\) identity matrix.
Logical indicating whether uncorrelated latent variables are to
be used. This is normalization forces the variance-covariance
matrix of the latent variables to be diag(Rank)
, i.e.,
unit variance and uncorrelated. This constraint does not lead
to a unique solution because it can be rotated.
Yet to be done.
Logical indicating whether a singular value decomposition
of the outer product is to computed. This is another
normalization which ensures uniqueness. See the argument
Alpha
below.
Specifies the \(R\) rows of the constraint matrices that are used for the corner constraints, i.e., they hold an order-\(R\) identity matrix.
The exponent in the singular value decomposition that is used in
the first part: if the SVD is
\(U D V^T\) then the
first and second parts are
\(U D^{\alpha}\)
and
\(D^{1-\alpha} V^T\) respectively.
A value of 0.5 is `symmetrical'.
This argument is used only when Svd.arg=TRUE
.
Integer. The best of Bestof
models fitted is
returned. This argument helps guard against local solutions by
(hopefully) finding the global solution from many fits. The
argument works only when the function generates its own initial
value for C, i.e., when C is not passed
in as initial values.
Initial A and C matrices which may speed up convergence. They must be of the correct dimension.
Positive integer, no smaller than Rank
. Controls the amount
of memory used by .Init.Poisson.QO()
. It is the
maximum number of columns allowed for the pseudo-response and
its weights. In general, the larger the value, the better the
initial value. Used only if Use.Init.Poisson.QO=TRUE
.
Integer vector specifying which rows
of the estimated constraint matrices (A) are
to be all zeros.
These are called structural zeros.
Must not have any common value with Index.corner
,
and be a subset of the vector 1:M
.
The default, str0 = NULL
, means no structural zero rows
at all.
Standard deviation of the initial values for the elements
of A and C.
These are normally distributed with mean zero.
This argument is used only if Use.Init.Poisson.QO = FALSE
.
Formula giving terms that are not to be included
in the reduced-rank regression.
That is, noRRR
specifes which explanatory variables
are in the \(x_1\) vector of rrvglm
,
and the rest go into \(x_2\).
The \(x_1\) variables constitute
the \(\bold{B}_1\) matrix in Yee and Hastie (2003).
Those \(x_2\) variables which are subject to the reduced-rank
regression correspond to the \(\bold{B}_2\)
matrix.
Set noRRR = NULL
for the reduced-rank regression to
be applied to every explanatory variable including the intercept.
Defunct. Please use noRRR
.
Use of Norrr
will become an error soon.
Logical indicating if output should be produced for each iteration.
Logical indicating whether the .Init.Poisson.QO()
should be used to obtain initial values for the C.
The function uses a new method that can work well if the data
are Poisson counts coming from an equal-tolerances QRR-VGLM
(CQO). This option is less realistic for RR-VGLMs compared
to QRR-VGLMs.
logical indicating whether the diagonal elements of the working
weight matrices should be checked whether they are sufficiently
positive, i.e., greater than wzepsilon
. If not, any
values less than wzepsilon
are replaced with this value.
Same as vglm.control
.
Ignored for VGAM 0.9-7 and higher.
Small positive number used to test whether the diagonals of the working weight matrices are sufficiently positive.
Variables in ... are passed into
vglm.control
.
If the derivative algorithm is used then ... are also passed
into rrvglm.optim.control
;
and
if the alternating algorithm is used then ... are also passed
into valt.control
.
In the above, \(R\) is the Rank
and
\(M\) is the number of linear predictors.
Thomas W. Yee
VGAM supports three normalizations to ensure a unique
solution. Of these, only corner constraints will work with
summary
of RR-VGLM objects.
Yee, T. W. and Hastie, T. J. (2003). Reduced-rank vector generalized linear models. Statistical Modelling, 3, 15--41.
rrvglm
,
rrvglm.optim.control
,
rrvglm-class
,
vglm
,
vglm.control
,
cqo
.
if (FALSE) {
set.seed(111)
pneumo <- transform(pneumo, let = log(exposure.time),
x3 = runif(nrow(pneumo))) # Unrelated
fit <- rrvglm(cbind(normal, mild, severe) ~ let + x3,
multinomial, pneumo, Rank = 1, Index.corner = 2)
constraints(fit)
vcov(fit)
summary(fit)
}
Run the code above in your browser using DataLab