Compute estimated marginal means for specified factors.
marginalmeans(
model,
variables = NULL,
variables_grid = NULL,
vcov = NULL,
type = "response"
)
Model object
Categorical predictors over which to compute marginal means
(character vector). NULL
calculates marginal means for all logical,
character, or factor variables in the dataset used to fit model
.
Categorical predictors used to construct the
prediction grid over which adjusted predictions are averaged (character
vector). NULL
creates a grid with all combinations of all categorical
predictors. This grid can be very large when there are many variables and
many response levels, so it is advisable to select a limited number of
variables in the variables
and variables_grid
arguments.
Matrix or boolean
FALSE: does not compute unit-level standard errors.
TRUE: computes unit-level standard errors using the default vcov(model)
variance-covariance matrix.
Named square matrix: computes standard errors with a user-supplied variance-covariance matrix. This matrix must be square and have dimensions equal to the number of coefficients in get_coef(model)
.
Type(s) of prediction (string or character vector). This can differ based on the model type, but will typically be a string such as: "response", "link", "probs", or "zero".
Data frame of marginal means with one row per variable-value combination.
This function begins by calling the predictions
function to obtain a
grid of predictors, and adjusted predictions for each cell. The grid
includes all combinations of the categorical variables listed in the
variables
and variables_grid
arguments, or all combinations of the
categorical variables used to fit the model if variables_grid
is NULL
.
In the prediction grid, numeric variables are held at their means.
After constructing the grid and filling the grid with adjusted predictions,
marginalmeans
computes marginal means for the variables listed in the
variables
argument, by average across all categories in the grid.
marginalmeans
can only compute standard errors for linear models, or for
predictions on the link scale, that is, with the type
argument set to
"link".
The marginaleffects
website compares the output of this function to the
popular emmeans
package, which provides similar but more advanced
functionality: https://vincentarelbundock.github.io/marginaleffects/
# NOT RUN {
library(marginaleffects)
# Convert numeric variables to categorical before fitting the model
dat <- mtcars
dat$cyl <- as.factor(dat$cyl)
dat$am <- as.logical(dat$am)
mod <- lm(mpg ~ hp + cyl + am, data = dat)
# Compute and summarize marginal means
mm <- marginalmeans(mod)
summary(mm)
# }
Run the code above in your browser using DataLab