View source: R/get_data_for_grid.R
get_data_for_grid | R Documentation |
Get raw data for plotting with model predictions
get_data_for_grid(grid, model, residualize = FALSE, collapse_by = FALSE, ...)
## S3 method for class 'data.frame'
get_data_for_grid(
grid,
model,
residualize = FALSE,
collapse_by = FALSE,
pred_name,
...
)
## S3 method for class 'ggeffects'
get_data_for_grid(
grid,
model,
residualize = FALSE,
collapse_by = FALSE,
protect_names = TRUE,
...
)
## S3 method for class 'emmGrid'
get_data_for_grid(
grid,
model,
residualize = FALSE,
collapse_by = FALSE,
protect_names = TRUE,
...
)
## S3 method for class 'predictions'
get_data_for_grid(grid, model, residualize = FALSE, collapse_by = FALSE, ...)
grid |
A data grid with predictions |
model |
The statistical model |
residualize |
Should data be residualized? |
collapse_by |
Name of grouping variable to collaple across. If |
... |
Args passed from / to other functions. |
pred_name |
Name of column that has the predictions in the data grid |
protect_names |
Logical, if |
data("mtcars")
mtcars <- mtcars |> transform(cyl = factor(cyl))
mod <- lm(mpg ~ hp + cyl, data = mtcars[1:10, ])
nd <- expand.grid(
hp = seq(50, 350, by = 50),
cyl = "4"
)
nd$predicted_mpg <- predict(mod, newdata = nd)
get_data_for_grid(nd, mod)
get_data_for_grid(nd, mod, residualize = TRUE, pred_name = "predicted_mpg")
library(ggplot2)
ggplot(nd, aes(hp, predicted_mpg)) +
geom_line() +
geom_point(aes(y = mpg, color = "Raw"),
data = get_data_for_grid(nd, mod)
) +
geom_point(aes(color = "Residualized"),
data = get_data_for_grid(nd, mod, residualize = TRUE, pred_name = "predicted_mpg")
) +
labs(
title = "Partial residual plot",
color = "Data"
)
## Support of data-grid packages ------
# - ggeffects
# - emmeans
# - marginaleffects
pred_ggeffects <- ggeffects::ggpredict(mod, c("hp [50:350, by = 50]", "cyl [4]"))
get_data_for_grid(pred_ggeffects, residualize = TRUE)
at <- list(hp = seq(50, 350, by = 50), cyl = "4")
pred_emmeans <- emmeans::emmeans(mod, ~ hp + cyl, at = at)
get_data_for_grid(pred_emmeans, mod, residualize = TRUE)
# pred_marginaleffects <- marginaleffects::predictions(mod, newdata = nd)
# get_data_for_grid(pred_marginaleffects, residualize = TRUE)
## Collapes across group ------
fm1 <- lme4::lmer(angle ~ temperature + (1 | recipe),
data = cake
)
pred_ggeffects <- ggeffects::ggpredict(fm1, c("temperature", "recipe"))
nd <- marginaleffects::datagrid(
temperature = unique(cake$temperature),
model = fm1
)
pred_marginaleffects <- marginaleffects::predictions(fm1, newdata = nd)
get_data_for_grid(pred_marginaleffects, collapse_by = TRUE)
# get_data_for_grid(pred_marginaleffects, collapse_by = TRUE, residualize = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.