Description Usage Arguments Details Value See Also Examples

`partial`

is used to calculate partial effects of a (generalized)
linear mixed-effects model fitted by a function of the `lme4`

package.

1 2 3 4 5 6 7 8 9 |

`model` |
a model object. |

`fix` |
either a character vector of coefficient labels (fixed effects) or a corresponding numeric index vector. |

`ran` |
a named list of integer vectors representing random effects. |

`grouping` |
logical. Should terms associated with the ones
in |

`keep.intercept` |
logical. Should the intercept be kept (default) or be removed? |

`inverse` |
logical. If |

`keep` |
logical. Should the specified effects be removed (default) or be kept? |

`model`

is an object returned by a model fitting
function of the lme4 package.
The function works with both linear mixed-effects models
(returned by the function `lmer`

) and generalized linear
mixed-effects models (`glmer`

).

The model formula for a (generalised) linear mixed-effects model can be written as

*
y = X * beta + Z * b + epsilon*

where *y* is the vector including the response values,
*X* is the (fixed-effects) design matrix, *beta*
is the vector of population coefficients (fixed effecs),
*Z* is the random-effects design matrix, *b* is
a vector of random effects, and *epsilon* is a
vector of random error terms (residuals).

The response vector can be represented as a sum of fixed effects,
random effects, and residuals. In order to construct partial effects,
the function `partial`

either "removes" effects (if
`keep = FALSE`

, see also `remef`

) or "keeps"
effects (if `keep = TRUE`

, see also `keepef`

).
In both cases, the function does keep the residuals. Hence,
the function does not return fitted values.

The function removes a subset of fixed and random effects from the response variable. If all effects are removed, only the residuals remain.

The valid *character* strings for the parameter `fix`

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 `effect_labels`

.
The character string passed to `fix`

must not include the
intercept (`"(Intercept)"`

). Use the parameter
`keep.intercept`

instead.

If `fix`

is a *numeric* index vector, the indices correspond
to the order of coefficients in the model. For a fitted model object,
the `effect_labels`

returns the names of the coefficients in their
order. Note that `fix`

must not include the index of the
intercept (usually `1`

). Use the parameter `keep.intercept`

instead.

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 `ran`

which results in the selection of all random effects.

If `grouping`

is `FALSE`

, only the specified fixed effects in
`fix`

are used.
If `grouping`

is `TRUE`

, associated effects of lower
*or* higher order are used too. The actual behaviour of the
function depends on the `keep`

parameter: If `keep = FALSE`

(effects are "removed"), `grouping`

specifies whether effects of
higher order should be selected and removed as well. Otherwise, if
`keep = TRUE`

(effects are "kept"), `grouping`

specifies
whether effects of lower order should be selected and kept as well.
For example,
if a model fit has the terms `A`

, `B`

, `C`

,
`A:B`

, `A:C`

, `B:C`

, and `A:B:C`

, terms of
higher order relative to `A`

are `A:B`

, `A:C`

,
and `A:B:C`

. Terms of lower order relative to `A:B`

are
`A`

and `B`

.

The parameter `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.
If `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,
the function `partial`

will return
logits unless `inverse = TRUE`

in which case logits will be
transformed to proportions after the removal of effects.

`partial`

returns a numeric vector. The length equals
the number of observations in the model.

`remef`

for a wrapper with `keep = FALSE`

and `keepef`

for a wrapper with `keep = TRUE`

.

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 58 59 60 61 62 63 64 65 66 | ```
library(lme4)
fm1 <- lmer(Reaction ~ 1 + Days + (1 + Days | Subject), sleepstudy)
summary(fm1)
# remove fixed effect of 'Days'
p1_1 <- partial(fm1, fix = "Days")
# remove fixed effect of 'Days' and the intercept
p1_2 <- partial(fm1, fix = "Days", keep.intercept = FALSE)
# remove random slope of 'Days' (random factor: 'Subject')
p1_3 <- partial(fm1, ran = list(Subject = "Days"))
# remove fixed effect of 'Days' and both random effects
p1_4 <- partial(fm1, fix = "Days", ran = list(Subject = c("(Intercept)", "Days")))
# equivalent command with numeric indices
p1_5 <- partial(fm1, fix = 2, ran = list(Subject = c(1, 2)))
# keep the fixed effect of 'Days' (and the intercept), remove all other effects
p1_6 <- partial(fm1, fix = "Days", keep = FALSE)
# remove all effects
p1_7 <- partial(fm1, fix = 2, ran = "all", keep.intercept = FALSE)
p1_8 <- partial(fm1, keep = TRUE, keep.intercept = FALSE) # equivalent command
all.equal(unname(residuals(fm1)), p1_7)
fm2 <- glmer(r2 ~ 1 + btype + Anger + (1 + Anger || item) + (1 | id), VerbAgg, family = binomial)
summary(fm2)
# remove fixed effects of 'btype'
# (since 'btype' is a three-level factor, two coefficients are estimated, 'btypescold' and 'btypeshout')
p2_1 <- partial(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
p2_1_prob <- partial(fm2, fix = c("btypescold", "btypeshout"), inverse = TRUE)
# remove all random effects
# (Note that the order of random effects for the random factor 'item' is:
# 'Anger', '(Intercept)'; see `summary(fm2)`)
p2_2 <- partial(fm2, ran = list(item = c(1, 2), id = 1))
p2_3 <- partial(fm2, ran = "all") # equivalent command
fm3 <- lmer(angle ~ 1 + recipe * temperature + (1 | recipe:replicate), cake)
summary(fm3)
# remove the random intercept
p3_1 <- partial(fm3, ran = list("recipe:replicate" = 1))
# remove fixed effect of 'recipeB' and all higher-order terms (interactions)
p3_2 <- partial(fm3, fix = "recipeB", grouping = TRUE)
# these are the higher-order terms of 'recipeB'
asef(fm3, "recipeB", order = "higher")
# keep fixed effect 'recipeB:temperature^4' and the lower-order ones (and the intercept)
p3_3 <- 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")
# remove all polynomials of 'temperature'
p3_4 <- partial(fm3, fix = term2coef(fm3, "temperature"))
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.