#' @export
get_predictions.clm2 <- function(model,
data_grid = NULL,
terms = NULL,
ci_level = 0.95,
type = NULL,
typical = NULL,
vcov = NULL,
vcov_args = NULL,
condition = NULL,
interval = "confidence",
bias_correction = FALSE,
link_inverse = insight::link_inverse(model),
model_info = NULL,
verbose = TRUE,
...) {
# for predict.clm2, we need all unique levels of all included variables
model_data <- insight::get_data(model, verbose = FALSE)
prediction_data <- model_data[insight::find_variables(model, flatten = TRUE)]
prediction_grid <- as.data.frame(expand.grid(lapply(prediction_data, unique)))
# predictions, returned as vector
prdat <- stats::predict(model, newdata = prediction_grid)
# bind predictions to grid
prediction_grid <- cbind(predicted = prdat, prediction_grid)
# we now have predicted values for more observations than we need. We now
# "match" the returned prediction grid with our initial data grid, but first
# need to make sure that we remove columns in data_grid that do not exist in
# prediction_grid
data_grid <- data_grid[colnames(data_grid) %in% colnames(prediction_grid)]
data_grid <- datawizard::data_match(prediction_grid, data_grid)
colnames(data_grid)[colnames(data_grid) == insight::find_response(model)] <- "response.level"
# No CI
data_grid$conf.low <- NA
data_grid$conf.high <- NA
data_grid
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.