Linear Quantile Mixed Models Fitting by Gradient Search

Share:

Description

This function controls the arguments to be passed to routines written in C for LQMM estimation. The optimization algorithm is based on the gradient of the Laplace log–likelihood (Bottai, Orsini and Geraci, 2014; Geraci and Bottai, 2014).

Usage

1
2
lqmm.fit.gs(theta_0, x, y, z, weights, cov_name, V, W, sigma_0, tau,
	group, control)

Arguments

theta_0

starting values for the linear predictor.

x

the model matrix for fixed effects (see details).

y

the model response (see details).

z

the model matrix for random effects (see details).

weights

the weights used in the fitting process (see details).

cov_name

variance–covariance matrix of the random effects. Default is pdIdent. See details.

V

nodes of the quadrature.

W

weights of the quadrature.

sigma_0

starting value for the scale parameter.

tau

the quantile(s) to be estimated.

group

the grouping factor (see details).

control

list of control parameters used for optimization (see lqmmControl).

Details

In lqmm, see argument fit for generating a list of arguments to be called by this function; see argument covariance for alternative variance–covariance matrices.

NOTE: the data should be ordered by group when passed to lqmm.fit.gs (such ordering is performed by lqmm).

Value

An object of class "list" containing the following components:

theta

a vector of coefficients, including the "raw" variance–covariance parameters (see VarCorr.lqmm).

scale

the scale parameter.

gradient

the gradient.

logLik

the log–likelihood.

opt

number of iterations when the estimation algorithm stopped for lower (theta) and upper (scale) loop.

.

Author(s)

Marco Geraci

References

Bottai M, Orsini N, Geraci M. (2014). A gradient search maximization algorithm for the asymmetric Laplace likelihood, Journal of Statistical Computation and Simulation (in press).

Geraci M and Bottai M (2014). Linear quantile mixed models. Statistics and Computing, 24(3), 461–479.

See Also

lqmm

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
set.seed(123)

M <- 50
n <- 10
test <- data.frame(x = runif(n*M,0,1), group = rep(1:M,each=n))
test$y <- 10*test$x + rep(rnorm(M, 0, 2), each = n) + rchisq(n*M, 3)
lqmm.ls <- lqmm(fixed = y ~ x, random = ~ 1, group = group,
	data = test, fit = FALSE)

do.call("lqmm.fit.gs", lqmm.ls)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.