Nothing
library(flexdashboard) library(easystats) # Since not all regression model are supported across all packages, make the # dashboard chunks more fault-tolerant. E.g. a model might be supported in # `{parameters}`, but not in `{report}`. # # For this reason, `error = TRUE` knitr::opts_chunk$set( error = TRUE, out.width = "100%" ) # helper function for printing `{report}` outputs bracket_to_parantheses <- function(text) { gsub("]", ")", gsub("[", "(", text, fixed = TRUE), fixed = TRUE) }
# Get user-specified model data model <- params$model # Is it supported by `{easystats}`? Skip evaluation of the following chunks if not. is_supported <- insight::is_model_supported(model) if (!is_supported) { unsupported_message <- sprintf( "Unfortunately, objects of class `%s` are not yet supported in {easystats}.\n For a list of supported models, see `insight::supported_models()`.", class(model)[1] ) }
check_model_args <- c(list(model), params$check_model_args) # add verbose, if not done yet if (is.null(check_model_args$verbose)) check_model_args$verbose <- FALSE tryCatch( { do.call(performance::check_model, check_model_args) }, error = function(e) { cat(insight::format_message( "\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:", paste0("\n`", e$message, "`") )) } )
cat(unsupported_message)
# {performance} performance_args <- c(list(model), params$performance_args) # add verbose, if not done yet if (is.null(performance_args$verbose)) performance_args$verbose <- FALSE table_performance <- do.call(performance::performance, performance_args) print_md(table_performance, layout = "vertical", caption = NULL)
cat(unsupported_message)
For interpretation of performance metrics, please refer to this documentation.
# `{parameters}` parameters_args <- c(list(model), params$parameters_args) # add verbose, if not done yet if (is.null(parameters_args$verbose)) parameters_args$verbose <- FALSE table_parameters <- do.call(parameters::parameters, parameters_args) plot(table_parameters)
cat(unsupported_message)
print_md(table_parameters, caption = NULL)
cat(unsupported_message)
To find out more about table summary options, please refer to this documentation.
# {modelbased} int_terms <- find_interactions(model, component = "conditional", flatten = TRUE) con_terms <- find_variables(model)$conditional if (is.null(int_terms)) { model_terms <- con_terms } else { model_terms <- clean_names(int_terms) int_terms <- unique(unlist(strsplit(clean_names(int_terms), ":", fixed = TRUE))) model_terms <- c(model_terms, setdiff(con_terms, int_terms)) } # check some exceptions here: logistic regression models with factor response # usually require the response to be included in the model, else `get_modelmatrix()` # fails, which is required to compute SE/CI for `get_predicted()` response <- find_response(model) minfo <- model_info(model) model_data <- get_data(model) include_response <- minfo$is_binomial && minfo$is_logit && is.factor(model_data[[response]]) text_modelbased <- tryCatch( { lapply(unique(model_terms), function(i) { dgrid <- get_datagrid( model, by = i, range = "grid", preserve_range = FALSE, verbose = FALSE, include_response = include_response ) estimate_expectation(model, data = dgrid, verbose = FALSE) }) }, error = function(e) { cat(insight::format_message( "\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:", paste0("\n`", e$message, "`") )) NULL } ) if (!is.null(text_modelbased)) { ggplot2::theme_set(theme_modern()) # all_plots <- lapply(text_modelbased, function(i) { # out <- do.call(visualisation_recipe, c(list(i), modelbased_args)) # plot(out) + ggplot2::ggtitle("") # }) all_plots <- lapply(text_modelbased, function(i) { out <- visualisation_recipe(i, show_data = "none") plot(out) + ggplot2::ggtitle("") }) see::plots(all_plots, n_columns = round(sqrt(length(text_modelbased)))) }
cat(unsupported_message)
if (!is.null(text_modelbased)) { for (i in text_modelbased) { tmp <- print_md(i) tmp <- gsub("Variable predicted", "\nVariable predicted", tmp, fixed = TRUE) tmp <- gsub("Predictors modulated", "\nPredictors modulated", tmp, fixed = TRUE) tmp <- gsub("Predictors controlled", "\nPredictors controlled", tmp, fixed = TRUE) print(tmp) } }
cat(unsupported_message)
# {report} text_report <- tryCatch( { report(model, verbose = FALSE) }, error = function(e) { cat(insight::format_message( "\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:", paste0("\n`", e$message, "`") )) NULL } ) text_report_performance <- tryCatch( { report_performance(model, verbose = FALSE) }, error = function(e) { cat(insight::format_message( "\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:", paste0("\n`", e$message, "`") )) NULL } ) if (!is.null(text_report)) { cat(bracket_to_parantheses(text_report)) cat("\n") } if (!is.null(text_report_performance)) { cat(bracket_to_parantheses(text_report_performance)) }
cat(unsupported_message)
model_info_data <- insight::model_info(model, verbose = FALSE) model_info_data <- datawizard::data_to_long(as.data.frame(insight::compact_list(model_info_data))) DT::datatable(model_info_data)
cat(unsupported_message)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.