| mhglm | R Documentation |
mhglm is used to fit a moment hierarchical generalized linear model of one level.
mhglm_ml is used to fit a moment hierarchical generalized linear model of arbitrary number of levels
(including one level).
mhglm(formula, family = gaussian, data, weights, subset,
na.action, start = NULL, etastart, mustart, offset,
control = list(), model = TRUE, method = "mhglm.fit",
x = FALSE, z = FALSE, y = TRUE, group = TRUE,
contrasts = NULL)
mhglm.fit(x, z, y, group, weights = rep(1, nobs),
start = NULL, etastart = NULL, mustart = NULL,
offset = rep(0, nobs), family = gaussian(),
control = list(), intercept = TRUE, dispersion = NULL)
mhglm_ml(formula, family = gaussian, data, weights, subset,
na.action, start = NULL, etastart, mustart, offset,
control = list(), model = TRUE, method = "mhglm_ml.fit",
x = FALSE, z = FALSE, y = TRUE, group = TRUE,
contrasts = NULL)
mhglm_ml.fit(x, z, y, group, weights = rep(1, nobs),
start = NULL, etastart = NULL, mustart = NULL,
offset = rep(0, nobs), family = gaussian(),
control = list(), intercept = TRUE)
formula, family, data, weights, subset, na.action, start, etastart, mustart, offset, model, contrasts, intercept |
These arguments
are analogous to the similarly-named arguments for the |
control |
a list of parameters for controlling the fitting
process. For |
method |
the method to be used in fitting the model. The default
method |
x, z, y, group |
For For For |
dispersion |
If |
These functions are analogues of glm and
glm.fit, meant to be used for fitting hierarchical
generalized linear models. A typical predictor has the form
response ~ terms + (reterms | group) where
response is the (numeric) response vector, terms is a
series of terms which specifies a linear predictor for
response, reterms is a series of terms with random
coefficients (effects), and group is a grouping factor; observations
with the same grouping factor share the same random effects.
mhglm and mhglm.fit only allow one random effect term,
along with a single level of hierarchy.
mghlm_ml and mhglm_ml.fit allow multiple random effect terms so
long as levels of random effects are hierarchically nested. If the random
effect design matrices are the same for each level, a predictor has the form
response ~ terms + (reterms | g1/.../gQ). If the random effects design
matrices differ from level to level, colons are used to delineate the nesting
structure; for example,
response ~ fe + (re1 | g1) + (re2 | g2:g1) + (re3 | g3:g2:g1).
mhglm allows || in the formula
response ~ terms + (reterms || group) to indicate that random effects
are independent, that is the random effects covariance matrix has non-zero
value only on its diagonal.
mhglm_ml currently does not support ||, to indicate indpenedent
random effects, set control=list(diagcov = TRUE).
mhglm returns an object of class inheriting from "mhglm".
mhglm_ml returns an object of class inheriting from "mhglm_ml".
The function summary can be used to obtain or print a summary
of the results.
The generic accessor functions fixef, ranef,
VarCorr, sigma, fitted.values and
residuals can be used to extract various useful features of the
value returned by mhglm or mhglm_ml.
If the moment-based random effect covariance is not positive-semidefinite, then a warning will be issued, and a projection of the estimate to the positive-semidefinite cone will be used instead.
P. O. Perry (2017) "Fast moment-based estimation for hierarchical models."
N. Zhang, K. Schmaus, and P. O. Perry (2018) "Fitting deeply-nested hierarchical models to a large book review dataset using moment-based estimators."
terms.mhglm, model.matrix.mhglm, and
predict.mhglm for mhglm methods, and the
generic functions fitted.values, residuals,
summary, vcov, and weights.
Generic functions fixef, ranef,
VarCorr, and sigma for features
related to mixed effect models.
glmer (package lme4) for
fitting generalized linear mixed models with likelihood-based estimates.
if (require("lme4")) {
## The following examples are adapted from lme4:
(fm1 <- mhglm(Reaction ~ Days + (Days | Subject), gaussian, sleepstudy))
(fm2 <- mhglm(Reaction ~ Days + (Days || Subject), gaussian, sleepstudy))
(gm <- mhglm(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial))
## The following examples are for multilevel models
g_data <- mhglm_sim(n = 30, m_per_level = c(10, 5, 2), sd_intercept = c(1, 1, 1),
sd_slope = c(1, 1, 1), family = "gaussian", seed = 12345)
(m1 <- mhglm_ml(y ~ 1 + x + (1 + x | g1/g2/g3), gaussian, g_data))
# or equivalent
(m2 <- mhglm_ml(y ~ 1 + x + (1 + x | g1) + (1 + x | g2:g1) + (1 + x | g3:g2:g1),
gaussian, g_data))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.