keepef is used to remove fixed and random effects from repsonse
variable based on a (linear) mixed-effects model object generated by the
1 2 3 4 5 6 7 8
a model object.
either a character vector of coefficient labels (fixed effects) or a corresponding numeric index vector.
a named list of integer vectors representing random effects.
logical. Should lower-order terms associated with the
logical. Should the intercept be kept (default) or be removed?
model is an object returned by a model fitting
function of the lme4 package, i.e.,
linear mixed-effects models or
glmer for generalised
linear mixed-effects models.
For more on details on mixed-effects models and partial effects, see
the help page of
The response vector in a (generalised) linear mixed model
can be represented as a sum of fixed effects,
random effects, and residuals.
remef "removes" a subset of these
The valid character strings for the parameter
correspond to the names of the coeffcients in the model summary output.
Note that the name of a coefficient is not necessarily identical to the
name of a predictor variable (e.g., factor variables). Furthermore,
a single variable in a model formula can result in multiple
model coefficients (e.g., polynomial contrasts). The names of a model
fit can be extracted with the function
The character string passed to
fix must not include the
"(Intercept)"). Use the parameter
fix is a numeric index vector, the indices correspond
to the order of coefficients in the model. For a fitted model object,
effect_labels returns the names of the coefficients in their
order. Note that
fix must not include the index of the
1). Use the parameter
ran is used to specify random effects.
The names of the list passed to
ran correspond to the names
of the random factors in the model summary.
Alternatively, the string
"all" can pe passed to
which results in the selection of all random effects.
FALSE, only the specified fixed effects in
fix are used.
TRUE, associated effects of lower
order are kept too.
if a model fit has the terms
terms of lower order relative to
B. Terms of lower order relative to
inverse is only important for generalised
linear mixed-effects models (in contrast to linear mixed-effects
models). In the former type of statistical models, a link function
is specified to transform the response variable.
partial is used with such a type of model, the resulting
values will be in the metric of the variable after after the
transformation. For example, if the response is binary and a model with
the binomial distribution using the logit link funtion is fit,
partial will return
inverse = TRUE in which case logits will be
transformed to proportions after the removal of effects.
keepef returns a numeric vector. The length of the
vector is equal to the number of observations of the model.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
library(lme4) fm1 <- lmer(Reaction ~ 1 + Days + (1 + Days | Subject), sleepstudy) summary(fm1) # keep fixed effect of 'Days' (and the intercept), remove all other effects k1_1 <- keepef(fm1, fix = "Days") # keep fixed effect of 'Days' but not the intercept k1_2 <- partial(fm1, fix = "Days", keep.intercept = FALSE) # remove random slope of 'Days' (random factor: 'Subject') k1_3 <- keepef(fm1, ran = list(Subject = "Days")) # keep fixed effect of 'Days' and both random effects k1_4 <- keepef(fm1, fix = "Days", ran = list(Subject = c("(Intercept)", "Days"))) # equivalent command with numeric indices k1_5 <- keepef(fm1, fix = 2, ran = list(Subject = c(1, 2))) # remove all effects (and the intercept) k1_6 <- keepef(fm1, keep.intercept = FALSE) all.equal(unname(residuals(fm1)), k1_6) fm2 <- glmer(r2 ~ 1 + btype + Anger + (1 + Anger || item) + (1 | id), VerbAgg, family = binomial) summary(fm2) # keep fixed effects of 'btype' # (since 'btype' is a three-level factor, two coefficients are estimated, 'btypescold' and 'btypeshout') k2_1 <- keepef(fm2, fix = c("btypescold", "btypeshout")) # extract coefficient names related to 'btype' term2coef(fm2, "btype") #' # since `fm2` is a binomial GLMM, the partial effects are logits, # the parameter `inverse` can be used to return probablities instead k2_1_prob <- keepef(fm2, fix = c("btypescold", "btypeshout"), inverse = TRUE) # keep all random effects # (Note that the order of random effects for the random factor 'item' is: # 'Anger', '(Intercept)'; see `summary(fm2)`) k2_2 <- keepef(fm2, ran = list(item = c(1, 2), id = 1)) k2_3 <- keepef(fm2, ran = "all") # equivalent command fm3 <- lmer(angle ~ 1 + recipe * temperature + (1 | recipe:replicate), cake) summary(fm3) # keep the random intercept k3_1 <- partial(fm3, ran = list("recipe:replicate" = 1)) # keep fixed effect 'recipeB:temperature^4' and the lower-order ones (and the intercept) k3_2 <- keepef(fm3, fix = "recipeB:temperature^4", grouping = TRUE) # these are the lower-order terms of 'recipeB:temperature^4' asef(fm3, "recipeB:temperature^4", order = "lower") # keep all polynomials of 'temperature' k3_3 <- keepef(fm3, fix = term2coef(fm3, "temperature"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.