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).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
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)
are analogous to the similarly-named arguments for the
a list of parameters for controlling the fitting
the method to be used in fitting the model. The default
These functions are analogues of
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
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.fit only allow one random effect term,
along with a single level of hierarchy.
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).
|| 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_ml returns an object of class inheriting from
summary can be used to obtain or print a summary
of the results.
The generic accessor functions
residuals can be used to extract various useful features of the
value returned by
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."
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
library(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.