The function numerically solves the quasi-score equation by a root finding algorithm similar to Fisher's scoring method.
qscoring(qsd, x0, opts = list(), Sigma = NULL, ..., inverted = FALSE,
check = TRUE, cvm = NULL, Iobs = TRUE, pl = 0L,
verbose = FALSE)
object of class QLmodel
(named) numeric vector, the starting parameter
quasi-scoring options, see details
a prespecified variance matrix estimate
further arguments passed to the function covarTx
currently ignored
logical, TRUE
(default), whether to check input arguments
list of covariance models for cross-validation (see prefitCV
)
logical, FALSE
(default), whether to compute the observed quasi-information matrix at the final estimate
numeric, print level, use pl
>0 to print intermediate output
FALSE
(default), otherwise print intermediate output
List of results of quasi-scoring iteration with elements:
integer, why scoring iterations stopped
string, corrsponding to `convergence
`
number of iterations
quasi-deviance value
solution vector
quasi-score vector
quasi-information matrix
starting point
simply: "qscoring
"
equal to "qle
"
The function implements a step-length controlled quasi-scoring iteration with simple bound constraints (see also [1,3]) specifically tailored for quasi-likelihood parameter estimation. Due to the typical nonconvex nature of the (unknown and not further specified) quasi-likelihood function as an objective function one needs some kind of globalization strategy in order to stabilize the descent step and to avoid a premature termination. Therfore, we use the quasi-deviance function as a monitor function (see vignette) though it does not inherit all of the appreciable properties of a true objective function such as among others, for example, identifying appropriate descent directions. However, these are general numerical obsticles in case of pure root finding algorithms and need to be addressed elsewhere.
The quasi-scoring iteration includes both kinds of prediction variances, kriging-based and those derived from a cross-validation (CV) approach,
which account for the uncertainty induced by the quasi-score approximation model. By default kriging variances
are included in the computation during all iterations. If fitted covariance models `cvm
` are supplied by the user
in advance (see prefitCV
), the variances of prediction errors of each statistic are separately evaluated by the proposed CV
approach for each new point. For the price of relatively high computational costs those prediction variances
are intended to increase the robustness against false roots due to simulation and approximation errors of the quasi-score function.
Opposed to this, the user also has the option to carry out a "pure version" of quasi-scoring without accounting for
these errors. This can be set earlier as an option in QLmodel
using dual kriging prediction.
See also covarTx
and mahalDist
for details on how to choose the variance matrix approximation of the statistics.
The following algorithmic options, which can be set by `opts
`, are available:
ftol_stop
: minimum value of the quasi-deviance for stopping the scoring iteration
ftol_abs
: minimum value of the quasi-deviance which is used as a reference value for a local minimizer
xtol_rel
, ftol_rel
: see qle
grad_tol
: upper bound on the quasi-score vector components,
testing for a local minimum of the quasi-deviance in case of a line search failure
score_tol
: upper bound on the quasi-score vector components, testing for an approximate root
maxiter
: maximum allowed number of iterations
xscale
: numeric, default is vector of 1, typical magnitudes of vector components of `x0
`, e.g. the order of upper bounds of the parameter space
fscale
: numeric, default is vector of 1, typical magnitudes of quasi-score components
pl
: print level (>=0), use pl
=10 to print individual
iterates and further values
# NOT RUN {
data(normal)
QS <- qscoring(qsd,x0=c("mu"=3.5,"sigma"=0.5),
opts=list("score_tol"=1e-4))
# }
Run the code above in your browser using DataLab