Title:  Easy Access to Model Information for Various Model Objects 

Description:  A tool to provide an easy, intuitive and consistent access to information contained in various R models, like model formulas, model terms, information about random effects, data that was used to fit the model or data from response variables. 'insight' mainly revolves around two types of functions: Functions that find (the names of) information, starting with 'find_', and functions that get the underlying data, starting with 'get_'. The package has a consistent syntax and works with many different model objects, where otherwise functions to access these information are missing. 
Authors:  Daniel Lüdecke [aut, cre] (<https://orcid.org/0000000288953206>, @strengejacke), Dominique Makowski [aut, ctb] (<https://orcid.org/0000000153759967>, @Dom_Makowski), Indrajeet Patil [aut, ctb] (<https://orcid.org/0000000319956531>, @patilindrajeets), Philip Waggoner [aut, ctb] , Mattan S. BenShachar [aut, ctb] , Brenton M. Wiernik [aut, ctb] (<https://orcid.org/0000000195606336>, @bmwiernik), Vincent ArelBundock [aut, ctb] , Etienne Bacher [aut, ctb] , Alex Hayes [rev] , Grant McDermott [ctb] , Rémi Thériault [ctb] (<https://orcid.org/0000000343156788>, @rempsyc), Alex Reinhart [ctb] 
Maintainer:  Daniel Lüdecke <[email protected]> 
License:  GPL3 
Version:  0.20.4.3 
Built:  20240910 07:28:31 UTC 
Source:  https://github.com/easystats/insight 
Small helper that checks if all objects are supported (regression) model objects and of same class.
all_models_equal(..., verbose = FALSE) all_models_same_class(..., verbose = FALSE)
all_models_equal(..., verbose = FALSE) all_models_same_class(..., verbose = FALSE)
... 
A list of objects. 
verbose 
Toggle off warnings. 
A logical, TRUE
if x
are all supported model objects
of same class.
data(mtcars) data(sleepstudy, package = "lme4") m1 < lm(mpg ~ wt + cyl + vs, data = mtcars) m2 < lm(mpg ~ wt + cyl, data = mtcars) m3 < lme4::lmer(Reaction ~ Days + (1  Subject), data = sleepstudy) m4 < glm(formula = vs ~ wt, family = binomial(), data = mtcars) all_models_same_class(m1, m2) all_models_same_class(m1, m2, m3) all_models_same_class(m1, m4, m2, m3, verbose = TRUE) all_models_same_class(m1, m4, mtcars, m2, m3, verbose = TRUE)
data(mtcars) data(sleepstudy, package = "lme4") m1 < lm(mpg ~ wt + cyl + vs, data = mtcars) m2 < lm(mpg ~ wt + cyl, data = mtcars) m3 < lme4::lmer(Reaction ~ Days + (1  Subject), data = sleepstudy) m4 < glm(formula = vs ~ wt, family = binomial(), data = mtcars) all_models_same_class(m1, m2) all_models_same_class(m1, m2, m3) all_models_same_class(m1, m4, m2, m3, verbose = TRUE) all_models_same_class(m1, m4, mtcars, m2, m3, verbose = TRUE)
Data frame and Tables Pretty Formatting
apply_table_theme(out, x, theme = "default", sub_header_positions = NULL) export_table( x, sep = "  ", header = "", cross = NULL, empty_line = NULL, digits = 2, protect_integers = TRUE, missing = "", width = NULL, format = NULL, title = NULL, caption = title, subtitle = NULL, footer = NULL, align = NULL, by = NULL, zap_small = FALSE, table_width = NULL, verbose = TRUE, ... )
apply_table_theme(out, x, theme = "default", sub_header_positions = NULL) export_table( x, sep = "  ", header = "", cross = NULL, empty_line = NULL, digits = 2, protect_integers = TRUE, missing = "", width = NULL, format = NULL, title = NULL, caption = title, subtitle = NULL, footer = NULL, align = NULL, by = NULL, zap_small = FALSE, table_width = NULL, verbose = TRUE, ... )
out 
A 
x 
A data frame. May also be a list of data frames, to export multiple data frames into multiple tables. 
theme 
The theme to apply to the table. One of 
sub_header_positions 
A vector of row positions to apply a border to. Currently particular for internal use of other easystats packages. 
sep 
Column separator. 
header 
Header separator. Can be 
cross 
Character that is used where separator and header lines cross. 
empty_line 
Separator used for empty lines. If 
digits 
Number of digits for rounding or significant figures. May also
be 
protect_integers 
Should integers be kept as integers (i.e., without decimals)? 
missing 
Value by which 
width 
Refers to the width of columns (with numeric values). Can be
either 
format 
Name of outputformat, as string. If 
title , caption , subtitle

Table title (same as caption) and subtitle, as strings. If 
footer 
Table footer, as string. For markdownformatted tables, table
footers, due to the limitation in markdown rendering, are actually just a
new text line under the table. If 
align 
Column alignment. For markdownformatted tables, the default

by 
Name of column in 
zap_small 
Logical, if 
table_width 
Numeric, or 
verbose 
Toggle messages and warnings. 
... 
Currently not used. 
A data frame in character format.
The values for caption
, subtitle
and footer
can also be provided
as attributes of x
, e.g. if caption = NULL
and x
has attribute
table_caption
, the value for this attribute will be used as table caption.
table_subtitle
is the attribute for subtitle
, and table_footer
for
footer
.
Vignettes Formatting, printing and exporting tables and Formatting model parameters.
export_table(head(iris)) export_table(head(iris), cross = "+") export_table(head(iris), sep = " ", header = "*", digits = 1) # split longer tables export_table(head(iris), table_width = 30) # colored footers data(iris) x < as.data.frame(iris[1:5, ]) attr(x, "table_footer") < c("This is a yellow footer line.", "yellow") export_table(x) attr(x, "table_footer") < list( c("\nA yellow line", "yellow"), c("\nAnd a red line", "red"), c("\nAnd a blue line", "blue") ) export_table(x) attr(x, "table_footer") < list( c("Without the ", "yellow"), c("newline character ", "red"), c("we can have multiple colors per line.", "blue") ) export_table(x) # columnwidth d < data.frame( x = c(1, 2, 3), y = c(100, 200, 300), z = c(10000, 20000, 30000) ) export_table(d) export_table(d, width = 8) export_table(d, width = c(x = 5, z = 10)) export_table(d, width = c(x = 5, y = 5, z = 10), align = "lcr")
export_table(head(iris)) export_table(head(iris), cross = "+") export_table(head(iris), sep = " ", header = "*", digits = 1) # split longer tables export_table(head(iris), table_width = 30) # colored footers data(iris) x < as.data.frame(iris[1:5, ]) attr(x, "table_footer") < c("This is a yellow footer line.", "yellow") export_table(x) attr(x, "table_footer") < list( c("\nA yellow line", "yellow"), c("\nAnd a red line", "red"), c("\nAnd a blue line", "blue") ) export_table(x) attr(x, "table_footer") < list( c("Without the ", "yellow"), c("newline character ", "red"), c("we can have multiple colors per line.", "blue") ) export_table(x) # columnwidth d < data.frame( x = c(1, 2, 3), y = c(100, 200, 300), z = c(10000, 20000, 30000) ) export_table(d) export_table(d, width = 8) export_table(d, width = c(x = 5, z = 10)) export_table(d, width = c(x = 5, y = 5, z = 10), align = "lcr")
Checking if needed package is installed
check_if_installed( package, reason = "for this function to work", stop = TRUE, minimum_version = NULL, quietly = FALSE, prompt = interactive(), ... )
check_if_installed( package, reason = "for this function to work", stop = TRUE, minimum_version = NULL, quietly = FALSE, prompt = interactive(), ... )
package 
A character vector naming the package(s), whose installation needs to be checked in any of the libraries. 
reason 
A phrase describing why the package is needed. The default is a generic description. 
stop 
Logical that decides whether the function should stop if the needed package is not installed. 
minimum_version 
A character vector, representing the minimum package
version that is required for each package. Should be of same length as

quietly 
Logical, if 
prompt 
If 
... 
Currently ignored 
If stop = TRUE
, and package
is not yet installed, the
function stops and throws an error. Else, a named logical vector is
returned, indicating which of the packages are installed, and which not.
check_if_installed("insight") try(check_if_installed("datawizard", stop = FALSE)) try(check_if_installed("rstanarm", stop = FALSE)) try(check_if_installed("nonexistent_package", stop = FALSE)) try(check_if_installed("insight", minimum_version = "99.8.7")) try(check_if_installed(c("nonexistent", "also_not_here"), stop = FALSE)) try(check_if_installed(c("datawizard", "rstanarm"), stop = FALSE)) try(check_if_installed(c("datawizard", "rstanarm"), minimum_version = c(NA, "2.21.1"), stop = FALSE ))
check_if_installed("insight") try(check_if_installed("datawizard", stop = FALSE)) try(check_if_installed("rstanarm", stop = FALSE)) try(check_if_installed("nonexistent_package", stop = FALSE)) try(check_if_installed("insight", minimum_version = "99.8.7")) try(check_if_installed(c("nonexistent", "also_not_here"), stop = FALSE)) try(check_if_installed(c("datawizard", "rstanarm"), stop = FALSE)) try(check_if_installed(c("datawizard", "rstanarm"), minimum_version = c(NA, "2.21.1"), stop = FALSE ))
This function "cleans" names of model terms (or a character
vector with such names) by removing patterns like log()
or
as.factor()
etc.
clean_names(x, ...) ## S3 method for class 'character' clean_names(x, include_names = FALSE, ...)
clean_names(x, ...) ## S3 method for class 'character' clean_names(x, include_names = FALSE, ...)
x 
A fitted model, or a character vector. 
... 
Currently not used. 
include_names 
Logical, if 
The "cleaned" variable names as character vector, i.e. pattern
like s()
for splines or log()
are removed from
the model terms.
Typically, this method is intended to work on character vectors,
in order to remove patterns that obscure the variable names. For
convenience reasons it is also possible to call clean_names()
also on a model object. If x
is a regression model, this
function is (almost) equal to calling find_variables()
. The
main difference is that clean_names()
always returns a character
vector, while find_variables()
returns a list of character
vectors, unless flatten = TRUE
. See 'Examples'.
# example from ?stats::glm counts < c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome < as.numeric(gl(3, 1, 9)) treatment < gl(3, 3) m < glm(counts ~ log(outcome) + as.factor(treatment), family = poisson()) clean_names(m) # difference "clean_names()" and "find_variables()" data(cbpp, package = "lme4") m < lme4::glmer( cbind(incidence, size  incidence) ~ period + (1  herd), data = cbpp, family = binomial ) clean_names(m) find_variables(m) find_variables(m, flatten = TRUE)
# example from ?stats::glm counts < c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome < as.numeric(gl(3, 1, 9)) treatment < gl(3, 3) m < glm(counts ~ log(outcome) + as.factor(treatment), family = poisson()) clean_names(m) # difference "clean_names()" and "find_variables()" data(cbpp, package = "lme4") m < lme4::glmer( cbind(incidence, size  incidence) ~ period + (1  herd), data = cbpp, family = binomial ) clean_names(m) find_variables(m) find_variables(m, flatten = TRUE)
This function "cleans" names of model parameters by removing
patterns like "r_"
or "b[]"
(mostly applicable to Stan models)
and adding columns with information to which group or component parameters
belong (i.e. fixed or random, count or zeroinflated...)
The main purpose of this function is to easily filter and select model parameters,
in particular of  but not limited to  posterior samples from Stan models,
depending on certain characteristics. This might be useful when only selective
results should be reported or results from all parameters should be filtered
to return only certain results (see print_parameters()
).
clean_parameters(x, ...)
clean_parameters(x, ...)
x 
A fitted model. 
... 
Currently not used. 
The Effects
column indicate if a parameter is a fixed or random effect.
The Component
can either be conditional or zero_inflated. For models
with random effects, the Group
column indicates the grouping factor of the
random effects. For multivariate response models from brms or
rstanarm, an additional Response column is included, to indicate
which parameters belong to which response formula. Furthermore,
Cleaned_Parameter column is returned that contains "human readable"
parameter names (which are mostly identical to Parameter
, except for for
models from brms or rstanarm, or for specific terms like smooth
or splineterms).
A data frame with "cleaned" parameter names and information on effects,
component and group where parameters belong to. To be consistent across
different models, the returned data frame always has at least four columns
Parameter
, Effects
, Component
and Cleaned_Parameter
. See 'Details'.
model < download_model("brms_zi_2") clean_parameters(model)
model < download_model("brms_zi_2") clean_parameters(model)
Convenient function that formats columns in data frames with color codes, where the color is chosen based on certain conditions. Columns are then printed in color in the console.
color_if( x, columns, predicate = `>`, value = 0, color_if = "green", color_else = "red", digits = 2 ) colour_if( x, columns, predicate = `>`, value = 0, colour_if = "green", colour_else = "red", digits = 2 )
color_if( x, columns, predicate = `>`, value = 0, color_if = "green", color_else = "red", digits = 2 ) colour_if( x, columns, predicate = `>`, value = 0, colour_if = "green", colour_else = "red", digits = 2 )
x 
A data frame 
columns 
Character vector with column names of 
predicate 
A function that takes 
value 
The comparator. May be used in conjunction with 
color_if , colour_if

Character vector, indicating the color code used to
format values in 
color_else , colour_else

See 
digits 
Digits for rounded values. 
The predicatefunction simply works like this:
which(predicate(x[, columns], value))
x
, where columns matched by predicate
are wrapped into color codes.
# all values in Sepal.Length larger than 5 in green, all remaining in red x < color_if(iris[1:10, ], columns = "Sepal.Length", predicate = `>`, value = 5) x cat(x$Sepal.Length) # all levels "setosa" in Species in green, all remaining in red x < color_if(iris, columns = "Species", predicate = `==`, value = "setosa") cat(x$Species) # own function, argument "value" not needed here p < function(x, y) { x >= 4.9 & x <= 5.1 } # all values in Sepal.Length between 4.9 and 5.1 in green, all remaining in red x < color_if(iris[1:10, ], columns = "Sepal.Length", predicate = p) cat(x$Sepal.Length)
# all values in Sepal.Length larger than 5 in green, all remaining in red x < color_if(iris[1:10, ], columns = "Sepal.Length", predicate = `>`, value = 5) x cat(x$Sepal.Length) # all levels "setosa" in Species in green, all remaining in red x < color_if(iris, columns = "Species", predicate = `==`, value = "setosa") cat(x$Species) # own function, argument "value" not needed here p < function(x, y) { x >= 4.9 & x <= 5.1 } # all values in Sepal.Length between 4.9 and 5.1 in green, all remaining in red x < color_if(iris[1:10, ], columns = "Sepal.Length", predicate = p) cat(x$Sepal.Length)
Remove empty strings from character
compact_character(x)
compact_character(x)
x 
A single character or a vector of characters. 
A character or a character vector with empty strings removed.
compact_character(c("x", "y", NA)) compact_character(c("x", "NULL", "", "y"))
compact_character(c("x", "y", NA)) compact_character(c("x", "NULL", "", "y"))
Remove empty elements from lists
compact_list(x, remove_na = FALSE)
compact_list(x, remove_na = FALSE)
x 
A list or vector. 
remove_na 
Logical to decide if 
compact_list(list(NULL, 1, c(NA, NA))) compact_list(c(1, NA, NA)) compact_list(c(1, NA, NA), remove_na = TRUE)
compact_list(list(NULL, 1, c(NA, NA))) compact_list(c(1, NA, NA)) compact_list(c(1, NA, NA), remove_na = TRUE)
display()
is a generic function to export data frames
into various table formats (like plain text, markdown, ...). print_md()
usually is a convenient wrapper for display(format = "markdown")
.
Similar, print_html()
is a shortcut for display(format = "html")
.
See the documentation for the specific objects' classes.
display(object, ...) print_md(x, ...) print_html(x, ...) ## S3 method for class 'data.frame' display(object, format = "markdown", ...) ## S3 method for class 'data.frame' print_md(x, ...) ## S3 method for class 'data.frame' print_html(x, ...)
display(object, ...) print_md(x, ...) print_html(x, ...) ## S3 method for class 'data.frame' display(object, format = "markdown", ...) ## S3 method for class 'data.frame' print_md(x, ...) ## S3 method for class 'data.frame' print_html(x, ...)
object , x

A data frame. 
... 
Arguments passed to other methods. 
format 
String, indicating the output format. Can be 
Depending on format
, either an object of class gt_tbl
or a character vector of class knitr_kable
.
display(iris[1:5, ])
display(iris[1:5, ])
Downloads precompiled models from the circusrepository. The circusrepository contains a variety of fitted models to help the systematic testing of other packages
download_model( name, url = "https://raw.github.com/easystats/circus/master/data/", extension = ".rda", verbose = TRUE )
download_model( name, url = "https://raw.github.com/easystats/circus/master/data/", extension = ".rda", verbose = TRUE )
name 
Model name. 
url 
String with the URL from where to download the model data.
Optional, and should only be used in case the repositoryURL is
changing. By default, models are downloaded from

extension 
File extension. Default is 
verbose 
Toggle messages and warnings. 
The code that generated the model is available at the https://easystats.github.io/circus/reference/index.html.
A model from the circusrepository, or NULL
if model could
not be downloaded (e.g., due to server problems).
https://easystats.github.io/circus/
download_model("aov_1") try(download_model("non_existent_model"))
download_model("aov_1") try(download_model("non_existent_model"))
Provides information regarding the models entered in an ellipsis. It detects whether all are models, regressions, nested regressions etc., assigning different classes to the list of objects.
ellipsis_info(objects, ...) ## Default S3 method: ellipsis_info(..., only_models = TRUE, verbose = TRUE)
ellipsis_info(objects, ...) ## Default S3 method: ellipsis_info(..., only_models = TRUE, verbose = TRUE)
objects , ...

Arbitrary number of objects. May also be a list of model objects. 
only_models 
Only keep supported models (default to 
verbose 
Toggle warnings. 
The list with objects that were passed to the function, including additional information as attributes (e.g. if models have same response or are nested).
m1 < lm(Sepal.Length ~ Petal.Width + Species, data = iris) m2 < lm(Sepal.Length ~ Species, data = iris) m3 < lm(Sepal.Length ~ Petal.Width, data = iris) m4 < lm(Sepal.Length ~ 1, data = iris) m5 < lm(Petal.Width ~ 1, data = iris) objects < ellipsis_info(m1, m2, m3, m4) class(objects) objects < ellipsis_info(m1, m2, m4) attributes(objects)$is_nested objects < ellipsis_info(m1, m2, m5) attributes(objects)$same_response
m1 < lm(Sepal.Length ~ Petal.Width + Species, data = iris) m2 < lm(Sepal.Length ~ Species, data = iris) m3 < lm(Sepal.Length ~ Petal.Width, data = iris) m4 < lm(Sepal.Length ~ 1, data = iris) m5 < lm(Petal.Width ~ 1, data = iris) objects < ellipsis_info(m1, m2, m3, m4) class(objects) objects < ellipsis_info(m1, m2, m4) attributes(objects)$is_nested objects < ellipsis_info(m1, m2, m5) attributes(objects)$same_response
Returns information on the sampling or estimation algorithm as well as optimization functions, or for Bayesian model information on chains, iterations and warmupsamples.
find_algorithm(x, ...)
find_algorithm(x, ...)
x 
A fitted model. 
... 
Currently not used. 
A list with elements depending on the model.
For frequentist models:
algorithm
, for instance "OLS"
or "ML"
optimizer
, name of optimizing function, only applies to
specific models (like gam
)
For frequentist mixed models:
algorithm
, for instance "REML"
or "ML"
optimizer
, name of optimizing function
For Bayesian models:
algorithm
, the algorithm
chains
, number of chains
iterations
, number of iterations per chain
warmup
, number of warmups per chain
data(sleepstudy, package = "lme4") m < lme4::lmer(Reaction ~ Days + (1  Subject), data = sleepstudy) find_algorithm(m) data(sleepstudy, package = "lme4") m < suppressWarnings(rstanarm::stan_lmer( Reaction ~ Days + (1  Subject), data = sleepstudy, refresh = 0 )) find_algorithm(m)
data(sleepstudy, package = "lme4") m < lme4::lmer(Reaction ~ Days + (1  Subject), data = sleepstudy) find_algorithm(m) data(sleepstudy, package = "lme4") m < suppressWarnings(rstanarm::stan_lmer( Reaction ~ Days + (1  Subject), data = sleepstudy, refresh = 0 )) find_algorithm(m)
Returns the formula(s) for the different parts of a model
(like fixed or random effects, zeroinflated component, ...).
formula_ok()
checks if a model formula has valid syntax
regarding writing TRUE
instead of T
inside poly()
and that no data names are used (i.e. no data$variable
, but rather
variable
).
find_formula(x, ...) formula_ok(x, verbose = TRUE, ...) ## Default S3 method: find_formula(x, verbose = TRUE, ...) ## S3 method for class 'nestedLogit' find_formula(x, dichotomies = FALSE, verbose = TRUE, ...)
find_formula(x, ...) formula_ok(x, verbose = TRUE, ...) ## Default S3 method: find_formula(x, verbose = TRUE, ...) ## S3 method for class 'nestedLogit' find_formula(x, dichotomies = FALSE, verbose = TRUE, ...)
x 
A fitted model. 
... 
Currently not used. 
verbose 
Toggle warnings. 
dichotomies 
Logical, if model is a 
A list of formulas that describe the model. For simple models,
only one listelement, conditional
, is returned. For more complex
models, the returned list may have following elements:
conditional
, the "fixed effects" part from the model (in the
context of fixedeffects or instrumental variable regression, also
called regressors) . One exception are DirichletRegModel
models
from DirichletReg, which has two or three components,
depending on model
.
random
, the "random effects" part from the model (or the
id
for geemodels and similar)
zero_inflated
, the "fixed effects" part from the
zeroinflation component of the model
zero_inflated_random
, the "random effects" part from the
zeroinflation component of the model
dispersion
, the dispersion formula
instruments
, for fixedeffects or instrumental variable
regressions like ivreg::ivreg()
, lfe::felm()
or plm::plm()
,
the instrumental variables
cluster
, for fixedeffects regressions like
lfe::felm()
, the cluster specification
correlation
, for models with correlationcomponent like
nlme::gls()
, the formula that describes the correlation structure
scale
, for distributional models such as mgcv::gaulss()
family fitted
with mgcv::gam()
, the formula that describes the scale parameter
slopes
, for fixedeffects individualslope models like
feisr::feis()
, the formula for the slope parameters
precision
, for DirichletRegModel
models from
DirichletReg, when parametrization (i.e. model
) is
"alternative"
.
For models of class lme
or gls
the correlationcomponent
is only returned, when it is explicitly defined as named argument
(form
), e.g. corAR1(form = ~1  Mare)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_formula(m) m < lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris) f < find_formula(m) f format(f)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_formula(m) m < lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris) f < find_formula(m) f format(f)
Returns all lowest to highest order interaction terms from a model.
find_interactions( x, component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments"), flatten = FALSE )
find_interactions( x, component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments"), flatten = FALSE )
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
flatten 
Logical, if 
A list of character vectors that represent the interaction terms.
Depending on component
, the returned list has following
elements (or NULL
, if model has no interaction term):
conditional
, interaction terms that belong to the "fixed
effects" terms from the model
zero_inflated
, interaction terms that belong to the "fixed
effects" terms from the zeroinflation component of the model
instruments
, for fixedeffects regressions like ivreg
,
felm
or plm
, interaction terms that belong to the
instrumental variables
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_interactions(m) m < lm(mpg ~ wt * cyl + vs * hp * gear + carb, data = mtcars) find_interactions(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_interactions(m) m < lm(mpg ~ wt * cyl + vs * hp * gear + carb, data = mtcars) find_interactions(m)
Returns a character vector with the name(s) of offset terms.
find_offset(x)
find_offset(x)
x 
A fitted model. 
A character vector with the name(s) of offset terms.
# Generate some zeroinflated data set.seed(123) N < 100 # Samples x < runif(N, 0, 10) # Predictor off < rgamma(N, 3, 2) # Offset variable yhat < 1 + x * 0.5 + log(off) # Prediction on log scale dat < data.frame(y = NA, x, logOff = log(off)) dat$y < rpois(N, exp(yhat)) # Poisson process dat$y < ifelse(rbinom(N, 1, 0.3), 0, dat$y) # Zeroinflation process m1 < zeroinfl(y ~ offset(logOff) + x  1, data = dat, dist = "poisson") find_offset(m1) m2 < zeroinfl(y ~ x  1, data = dat, offset = logOff, dist = "poisson") find_offset(m2)
# Generate some zeroinflated data set.seed(123) N < 100 # Samples x < runif(N, 0, 10) # Predictor off < rgamma(N, 3, 2) # Offset variable yhat < 1 + x * 0.5 + log(off) # Prediction on log scale dat < data.frame(y = NA, x, logOff = log(off)) dat$y < rpois(N, exp(yhat)) # Poisson process dat$y < ifelse(rbinom(N, 1, 0.3), 0, dat$y) # Zeroinflation process m1 < zeroinfl(y ~ offset(logOff) + x  1, data = dat, dist = "poisson") find_offset(m1) m2 < zeroinfl(y ~ x  1, data = dat, offset = logOff, dist = "poisson") find_offset(m2)
Returns the names of model parameters, like they typically
appear in the summary()
output. For Bayesian models, the parameter
names equal the column names of the posterior samples after coercion
from as.data.frame()
. See the documentation for your object's class:
Bayesian models (rstanarm, brms, MCMCglmm, ...)
Generalized additive models (mgcv, VGAM, ...)
Marginal effects models (mfx)
Estimated marginal means (emmeans)
Mixed models (lme4, glmmTMB, GLMMadaptive, ...)
Zeroinflated and hurdle models (pscl, ...)
Models with special components (betareg, MuMIn, ...)
find_parameters(x, ...) ## Default S3 method: find_parameters(x, flatten = FALSE, verbose = TRUE, ...) ## S3 method for class 'pgmm' find_parameters(x, component = c("conditional", "all"), flatten = FALSE, ...) ## S3 method for class 'nls' find_parameters( x, component = c("all", "conditional", "nonlinear"), flatten = FALSE, ... )
find_parameters(x, ...) ## Default S3 method: find_parameters(x, flatten = FALSE, verbose = TRUE, ...) ## S3 method for class 'pgmm' find_parameters(x, component = c("conditional", "all"), flatten = FALSE, ...) ## S3 method for class 'nls' find_parameters( x, component = c("all", "conditional", "nonlinear"), flatten = FALSE, ... )
x 
A fitted model. 
... 
Currently not used. 
flatten 
Logical, if 
verbose 
Toggle messages and warnings. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
A list of parameter names. For simple models, only one listelement,
conditional
, is returned.
Possible values for the component
argument depend on the model class.
Following are valid options:
"all"
: returns all model components, applies to all models, but will only
have an effect for models with more than just the conditional model component.
"conditional"
: only returns the conditional component, i.e. "fixed effects"
terms from the model. Will only have an effect for models with more than
just the conditional model component.
"smooth_terms"
: returns smooth terms, only applies to GAMs (or similar
models that may contain smooth terms).
"zero_inflated"
(or "zi"
): returns the zeroinflation component.
"dispersion"
: returns the dispersion model component. This is common
for models with zeroinflation or that can model the dispersion parameter.
"instruments"
: for instrumentalvariable or some fixed effects regression,
returns the instruments.
"location"
: returns location parameters such as conditional
,
zero_inflated
, smooth_terms
, or instruments
(everything that are
fixed or random effects  depending on the effects
argument  but no
auxiliary parameters).
"distributional"
(or "auxiliary"
): components like sigma
, dispersion
,
beta
or precision
(and other auxiliary parameters) are returned.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the names of model parameters, like they typically
appear in the summary()
output.
## S3 method for class 'averaging' find_parameters(x, component = c("conditional", "full"), flatten = FALSE, ...) ## S3 method for class 'glmgee' find_parameters( x, component = c("all", "conditional", "dispersion"), flatten = FALSE, ... ) ## S3 method for class 'betareg' find_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), flatten = FALSE, ... ) ## S3 method for class 'DirichletRegModel' find_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), flatten = FALSE, ... ) ## S3 method for class 'mjoint' find_parameters( x, component = c("all", "conditional", "survival"), flatten = FALSE, ... ) ## S3 method for class 'glmx' find_parameters( x, component = c("all", "conditional", "extra"), flatten = FALSE, ... )
## S3 method for class 'averaging' find_parameters(x, component = c("conditional", "full"), flatten = FALSE, ...) ## S3 method for class 'glmgee' find_parameters( x, component = c("all", "conditional", "dispersion"), flatten = FALSE, ... ) ## S3 method for class 'betareg' find_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), flatten = FALSE, ... ) ## S3 method for class 'DirichletRegModel' find_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), flatten = FALSE, ... ) ## S3 method for class 'mjoint' find_parameters( x, component = c("all", "conditional", "survival"), flatten = FALSE, ... ) ## S3 method for class 'glmx' find_parameters( x, component = c("all", "conditional", "extra"), flatten = FALSE, ... )
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
flatten 
Logical, if 
... 
Currently not used. 
A list of parameter names. The returned list may have following elements:
conditional
, the "fixed effects" part from the model.
full
, parameters from the full model.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the names of model parameters, like they typically
appear in the summary()
output.
## S3 method for class 'betamfx' find_parameters( x, component = c("all", "conditional", "precision", "marginal", "location", "distributional", "auxiliary"), flatten = FALSE, ... ) ## S3 method for class 'logitmfx' find_parameters( x, component = c("all", "conditional", "marginal", "location"), flatten = FALSE, ... )
## S3 method for class 'betamfx' find_parameters( x, component = c("all", "conditional", "precision", "marginal", "location", "distributional", "auxiliary"), flatten = FALSE, ... ) ## S3 method for class 'logitmfx' find_parameters( x, component = c("all", "conditional", "marginal", "location"), flatten = FALSE, ... )
x 
A fitted model. 
component 
Which type of parameters to return, such as parameters for the
conditional model, the zeroinflated part of the model, the dispersion
term, the instrumental variables or marginal effects be returned? Applies
to models with zeroinflated and/or dispersion formula, or to models with
instrumental variables (so called fixedeffects regressions), or models
with marginal effects from mfx. May be abbreviated. Note that the
conditional component is also called count or mean
component, depending on the model. There are three convenient shortcuts:

flatten 
Logical, if 
... 
Currently not used. 
A list of parameter names. The returned list may have following elements:
conditional
, the "fixed effects" part from the model.
marginal
, the marginal effects.
precision
, the precision parameter.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the names of model parameters, like they typically
appear in the summary()
output. For Bayesian models, the parameter
names equal the column names of the posterior samples after coercion
from as.data.frame()
.
## S3 method for class 'BGGM' find_parameters( x, component = c("correlation", "conditional", "intercept", "all"), flatten = FALSE, ... ) ## S3 method for class 'BFBayesFactor' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "extra"), flatten = FALSE, ... ) ## S3 method for class 'MCMCglmm' find_parameters(x, effects = c("all", "fixed", "random"), flatten = FALSE, ...) ## S3 method for class 'bamlss' find_parameters( x, flatten = FALSE, component = c("all", "conditional", "location", "distributional", "auxiliary"), parameters = NULL, ... ) ## S3 method for class 'brmsfit' find_parameters( x, effects = "all", component = "all", flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'bayesx' find_parameters( x, component = c("all", "conditional", "smooth_terms"), flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'stanreg' find_parameters( x, effects = c("all", "fixed", "random"), component = c("location", "all", "conditional", "smooth_terms", "sigma", "distributional", "auxiliary"), flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'stanmvreg' find_parameters( x, effects = c("all", "fixed", "random"), component = c("location", "all", "conditional", "smooth_terms", "sigma", "distributional", "auxiliary"), flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'sim.merMod' find_parameters( x, effects = c("all", "fixed", "random"), flatten = FALSE, parameters = NULL, ... )
## S3 method for class 'BGGM' find_parameters( x, component = c("correlation", "conditional", "intercept", "all"), flatten = FALSE, ... ) ## S3 method for class 'BFBayesFactor' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "extra"), flatten = FALSE, ... ) ## S3 method for class 'MCMCglmm' find_parameters(x, effects = c("all", "fixed", "random"), flatten = FALSE, ...) ## S3 method for class 'bamlss' find_parameters( x, flatten = FALSE, component = c("all", "conditional", "location", "distributional", "auxiliary"), parameters = NULL, ... ) ## S3 method for class 'brmsfit' find_parameters( x, effects = "all", component = "all", flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'bayesx' find_parameters( x, component = c("all", "conditional", "smooth_terms"), flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'stanreg' find_parameters( x, effects = c("all", "fixed", "random"), component = c("location", "all", "conditional", "smooth_terms", "sigma", "distributional", "auxiliary"), flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'stanmvreg' find_parameters( x, effects = c("all", "fixed", "random"), component = c("location", "all", "conditional", "smooth_terms", "sigma", "distributional", "auxiliary"), flatten = FALSE, parameters = NULL, ... ) ## S3 method for class 'sim.merMod' find_parameters( x, effects = c("all", "fixed", "random"), flatten = FALSE, parameters = NULL, ... )
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
flatten 
Logical, if 
... 
Currently not used. 
effects 
Should parameters for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
parameters 
Regular expression pattern that describes the parameters that should be returned. 
A list of parameter names. For simple models, only one listelement,
conditional
, is returned. For more complex models, the returned list may
have following elements:
conditional
, the "fixed effects" part from the model
random
, the "random effects" part from the model
zero_inflated
, the "fixed effects" part from the zeroinflation component
of the model
zero_inflated_random
, the "random effects" part from the zeroinflation
component of the model
smooth_terms
, the smooth parameters
Furthermore, some models, especially from brms, can also return auxiliary parameters. These may be one of the following:
sigma
, the residual standard deviation (auxiliary parameter)
dispersion
, the dispersion parameters (auxiliary parameter)
beta
, the beta parameter (auxiliary parameter)
simplex
, simplex parameters of monotonic effects (brms only)
mix
, mixture parameters (brms only)
shiftprop
, shifted proportion parameters (brms only)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the parameter names from a model.
## S3 method for class 'emmGrid' find_parameters(x, flatten = FALSE, merge_parameters = FALSE, ...)
## S3 method for class 'emmGrid' find_parameters(x, flatten = FALSE, merge_parameters = FALSE, ...)
x 
A fitted model. 
flatten 
Logical, if 
merge_parameters 
Logical, if 
... 
Currently not used. 
A list of parameter names. For simple models, only one listelement,
conditional
, is returned.
data(mtcars) model < lm(mpg ~ wt * factor(cyl), data = mtcars) emm < emmeans(model, c("wt", "cyl")) find_parameters(emm)
data(mtcars) model < lm(mpg ~ wt * factor(cyl), data = mtcars) emm < emmeans(model, c("wt", "cyl")) find_parameters(emm)
Returns the names of model parameters, like they typically
appear in the summary()
output.
## S3 method for class 'gamlss' find_parameters(x, flatten = FALSE, ...) ## S3 method for class 'gam' find_parameters( x, component = c("all", "conditional", "smooth_terms", "location"), flatten = FALSE, ... )
## S3 method for class 'gamlss' find_parameters(x, flatten = FALSE, ...) ## S3 method for class 'gam' find_parameters( x, component = c("all", "conditional", "smooth_terms", "location"), flatten = FALSE, ... )
x 
A fitted model. 
flatten 
Logical, if 
... 
Currently not used. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
A list of parameter names. The returned list may have following elements:
conditional
, the "fixed effects" part from the model.
smooth_terms
, the smooth parameters.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the names of model parameters, like they typically
appear in the summary()
output.
## S3 method for class 'glmmTMB' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion"), flatten = FALSE, ... ) ## S3 method for class 'nlmerMod' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "nonlinear"), flatten = FALSE, ... ) ## S3 method for class 'hglm' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "dispersion"), flatten = FALSE, ... ) ## S3 method for class 'merMod' find_parameters(x, effects = c("all", "fixed", "random"), flatten = FALSE, ...)
## S3 method for class 'glmmTMB' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion"), flatten = FALSE, ... ) ## S3 method for class 'nlmerMod' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "nonlinear"), flatten = FALSE, ... ) ## S3 method for class 'hglm' find_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "conditional", "dispersion"), flatten = FALSE, ... ) ## S3 method for class 'merMod' find_parameters(x, effects = c("all", "fixed", "random"), flatten = FALSE, ...)
x 
A fitted model. 
effects 
Should parameters for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
component 
Which type of parameters to return, such as parameters for
the conditional model, the zeroinflated part of the model or the
dispersion term? Applies to models with zeroinflated and/or dispersion
formula. Note that the conditional component is also called
count or mean component, depending on the model. There are
three convenient shortcuts: 
flatten 
Logical, if 
... 
Currently not used. 
A list of parameter names. The returned list may have following elements:
conditional
, the "fixed effects" part from the model.
random
, the "random effects" part from the model.
zero_inflated
, the "fixed effects" part from the zeroinflation component
of the model.
zero_inflated_random
, the "random effects" part from the zeroinflation
component of the model.
dispersion
, the dispersion parameters (auxiliary parameter)
nonlinear
, the parameters from the nonlinear formula.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the names of model parameters, like they typically
appear in the summary()
output.
## S3 method for class 'zeroinfl' find_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), flatten = FALSE, ... ) ## S3 method for class 'mhurdle' find_parameters( x, component = c("all", "conditional", "zi", "zero_inflated", "infrequent_purchase", "ip", "auxiliary"), flatten = FALSE, ... )
## S3 method for class 'zeroinfl' find_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), flatten = FALSE, ... ) ## S3 method for class 'mhurdle' find_parameters( x, component = c("all", "conditional", "zi", "zero_inflated", "infrequent_purchase", "ip", "auxiliary"), flatten = FALSE, ... )
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
flatten 
Logical, if 
... 
Currently not used. 
A list of parameter names. The returned list may have following elements:
conditional
, the "fixed effects" part from the model.
zero_inflated
, the "fixed effects" part from the zeroinflation
component of the model.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_parameters(m)
Returns the names of the predictor variables for the
different parts of a model (like fixed or random effects, zeroinflated
component, ...). Unlike find_parameters()
, the names from
find_predictors()
match the original variable names from the data
that was used to fit the model.
find_predictors(x, ...) ## Default S3 method: find_predictors( x, effects = c("fixed", "random", "all"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments", "correlation", "smooth_terms"), flatten = FALSE, verbose = TRUE, ... ) ## S3 method for class 'afex_aov' find_predictors( x, effects = c("fixed", "random", "all"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments", "correlation", "smooth_terms"), flatten = FALSE, verbose = TRUE, ... )
find_predictors(x, ...) ## Default S3 method: find_predictors( x, effects = c("fixed", "random", "all"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments", "correlation", "smooth_terms"), flatten = FALSE, verbose = TRUE, ... ) ## S3 method for class 'afex_aov' find_predictors( x, effects = c("fixed", "random", "all"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion", "instruments", "correlation", "smooth_terms"), flatten = FALSE, verbose = TRUE, ... )
x 
A fitted model. 
... 
Currently not used. 
effects 
Should variables for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
flatten 
Logical, if 
verbose 
Toggle warnings. 
A list of character vectors that represent the name(s) of the
predictor variables. Depending on the combination of the arguments
effects
and component
, the returned list has following elements:
conditional
, the "fixed effects" terms from the model
random
, the "random effects" terms from the model
zero_inflated
, the "fixed effects" terms from the zeroinflation
component of the model
zero_inflated_random
, the "random effects" terms from the zeroinflation
component of the model
dispersion
, the dispersion terms
instruments
, for fixedeffects regressions like ivreg
, felm
or plm
,
the instrumental variables
correlation
, for models with correlationcomponent like gls
, the
variables used to describe the correlation structure
Possible values for the component
argument depend on the model class.
Following are valid options:
"all"
: returns all model components, applies to all models, but will only
have an effect for models with more than just the conditional model component.
"conditional"
: only returns the conditional component, i.e. "fixed effects"
terms from the model. Will only have an effect for models with more than
just the conditional model component.
"smooth_terms"
: returns smooth terms, only applies to GAMs (or similar
models that may contain smooth terms).
"zero_inflated"
(or "zi"
): returns the zeroinflation component.
"dispersion"
: returns the dispersion model component. This is common
for models with zeroinflation or that can model the dispersion parameter.
"instruments"
: for instrumentalvariable or some fixed effects regression,
returns the instruments.
"location"
: returns location parameters such as conditional
,
zero_inflated
, smooth_terms
, or instruments
(everything that are
fixed or random effects  depending on the effects
argument  but no
auxiliary parameters).
"distributional"
(or "auxiliary"
): components like sigma
, dispersion
,
beta
or precision
(and other auxiliary parameters) are returned.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_predictors(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_predictors(m)
Return the name of the grouping factors from mixed effects models.
find_random(x, split_nested = FALSE, flatten = FALSE)
find_random(x, split_nested = FALSE, flatten = FALSE)
x 
A fitted mixed model. 
split_nested 
Logical, if 
flatten 
Logical, if 
A list of character vectors that represent the name(s) of the random effects (grouping factors). Depending on the model, the returned list has following elements:
random
, the "random effects" terms from the conditional part of model
zero_inflated_random
, the "random effects" terms from the zeroinflation
component of the model
data(sleepstudy, package = "lme4") sleepstudy$mygrp < sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp < NA for (i in 1:5) { filter_group < sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } m < lme4::lmer( Reaction ~ Days + (1  mygrp / mysubgrp) + (1  Subject), data = sleepstudy ) find_random(m) find_random(m, split_nested = TRUE)
data(sleepstudy, package = "lme4") sleepstudy$mygrp < sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp < NA for (i in 1:5) { filter_group < sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } m < lme4::lmer( Reaction ~ Days + (1  mygrp / mysubgrp) + (1  Subject), data = sleepstudy ) find_random(m) find_random(m, split_nested = TRUE)
Return the name of the random slopes from mixed effects models.
find_random_slopes(x)
find_random_slopes(x)
x 
A fitted mixed model. 
A list of character vectors with the name(s) of the random slopes, or
NULL
if model has no random slopes. Depending on the model, the returned
list has following elements:
random
, the random slopes from the conditional part of model
zero_inflated_random
, the random slopes from the zeroinflation
component of the model
data(sleepstudy, package = "lme4") m < lme4::lmer(Reaction ~ Days + (1 + Days  Subject), data = sleepstudy) find_random_slopes(m)
data(sleepstudy, package = "lme4") m < lme4::lmer(Reaction ~ Days + (1 + Days  Subject), data = sleepstudy) find_random_slopes(m)
Returns the name(s) of the response variable(s) from a model object.
find_response(x, combine = TRUE, ...) ## S3 method for class 'mjoint' find_response( x, combine = TRUE, component = c("conditional", "survival", "all"), ... ) ## S3 method for class 'joint' find_response( x, combine = TRUE, component = c("conditional", "survival", "all"), ... )
find_response(x, combine = TRUE, ...) ## S3 method for class 'mjoint' find_response( x, combine = TRUE, component = c("conditional", "survival", "all"), ... ) ## S3 method for class 'joint' find_response( x, combine = TRUE, component = c("conditional", "survival", "all"), ... )
x 
A fitted model. 
combine 
Logical, if 
... 
Currently not used. 
component 
Character, if 
The name(s) of the response variable(s) from x
as character
vector, or NULL
if response variable could not be found.
data(cbpp, package = "lme4") cbpp$trials < cbpp$size  cbpp$incidence m < glm(cbind(incidence, trials) ~ period, data = cbpp, family = binomial) find_response(m, combine = TRUE) find_response(m, combine = FALSE)
data(cbpp, package = "lme4") cbpp$trials < cbpp$size  cbpp$incidence m < glm(cbind(incidence, trials) ~ period, data = cbpp, family = binomial) find_response(m, combine = TRUE) find_response(m, combine = FALSE)
Return the names of smooth terms from a model object.
find_smooth(x, flatten = FALSE)
find_smooth(x, flatten = FALSE)
x 
A (gam) model. 
flatten 
Logical, if 
A character vector with the name(s) of the smooth terms.
data(iris) model < mgcv::gam(Petal.Length ~ Petal.Width + s(Sepal.Length), data = iris) find_smooth(model)
data(iris) model < mgcv::gam(Petal.Length ~ Petal.Width + s(Sepal.Length), data = iris) find_smooth(model)
Returns the statistic for a regression model (tstatistic, zstatistic, etc.).
Small helper that checks if a model is a regression model object and return the statistic used.
find_statistic(x, ...)
find_statistic(x, ...)
x 
An object. 
... 
Currently not used. 
A character describing the type of statistic. If there is no
statistic available with a distribution, NULL
will be returned.
# regression model object data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_statistic(m)
# regression model object data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) find_statistic(m)
Returns a list with the names of all terms, including response
value and random effects, "as is". This means, onthefly tranformations
or arithmetic expressions like log()
, I()
, as.factor()
etc. are
preserved.
find_terms(x, ...) ## Default S3 method: find_terms(x, flatten = FALSE, as_term_labels = FALSE, verbose = TRUE, ...)
find_terms(x, ...) ## Default S3 method: find_terms(x, flatten = FALSE, as_term_labels = FALSE, verbose = TRUE, ...)
x 
A fitted model. 
... 
Currently not used. 
flatten 
Logical, if 
as_term_labels 
Logical, if 
verbose 
Toggle warnings. 
A list with (depending on the model) following elements (character vectors):
response
, the name of the response variable
conditional
, the names of the predictor variables from the conditional
model (as opposed to the zeroinflated part of a model)
random
, the names of the random effects (grouping factors)
zero_inflated
, the names of the predictor variables from the zeroinflated part of the model
zero_inflated_random
, the names of the random effects (grouping factors)
dispersion
, the name of the dispersion terms
instruments
, the names of instrumental variables
Returns NULL
if no terms could be found (for instance, due to
problems in accessing the formula).
The difference to find_variables()
is that find_terms()
may return a variable multiple times in case of multiple transformations
(see examples below), while find_variables()
returns each variable
name only once.
data(sleepstudy, package = "lme4") m < suppressWarnings(lme4::lmer( log(Reaction) ~ Days + I(Days^2) + (1 + Days + exp(Days)  Subject), data = sleepstudy )) find_terms(m) # sometimes, it is necessary to retrieve terms from "term.labels" attribute m < lm(mpg ~ hp * (am + cyl), data = mtcars) find_terms(m, as_term_labels = TRUE)
data(sleepstudy, package = "lme4") m < suppressWarnings(lme4::lmer( log(Reaction) ~ Days + I(Days^2) + (1 + Days + exp(Days)  Subject), data = sleepstudy )) find_terms(m) # sometimes, it is necessary to retrieve terms from "term.labels" attribute m < lm(mpg ~ hp * (am + cyl), data = mtcars) find_terms(m, as_term_labels = TRUE)
This functions checks whether any transformation, such as log
or exptransforming, was applied to the response variable (dependent
variable) in a regression formula. Currently, following patterns are
detected: log
, log1p
, log2
, log10
, exp
, expm1
, sqrt
,
log(x+<number>)
, loglog
, power
(to 2nd power, like I(x^2)
), and
inverse
(like 1/y
).
find_transformation(x, ...)
find_transformation(x, ...)
x 
A regression model or a character string of the response value. 
... 
Currently not used. 
A string, with the name of the function of the applied transformation.
Returns "identity"
for no transformation, and e.g. "log(x+3)"
when
a specific values was added to the response variables before
logtransforming. For unknown transformations, returns NULL
.
# identity, no transformation model < lm(Sepal.Length ~ Species, data = iris) find_transformation(model) # logtransformation model < lm(log(Sepal.Length) ~ Species, data = iris) find_transformation(model) # log+2 model < lm(log(Sepal.Length + 2) ~ Species, data = iris) find_transformation(model) # inverse, response provided as character string find_transformation("1 / y")
# identity, no transformation model < lm(Sepal.Length ~ Species, data = iris) find_transformation(model) # logtransformation model < lm(log(Sepal.Length) ~ Species, data = iris) find_transformation(model) # log+2 model < lm(log(Sepal.Length + 2) ~ Species, data = iris) find_transformation(model) # inverse, response provided as character string find_transformation("1 / y")
Returns a list with the names of all variables, including response value and random effects.
find_variables( x, effects = "all", component = "all", flatten = FALSE, verbose = TRUE )
find_variables( x, effects = "all", component = "all", flatten = FALSE, verbose = TRUE )
x 
A fitted model. 
effects 
Should variables for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
flatten 
Logical, if 
verbose 
Toggle warnings. 
A list with (depending on the model) following elements (character vectors):
response
, the name of the response variable
conditional
, the names of the predictor variables from the conditional model (as opposed to the zeroinflated part of a model)
cluster
, the names of cluster or grouping variables
dispersion
, the name of the dispersion terms
instruments
, the names of instrumental variables
random
, the names of the random effects (grouping factors)
zero_inflated
, the names of the predictor variables from the zeroinflated part of the model
zero_inflated_random
, the names of the random effects (grouping factors)
Possible values for the component
argument depend on the model class.
Following are valid options:
"all"
: returns all model components, applies to all models, but will only
have an effect for models with more than just the conditional model component.
"conditional"
: only returns the conditional component, i.e. "fixed effects"
terms from the model. Will only have an effect for models with more than
just the conditional model component.
"smooth_terms"
: returns smooth terms, only applies to GAMs (or similar
models that may contain smooth terms).
"zero_inflated"
(or "zi"
): returns the zeroinflation component.
"dispersion"
: returns the dispersion model component. This is common
for models with zeroinflation or that can model the dispersion parameter.
"instruments"
: for instrumentalvariable or some fixed effects regression,
returns the instruments.
"location"
: returns location parameters such as conditional
,
zero_inflated
, smooth_terms
, or instruments
(everything that are
fixed or random effects  depending on the effects
argument  but no
auxiliary parameters).
"distributional"
(or "auxiliary"
): components like sigma
, dispersion
,
beta
or precision
(and other auxiliary parameters) are returned.
The difference to find_terms()
is that
find_variables()
returns each variable name only once, while
find_terms()
may return a variable multiple times in case of
transformations or when arithmetic expressions were used in the formula.
data(cbpp, package = "lme4") data(sleepstudy, package = "lme4") # some data preparation... cbpp$trials < cbpp$size  cbpp$incidence sleepstudy$mygrp < sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp < NA for (i in 1:5) { filter_group < sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } m1 < lme4::glmer( cbind(incidence, size  incidence) ~ period + (1  herd), data = cbpp, family = binomial ) find_variables(m1) m2 < lme4::lmer( Reaction ~ Days + (1  mygrp / mysubgrp) + (1  Subject), data = sleepstudy ) find_variables(m2) find_variables(m2, flatten = TRUE)
data(cbpp, package = "lme4") data(sleepstudy, package = "lme4") # some data preparation... cbpp$trials < cbpp$size  cbpp$incidence sleepstudy$mygrp < sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp < NA for (i in 1:5) { filter_group < sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } m1 < lme4::glmer( cbind(incidence, size  incidence) ~ period + (1  herd), data = cbpp, family = binomial ) find_variables(m1) m2 < lme4::lmer( Reaction ~ Days + (1  mygrp / mysubgrp) + (1  Subject), data = sleepstudy ) find_variables(m2) find_variables(m2, flatten = TRUE)
Returns the name of the variable that describes the weights of a model.
find_weights(x, ...)
find_weights(x, ...)
x 
A fitted model. 
... 
Currently not used. 
The name of the weighting variable as character vector, or NULL
if no weights were specified.
data(mtcars) mtcars$weight < rnorm(nrow(mtcars), 1, .3) m < lm(mpg ~ wt + cyl + vs, data = mtcars, weights = weight) find_weights(m)
data(mtcars) mtcars$weight < rnorm(nrow(mtcars), 1, .3) m < lm(mpg ~ wt + cyl + vs, data = mtcars, weights = weight) find_weights(m)
Bayes Factor formatting
format_bf( bf, stars = FALSE, stars_only = FALSE, name = "BF", protect_ratio = FALSE, na_reference = NA, exact = FALSE )
format_bf( bf, stars = FALSE, stars_only = FALSE, name = "BF", protect_ratio = FALSE, na_reference = NA, exact = FALSE )
bf 
Bayes Factor. 
stars 
Add significance stars (e.g., p < .001***). 
stars_only 
Return only significance stars. 
name 
Name prefixing the text. Can be 
protect_ratio 
Should values smaller than 1 be represented as ratios? 
na_reference 
How to format missing values ( 
exact 
Should very large or very small values be reported with a scientific format (e.g., 4.24e5), or as truncated values (as "> 1000" and "< 1/1000"). 
A formatted string.
format_bf(bfs < c(0.000045, 0.033, NA, 1557, 3.54)) format_bf(bfs, exact = TRUE, name = NULL) format_bf(bfs, stars = TRUE) format_bf(bfs, protect_ratio = TRUE) format_bf(bfs, protect_ratio = TRUE, exact = TRUE) format_bf(bfs, na_reference = 1)
format_bf(bfs < c(0.000045, 0.033, NA, 1557, 3.54)) format_bf(bfs, exact = TRUE, name = NULL) format_bf(bfs, stars = TRUE) format_bf(bfs, protect_ratio = TRUE) format_bf(bfs, protect_ratio = TRUE, exact = TRUE) format_bf(bfs, na_reference = 1)
This function converts the first letter in a string into upper case.
format_capitalize(x, verbose = TRUE)
format_capitalize(x, verbose = TRUE)
x 
A character vector or a factor. The latter is coerced to character. All other objects are returned unchanged. 
verbose 
Toggle warnings. 
x
, with first letter capitalized.
format_capitalize("hello") format_capitalize(c("hello", "world")) unique(format_capitalize(iris$Species))
format_capitalize("hello") format_capitalize(c("hello", "world")) unique(format_capitalize(iris$Species))
Confidence/Credible Interval (CI) Formatting
format_ci(CI_low, ...) ## S3 method for class 'numeric' format_ci( CI_low, CI_high, ci = 0.95, digits = 2, brackets = TRUE, width = NULL, width_low = width, width_high = width, missing = "", zap_small = FALSE, ci_string = "CI", ... )
format_ci(CI_low, ...) ## S3 method for class 'numeric' format_ci( CI_low, CI_high, ci = 0.95, digits = 2, brackets = TRUE, width = NULL, width_low = width, width_high = width, missing = "", zap_small = FALSE, ci_string = "CI", ... )
CI_low 
Lower CI bound. Usually a numeric value, but can also be a
CI output returned 
... 
Arguments passed to or from other methods. 
CI_high 
Upper CI bound. 
ci 
CI level in percentage. 
digits 
Number of digits for rounding or significant figures. May also
be 
brackets 
Either a logical, and if 
width 
Minimum width of the returned string. If not 
width_low , width_high

Like 
missing 
Value by which 
zap_small 
Logical, if 
ci_string 
String to be used in the output to indicate the type of
interval. Default is 
A formatted string.
format_ci(1.20, 3.57, ci = 0.90) format_ci(1.20, 3.57, ci = NULL) format_ci(1.20, 3.57, ci = NULL, brackets = FALSE) format_ci(1.20, 3.57, ci = NULL, brackets = c("(", ")")) format_ci(c(1.205645, 23.4), c(3.57, 1.35), ci = 0.90) format_ci(c(1.20, NA, NA), c(3.57, 1.35, NA), ci = 0.90) # automatic alignment of width, useful for printing multiple CIs in columns x < format_ci(c(1.205, 23.4, 100.43), c(3.57, 13.35, 9.4)) cat(x, sep = "\n") x < format_ci(c(1.205, 23.4, 100.43), c(3.57, 13.35, 9.4), width = "auto") cat(x, sep = "\n")
format_ci(1.20, 3.57, ci = 0.90) format_ci(1.20, 3.57, ci = NULL) format_ci(1.20, 3.57, ci = NULL, brackets = FALSE) format_ci(1.20, 3.57, ci = NULL, brackets = c("(", ")")) format_ci(c(1.205645, 23.4), c(3.57, 1.35), ci = 0.90) format_ci(c(1.20, NA, NA), c(3.57, 1.35, NA), ci = 0.90) # automatic alignment of width, useful for printing multiple CIs in columns x < format_ci(c(1.205, 23.4, 100.43), c(3.57, 13.35, 9.4)) cat(x, sep = "\n") x < format_ci(c(1.205, 23.4, 100.43), c(3.57, 13.35, 9.4), width = "auto") cat(x, sep = "\n")
Inserts line breaks into a longer message or warning string. Line length is adjusted to maximum length of the console, if the width can be accessed. By default, new lines are indented by two spaces.
format_alert()
is a wrapper that combines formatting a string with a
call to message()
, warning()
or stop()
. By default, format_alert()
creates a message()
. format_warning()
and format_error()
change the
default type of exception to warning()
and stop()
, respectively.
format_message( string, ..., line_length = 0.9 * getOption("width", 80), indent = " " ) format_alert( string, ..., line_length = 0.9 * getOption("width", 80), indent = " ", type = "message", call = FALSE, immediate = FALSE ) format_warning(..., immediate = FALSE) format_error(...)
format_message( string, ..., line_length = 0.9 * getOption("width", 80), indent = " " ) format_alert( string, ..., line_length = 0.9 * getOption("width", 80), indent = " ", type = "message", call = FALSE, immediate = FALSE ) format_warning(..., immediate = FALSE) format_error(...)
string 
A string. 
... 
Further strings that will be concatenated as indented new lines. 
line_length 
Numeric, the maximum length of a line. The default is 90% of the width of the console window. 
indent 
Character vector. If further lines are specified in 
type 
Type of exception alert to raise.
Can be 
call 
Logical. Indicating if the call should be included in the the
error message. This is usually confusing for users when the function
producing the warning or error is deep within another function, so the
default is 
immediate 
Logical. Indicating if the warning should be printed
immediately. Only applies to 
There is an experimental formatting feature implemented in this function. You can use following tags:
{.b text}
for bold formatting
{.i text}
to use italic font style
{.url www.url.com}
formats the string as URL (i.e., enclosing URL in
<
and >
, blue color and italic font style)
{.pkg packagename}
formats the text in blue color.
This features has some limitations: it's hard to detect the exact length for
each line when the string has multiple lines (after line breaks) and the
string contains formatting tags. Thus, it can happen that lines are wrapped at
an earlier length than expected. Furthermore, if you have multiple words in a
format tag ({.b one two three}
), a line break might occur inside this tag,
and the formatting no longer works (messing up the messagestring).
For format_message()
, a formatted string.
For format_alert()
and related functions, the requested exception,
with the exception formatted using format_message()
.
msg < format_message("Much too long string for just one line, I guess!", line_length = 15 ) message(msg) msg < format_message("Much too long string for just one line, I guess!", "First new line", "Second new line", "(both indented)", line_length = 30 ) message(msg) msg < format_message("Much too long string for just one line, I guess!", "First new line", "Second new line", "(not indented)", line_length = 30, indent = "" ) message(msg) # Caution, experimental! See 'Details' msg < format_message( "This is {.i italic}, visit {.url easystats.github.io/easystats}", line_length = 30 ) message(msg) # message format_alert("This is a message.") format_alert("This is a warning.", type = "message") # error try(format_error("This is an error.")) # warning format_warning("This is a warning.")
msg < format_message("Much too long string for just one line, I guess!", line_length = 15 ) message(msg) msg < format_message("Much too long string for just one line, I guess!", "First new line", "Second new line", "(both indented)", line_length = 30 ) message(msg) msg < format_message("Much too long string for just one line, I guess!", "First new line", "Second new line", "(not indented)", line_length = 30, indent = "" ) message(msg) # Caution, experimental! See 'Details' msg < format_message( "This is {.i italic}, visit {.url easystats.github.io/easystats}", line_length = 30 ) message(msg) # message format_alert("This is a message.") format_alert("This is a warning.", type = "message") # error try(format_error("This is an error.")) # warning format_warning("This is a warning.")
Convert number to words
format_number(x, textual = TRUE, ...)
format_number(x, textual = TRUE, ...)
x 
Number. 
textual 
Return words. If 
... 
Arguments to be passed to 
A formatted string.
The code has been adapted from here https://github.com/ateucher/useful_code/blob/master/R/numbers2words.r
format_number(2) format_number(45) format_number(324.68765)
format_number(2) format_number(45) format_number(324.68765)
Format pvalues.
format_p( p, stars = FALSE, stars_only = FALSE, whitespace = TRUE, name = "p", missing = "", decimal_separator = NULL, digits = 3, ... )
format_p( p, stars = FALSE, stars_only = FALSE, whitespace = TRUE, name = "p", missing = "", decimal_separator = NULL, digits = 3, ... )
p 
value or vector of pvalues. 
stars 
Add significance stars (e.g., p < .001***). 
stars_only 
Return only significance stars. 
whitespace 
Logical, if 
name 
Name prefixing the text. Can be 
missing 
Value by which 
decimal_separator 
Character, if not 
digits 
Number of significant digits. May also be 
... 
Arguments from other methods. 
A formatted string.
format_p(c(.02, .065, 0, .23)) format_p(c(.02, .065, 0, .23), name = NULL) format_p(c(.02, .065, 0, .23), stars_only = TRUE) model < lm(mpg ~ wt + cyl, data = mtcars) p < coef(summary(model))[, 4] format_p(p, digits = "apa") format_p(p, digits = "scientific") format_p(p, digits = "scientific2")
format_p(c(.02, .065, 0, .23)) format_p(c(.02, .065, 0, .23), name = NULL) format_p(c(.02, .065, 0, .23), stars_only = TRUE) model < lm(mpg ~ wt + cyl, data = mtcars) p < coef(summary(model))[, 4] format_p(p, digits = "apa") format_p(p, digits = "scientific") format_p(p, digits = "scientific2")
Probability of direction (pd) formatting
format_pd(pd, stars = FALSE, stars_only = FALSE, name = "pd")
format_pd(pd, stars = FALSE, stars_only = FALSE, name = "pd")
pd 
Probability of direction (pd). 
stars 
Add significance stars (e.g., p < .001***). 
stars_only 
Return only significance stars. 
name 
Name prefixing the text. Can be 
A formatted string.
format_pd(0.12) format_pd(c(0.12, 1, 0.9999, 0.98, 0.995, 0.96), name = NULL) format_pd(c(0.12, 1, 0.9999, 0.98, 0.995, 0.96), stars = TRUE)
format_pd(0.12) format_pd(c(0.12, 1, 0.9999, 0.98, 0.995, 0.96), name = NULL) format_pd(c(0.12, 1, 0.9999, 0.98, 0.995, 0.96), stars = TRUE)
Percentage in ROPE formatting
format_rope(rope_percentage, name = "in ROPE", digits = 2)
format_rope(rope_percentage, name = "in ROPE", digits = 2)
rope_percentage 
Value or vector of percentages in ROPE. 
name 
Name prefixing the text. Can be 
digits 
Number of significant digits. May also be 
A formatted string.
format_rope(c(0.02, 0.12, 0.357, 0)) format_rope(c(0.02, 0.12, 0.357, 0), name = NULL)
format_rope(c(0.02, 0.12, 0.357, 0)) format_rope(c(0.02, 0.12, 0.357, 0), name = NULL)
String Values Formatting
format_string(x, ...) ## S3 method for class 'character' format_string(x, length = NULL, abbreviate = "...", ...)
format_string(x, ...) ## S3 method for class 'character' format_string(x, length = NULL, abbreviate = "...", ...)
x 
String value. 
... 
Arguments passed to or from other methods. 
length 
Numeric, maximum length of the returned string. If not

abbreviate 
String that will be used as suffix, if 
A formatted string.
s < "This can be considered as very long string!" # string is shorter than max.length, so returned as is format_string(s, 60) # string is shortened to as many words that result in # a string of maximum 20 chars format_string(s, 20)
s < "This can be considered as very long string!" # string is shorter than max.length, so returned as is format_string(s, 60) # string is shortened to as many words that result in # a string of maximum 20 chars format_string(s, 20)
This functions takes a data frame with model parameters as input
and formats certain columns into a more readable layout (like collapsing
separate columns for lower and upper confidence interval values). Furthermore,
column names are formatted as well. Note that format_table()
converts all columns into character vectors!
format_table( x, pretty_names = TRUE, stars = FALSE, digits = 2, ci_width = "auto", ci_brackets = TRUE, ci_digits = 2, p_digits = 3, rope_digits = 2, ic_digits = 1, zap_small = FALSE, preserve_attributes = FALSE, exact = TRUE, use_symbols = getOption("insight_use_symbols", FALSE), verbose = TRUE, ... )
format_table( x, pretty_names = TRUE, stars = FALSE, digits = 2, ci_width = "auto", ci_brackets = TRUE, ci_digits = 2, p_digits = 3, rope_digits = 2, ic_digits = 1, zap_small = FALSE, preserve_attributes = FALSE, exact = TRUE, use_symbols = getOption("insight_use_symbols", FALSE), verbose = TRUE, ... )
x 
A data frame of model's parameters, as returned by various functions
of the easystatspackages. May also be a result from

pretty_names 
Return "pretty" (i.e. more human readable) parameter names. 
stars 
If 
digits , ci_digits , p_digits , rope_digits , ic_digits

Number of digits for
rounding or significant figures. May also be 
ci_width 
Minimum width of the returned string for confidence
intervals. If not 
ci_brackets 
Logical, if 
zap_small 
Logical, if 
preserve_attributes 
Logical, if 
exact 
Formatting for Bayes factor columns, in case the provided data
frame contains such a column (i.e. columns named 
use_symbols 
Logical, if 
verbose 
Toggle messages and warnings. 
... 
Arguments passed to or from other methods. 
A data frame. Note that format_table()
converts all columns
into character vectors!
options(insight_use_symbols = TRUE)
overrides the use_symbols
argument
and always displays symbols, if possible.
Vignettes Formatting, printing and exporting tables and Formatting model parameters.
format_table(head(iris), digits = 1) m < lm(Sepal.Length ~ Species * Sepal.Width, data = iris) x < parameters::model_parameters(m) as.data.frame(format_table(x)) as.data.frame(format_table(x, p_digits = "scientific")) model < rstanarm::stan_glm( Sepal.Length ~ Species, data = iris, refresh = 0, seed = 123 ) x < parameters::model_parameters(model, ci = c(0.69, 0.89, 0.95)) as.data.frame(format_table(x))
format_table(head(iris), digits = 1) m < lm(Sepal.Length ~ Species * Sepal.Width, data = iris) x < parameters::model_parameters(m) as.data.frame(format_table(x)) as.data.frame(format_table(x, p_digits = "scientific")) model < rstanarm::stan_glm( Sepal.Length ~ Species, data = iris, refresh = 0, seed = 123 ) x < parameters::model_parameters(model, ci = c(0.69, 0.89, 0.95)) as.data.frame(format_table(x))
format_value()
converts numeric values into formatted string values, where
formatting can be something like rounding digits, scientific notation etc.
format_percent()
is a shortcut for format_value(as_percent = TRUE)
.
format_value(x, ...) ## S3 method for class 'data.frame' format_value( x, digits = 2, protect_integers = FALSE, missing = "", width = NULL, as_percent = FALSE, zap_small = FALSE, lead_zero = TRUE, style_positive = "none", style_negative = "hyphen", ... ) ## S3 method for class 'numeric' format_value( x, digits = 2, protect_integers = FALSE, missing = "", width = NULL, as_percent = FALSE, zap_small = FALSE, lead_zero = TRUE, style_positive = "none", style_negative = "hyphen", ... ) format_percent(x, ...)
format_value(x, ...) ## S3 method for class 'data.frame' format_value( x, digits = 2, protect_integers = FALSE, missing = "", width = NULL, as_percent = FALSE, zap_small = FALSE, lead_zero = TRUE, style_positive = "none", style_negative = "hyphen", ... ) ## S3 method for class 'numeric' format_value( x, digits = 2, protect_integers = FALSE, missing = "", width = NULL, as_percent = FALSE, zap_small = FALSE, lead_zero = TRUE, style_positive = "none", style_negative = "hyphen", ... ) format_percent(x, ...)
x 
Numeric value. 
... 
Arguments passed to or from other methods. 
digits 
Number of digits for rounding or significant figures. May also
be 
protect_integers 
Should integers be kept as integers (i.e., without decimals)? 
missing 
Value by which 
width 
Minimum width of the returned string. If not 
as_percent 
Logical, if 
zap_small 
Logical, if 
lead_zero 
Logical, if 
style_positive 
A string that determines the style of positive numbers.
May be 
style_negative 
A string that determines the style of negative numbers.
May be 
A formatted string.
format_value(1.20) format_value(1.2) format_value(1.2012313) format_value(c(0.0045, 234, 23)) format_value(c(0.0045, .12, .34)) format_value(c(0.0045, .12, .34), as_percent = TRUE) format_value(c(0.0045, .12, .34), digits = "scientific") format_value(c(0.0045, .12, .34), digits = "scientific2") format_value(c(0.045, .12, .34), lead_zero = FALSE) # default format_value(c(0.0045, .123, .345)) # significant figures format_value(c(0.0045, .123, .345), digits = "signif") format_value(as.factor(c("A", "B", "A"))) format_value(iris$Species) format_value(3) format_value(3, protect_integers = TRUE) format_value(head(iris))
format_value(1.20) format_value(1.2) format_value(1.2012313) format_value(c(0.0045, 234, 23)) format_value(c(0.0045, .12, .34)) format_value(c(0.0045, .12, .34), as_percent = TRUE) format_value(c(0.0045, .12, .34), digits = "scientific") format_value(c(0.0045, .12, .34), digits = "scientific2") format_value(c(0.045, .12, .34), lead_zero = FALSE) # default format_value(c(0.0045, .123, .345)) # significant figures format_value(c(0.0045, .123, .345), digits = "signif") format_value(as.factor(c("A", "B", "A"))) format_value(iris$Species) format_value(3) format_value(3, protect_integers = TRUE) format_value(head(iris))
Returns the requested auxiliary parameters from models, like dispersion, sigma, or beta...
get_auxiliary( x, type = "sigma", summary = TRUE, centrality = "mean", verbose = TRUE, ... )
get_auxiliary( x, type = "sigma", summary = TRUE, centrality = "mean", verbose = TRUE, ... )
x 
A model. 
type 
The name of the auxiliary parameter that should be retrieved.

summary 
Logical, indicates whether the full posterior samples
( 
centrality 
Only for models with posterior samples, and when

verbose 
Toggle warnings. 
... 
Currently not used. 
Currently, only sigma and the dispersion parameter are returned, and only for a limited set of models.
See get_sigma()
.
There are many different definitions of "dispersion", depending on the context.
get_auxiliary()
returns the dispersion parameters that usually can
be considered as variancetomean ratio for generalized (linear) mixed
models. Exceptions are models of class glmmTMB
, where the dispersion
equals σ^{2}.
In detail, the computation of the dispersion parameter for generalized linear
models is the ratio of the sum of the squared workingresiduals and the
residual degrees of freedom. For mixed models of class glmer
, the
dispersion parameter is also called φ
and is the ratio of the sum of the squared Pearsonresiduals and the residual
degrees of freedom. For models of class glmmTMB
, dispersion is
σ^{2}.
For models of class brmsfit
, there are different options for the
type
argument. See a list of supported auxiliary parameters here:
find_parameters.BGGM()
.
The requested auxiliary parameter, or NULL
if this information
could not be accessed.
# from ?glm clotting < data.frame( u = c(5, 10, 15, 20, 30, 40, 60, 80, 100), lot1 = c(118, 58, 42, 35, 27, 25, 21, 19, 18), lot2 = c(69, 35, 26, 21, 18, 16, 13, 12, 12) ) model < glm(lot1 ~ log(u), data = clotting, family = Gamma()) get_auxiliary(model, type = "dispersion") # same as summary(model)$dispersion
# from ?glm clotting < data.frame( u = c(5, 10, 15, 20, 30, 40, 60, 80, 100), lot1 = c(118, 58, 42, 35, 27, 25, 21, 19, 18), lot2 = c(69, 35, 26, 21, 18, 16, 13, 12, 12) ) model < glm(lot1 ~ log(u), data = clotting, family = Gamma()) get_auxiliary(model, type = "dispersion") # same as summary(model)$dispersion
Returns the model's function call when available.
get_call(x)
get_call(x)
x 
A fitted mixed model. 
A function call.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_call(m) m < lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris) get_call(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_call(m) m < lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris) get_call(m)
This functions tries to get the data that was used to fit the model and returns it as data frame.
get_data(x, ...) ## Default S3 method: get_data(x, source = "environment", verbose = TRUE, ...) ## S3 method for class 'glmmTMB' get_data( x, effects = "all", component = "all", source = "environment", verbose = TRUE, ... ) ## S3 method for class 'afex_aov' get_data(x, shape = c("long", "wide"), ...) ## S3 method for class 'rma' get_data( x, source = "environment", verbose = TRUE, include_interval = FALSE, transf = NULL, transf_args = NULL, ci = 0.95, ... )
get_data(x, ...) ## Default S3 method: get_data(x, source = "environment", verbose = TRUE, ...) ## S3 method for class 'glmmTMB' get_data( x, effects = "all", component = "all", source = "environment", verbose = TRUE, ... ) ## S3 method for class 'afex_aov' get_data(x, shape = c("long", "wide"), ...) ## S3 method for class 'rma' get_data( x, source = "environment", verbose = TRUE, include_interval = FALSE, transf = NULL, transf_args = NULL, ci = 0.95, ... )
x 
A fitted model. 
... 
Currently not used. 
source 
String, indicating from where data should be recovered. If

verbose 
Toggle messages and warnings. 
effects 
Should model data for fixed effects ( 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
shape 
Return long or wide data? Only applicable in repeated measures designs. 
include_interval 
For metaanalysis models, should normalapproximation confidence intervals be added for each response effect size? 
transf 
For metaanalysis models, if intervals are included, a function applied to each response effect size and its interval. 
transf_args 
For metaanalysis models, an optional list of arguments
passed to the 
ci 
For metaanalysis models, the Confidence Interval (CI) level if

The data that was used to fit the model.
Possible values for the component
argument depend on the model class.
Following are valid options:
"all"
: returns all model components, applies to all models, but will only
have an effect for models with more than just the conditional model component.
"conditional"
: only returns the conditional component, i.e. "fixed effects"
terms from the model. Will only have an effect for models with more than
just the conditional model component.
"smooth_terms"
: returns smooth terms, only applies to GAMs (or similar
models that may contain smooth terms).
"zero_inflated"
(or "zi"
): returns the zeroinflation component.
"dispersion"
: returns the dispersion model component. This is common
for models with zeroinflation or that can model the dispersion parameter.
"instruments"
: for instrumentalvariable or some fixed effects regression,
returns the instruments.
"location"
: returns location parameters such as conditional
,
zero_inflated
, smooth_terms
, or instruments
(everything that are
fixed or random effects  depending on the effects
argument  but no
auxiliary parameters).
"distributional"
(or "auxiliary"
): components like sigma
, dispersion
,
beta
or precision
(and other auxiliary parameters) are returned.
data(cbpp, package = "lme4") cbpp$trials < cbpp$size  cbpp$incidence m < glm(cbind(incidence, trials) ~ period, data = cbpp, family = binomial) head(get_data(m))
data(cbpp, package = "lme4") cbpp$trials < cbpp$size  cbpp$incidence m < glm(cbind(incidence, trials) ~ period, data = cbpp, family = binomial) head(get_data(m))
Create a reference matrix, useful for visualisation, with evenly spread and
combined values. Usually used to make generate predictions using
get_predicted()
. See this
vignette
for a tutorial on how to create a visualisation matrix using this function.
Alternatively, these can also be used to extract the "grid" columns from
objects generated by emmeans and marginaleffects.
get_datagrid(x, ...) ## S3 method for class 'data.frame' get_datagrid( x, by = "all", factors = "reference", numerics = "mean", preserve_range = FALSE, reference = x, length = 10, range = "range", ... ) ## S3 method for class 'numeric' get_datagrid(x, length = 10, range = "range", ...) ## S3 method for class 'factor' get_datagrid(x, ...) ## Default S3 method: get_datagrid( x, by = "all", factors = "reference", numerics = "mean", preserve_range = TRUE, reference = x, include_smooth = TRUE, include_random = FALSE, include_response = FALSE, data = NULL, verbose = TRUE, ... ) ## S3 method for class 'emmGrid' get_datagrid(x, ...) ## S3 method for class 'slopes' get_datagrid(x, ...)
get_datagrid(x, ...) ## S3 method for class 'data.frame' get_datagrid( x, by = "all", factors = "reference", numerics = "mean", preserve_range = FALSE, reference = x, length = 10, range = "range", ... ) ## S3 method for class 'numeric' get_datagrid(x, length = 10, range = "range", ...) ## S3 method for class 'factor' get_datagrid(x, ...) ## Default S3 method: get_datagrid( x, by = "all", factors = "reference", numerics = "mean", preserve_range = TRUE, reference = x, include_smooth = TRUE, include_random = FALSE, include_response = FALSE, data = NULL, verbose = TRUE, ... ) ## S3 method for class 'emmGrid' get_datagrid(x, ...) ## S3 method for class 'slopes' get_datagrid(x, ...)
x 
An object from which to construct the reference grid. 
... 
Arguments passed to or from other methods (for instance, 
by 
Indicates the focal predictors (variables) for the reference grid
and at which values focal predictors should be represented. If not specified
otherwise, representative values for numeric variables or predictors are
evenly distributed from the minimum to the maximum, with a total number of
There is a special handling of assignments with brackets, i.e. values
defined inside
For factor variables, the value(s) inside the brackets should indicate
one or more factor levels, like The remaining variables not specified in 
factors 
Type of summary for factors. Can be 
numerics 
Type of summary for numeric values. Can be 
preserve_range 
In the case of combinations between numeric variables
and factors, setting 
reference 
The reference vector from which to compute the mean and SD.
Used when standardizing or unstandardizing the grid using 
length 
Length of numeric target variables selected in 
range 
Option to control the representative values given in

include_smooth 
If 
include_random 
If 
include_response 
If 
data 
Optional, the data frame that was used to fit the model. Usually,
the data is retrieved via 
verbose 
Toggle warnings. 
Reference grid data frame.
# Datagrids of variables and dataframes ===================================== # Single variable is of interest; all others are "fixed"  # Factors get_datagrid(iris, by = "Species") # Returns all the levels get_datagrid(iris, by = "Species = c('setosa', 'versicolor')") # Specify an expression # Numeric variables get_datagrid(iris, by = "Sepal.Length") # default spread length = 10 get_datagrid(iris, by = "Sepal.Length", length = 3) # change length get_datagrid(iris[2:150, ], by = "Sepal.Length", factors = "mode", numerics = "median" ) # change nontargets fixing get_datagrid(iris, by = "Sepal.Length", range = "ci", ci = 0.90) # change min/max of target get_datagrid(iris, by = "Sepal.Length = [0, 1]") # Manually change min/max get_datagrid(iris, by = "Sepal.Length = [sd]") # 1 SD, mean and +1 SD # identical to previous line: 1 SD, mean and +1 SD get_datagrid(iris, by = "Sepal.Length", range = "sd", length = 3) get_datagrid(iris, by = "Sepal.Length = [quartiles]") # quartiles # Numeric and categorical variables, generating a grid for plots # default spread length = 10 get_datagrid(iris, by = c("Sepal.Length", "Species"), range = "grid") # default spread length = 3 (1 SD, mean and +1 SD) get_datagrid(iris, by = c("Species", "Sepal.Length"), range = "grid") # Standardization and unstandardization data < get_datagrid(iris, by = "Sepal.Length", range = "sd", length = 3) data$Sepal.Length # It is a named vector (extract names with `names(out$Sepal.Length)`) datawizard::standardize(data, select = "Sepal.Length") data < get_datagrid(iris, by = "Sepal.Length = c(2, 0, 2)") # Manually specify values data datawizard::unstandardize(data, select = "Sepal.Length") # Multiple variables are of interest, creating a combination  get_datagrid(iris, by = c("Sepal.Length", "Species"), length = 3) get_datagrid(iris, by = c("Sepal.Length", "Petal.Length"), length = c(3, 2)) get_datagrid(iris, by = c(1, 3), length = 3) get_datagrid(iris, by = c("Sepal.Length", "Species"), preserve_range = TRUE) get_datagrid(iris, by = c("Sepal.Length", "Species"), numerics = 0) get_datagrid(iris, by = c("Sepal.Length = 3", "Species")) get_datagrid(iris, by = c("Sepal.Length = c(3, 1)", "Species = 'setosa'")) # With liststyle byargument get_datagrid(iris, by = list(Sepal.Length = c(1, 3), Species = "setosa")) # With models =============================================================== # Fit a linear regression model < lm(Sepal.Length ~ Sepal.Width * Petal.Length, data = iris) # Get datagrid of predictors data < get_datagrid(model, length = c(20, 3), range = c("range", "sd")) # same as: get_datagrid(model, range = "grid", length = 20) # Add predictions data$Sepal.Length < get_predicted(model, data = data) # Visualize relationships (each color is at 1 SD, Mean, and + 1 SD of Petal.Length) plot(data$Sepal.Width, data$Sepal.Length, col = data$Petal.Length, main = "Relationship at 1 SD, Mean, and + 1 SD of Petal.Length" )
# Datagrids of variables and dataframes ===================================== # Single variable is of interest; all others are "fixed"  # Factors get_datagrid(iris, by = "Species") # Returns all the levels get_datagrid(iris, by = "Species = c('setosa', 'versicolor')") # Specify an expression # Numeric variables get_datagrid(iris, by = "Sepal.Length") # default spread length = 10 get_datagrid(iris, by = "Sepal.Length", length = 3) # change length get_datagrid(iris[2:150, ], by = "Sepal.Length", factors = "mode", numerics = "median" ) # change nontargets fixing get_datagrid(iris, by = "Sepal.Length", range = "ci", ci = 0.90) # change min/max of target get_datagrid(iris, by = "Sepal.Length = [0, 1]") # Manually change min/max get_datagrid(iris, by = "Sepal.Length = [sd]") # 1 SD, mean and +1 SD # identical to previous line: 1 SD, mean and +1 SD get_datagrid(iris, by = "Sepal.Length", range = "sd", length = 3) get_datagrid(iris, by = "Sepal.Length = [quartiles]") # quartiles # Numeric and categorical variables, generating a grid for plots # default spread length = 10 get_datagrid(iris, by = c("Sepal.Length", "Species"), range = "grid") # default spread length = 3 (1 SD, mean and +1 SD) get_datagrid(iris, by = c("Species", "Sepal.Length"), range = "grid") # Standardization and unstandardization data < get_datagrid(iris, by = "Sepal.Length", range = "sd", length = 3) data$Sepal.Length # It is a named vector (extract names with `names(out$Sepal.Length)`) datawizard::standardize(data, select = "Sepal.Length") data < get_datagrid(iris, by = "Sepal.Length = c(2, 0, 2)") # Manually specify values data datawizard::unstandardize(data, select = "Sepal.Length") # Multiple variables are of interest, creating a combination  get_datagrid(iris, by = c("Sepal.Length", "Species"), length = 3) get_datagrid(iris, by = c("Sepal.Length", "Petal.Length"), length = c(3, 2)) get_datagrid(iris, by = c(1, 3), length = 3) get_datagrid(iris, by = c("Sepal.Length", "Species"), preserve_range = TRUE) get_datagrid(iris, by = c("Sepal.Length", "Species"), numerics = 0) get_datagrid(iris, by = c("Sepal.Length = 3", "Species")) get_datagrid(iris, by = c("Sepal.Length = c(3, 1)", "Species = 'setosa'")) # With liststyle byargument get_datagrid(iris, by = list(Sepal.Length = c(1, 3), Species = "setosa")) # With models =============================================================== # Fit a linear regression model < lm(Sepal.Length ~ Sepal.Width * Petal.Length, data = iris) # Get datagrid of predictors data < get_datagrid(model, length = c(20, 3), range = c("range", "sd")) # same as: get_datagrid(model, range = "grid", length = 20) # Add predictions data$Sepal.Length < get_predicted(model, data = data) # Visualize relationships (each color is at 1 SD, Mean, and + 1 SD of Petal.Length) plot(data$Sepal.Width, data$Sepal.Length, col = data$Petal.Length, main = "Relationship at 1 SD, Mean, and + 1 SD of Petal.Length" )
Returns model deviance (see stats::deviance()
).
get_deviance(x, ...) ## Default S3 method: get_deviance(x, verbose = TRUE, ...)
get_deviance(x, ...) ## Default S3 method: get_deviance(x, verbose = TRUE, ...)
x 
A model. 
... 
Not used. 
verbose 
Toggle warnings and messages. 
For GLMMs of class glmerMod
, glmmTMB
or MixMod
,
the absolute unconditional deviance is returned (see 'Details' in
?lme4::merModclass
), i.e. minus twice the loglikelihood. To get
the relative conditional deviance (relative to a saturated model,
conditioned on the conditional modes of random effects), use deviance()
.
The value returned get_deviance()
usually equals the deviancevalue
from the summary()
.
The model deviance.
data(mtcars) x < lm(mpg ~ cyl, data = mtcars) get_deviance(x)
data(mtcars) x < lm(mpg ~ cyl, data = mtcars) get_deviance(x)
Estimate or extract residual or modelbased degrees of freedom from regression models.
get_df(x, ...) ## Default S3 method: get_df(x, type = "residual", verbose = TRUE, ...)
get_df(x, ...) ## Default S3 method: get_df(x, type = "residual", verbose = TRUE, ...)
x 
A statistical model. 
... 
Currently not used. 
type 
Type of approximation for the degrees of freedom. Can be one of the following:
Usually, when degrees of freedom are required to calculate pvalues or
confidence intervals, 
verbose 
Toggle warnings. 
Degrees of freedom for mixed models
Inferential statistics (like pvalues, confidence intervals and standard errors) may be biased in mixed models when the number of clusters is small (even if the sample size of level1 units is high). In such cases it is recommended to approximate a more accurate number of degrees of freedom for such inferential statistics (see Li and Redden 2015).
ml1 degrees of freedom
The ml1 heuristic is an approach that uses a tdistribution with fewer
degrees of freedom. In particular for repeated measure designs (longitudinal
data analysis), the ml1 heuristic is likely to be more accurate than simply
using the residual or infinite degrees of freedom, because get_df(type = "ml1")
returns different degrees of freedom for withincluster and betweencluster
effects. Note that the "ml1" heuristic is not applicable (or at least less
accurate) for complex multilevel designs, e.g. with crossclassified clusters.
In such cases, more accurate approaches like the KenwardRoger approximation
is recommended. However, the "ml1" heuristic also applies to generalized
mixed models, while approaches like KenwardRoger or Satterthwaite are limited
to linear mixed models only.
Betweenwithin degrees of freedom
The Betweenwithin denominator degrees of freedom approximation is, similar
to the "ml1" heuristic, recommended in particular for (generalized) linear
mixed models with repeated measurements (longitudinal design).
get_df(type = "betwithin")
implements a heuristic based on the betweenwithin
approach, i.e. this type returns different degrees of freedom for withincluster
and betweencluster effects. Note that this implementation does not return
exactly the same results as shown in Li and Redden 2015, but similar.
Satterthwaite and KenwardRogers degrees of freedom
Unlike simpler approximation heuristics like the "ml1" rule (type = "ml1"
),
the Satterthwaite or KenwardRogers approximation is also applicable in more
complex multilevel designs. However, the "ml1" or "betweenwithin" heuristics
also apply to generalized mixed models, while approaches like KenwardRoger
or Satterthwaite are limited to linear mixed models only.
Kenward, M. G., & Roger, J. H. (1997). Small sample inference for fixed effects from restricted maximum likelihood. Biometrics, 983997.
Satterthwaite FE (1946) An approximate distribution of estimates of variance components. Biometrics Bulletin 2 (6):110–4.
Elff, M.; Heisig, J.P.; Schaeffer, M.; Shikano, S. (2019). Multilevel Analysis with Few Clusters: Improving Likelihoodbased Methods to Provide Unbiased Estimates and Accurate Inference, British Journal of Political Science.
Li, P., Redden, D. T. (2015). Comparing denominator degrees of freedom approximations for the generalized linear mixed model in analyzing binary outcome in small sample clusterrandomized trials. BMC Medical Research Methodology, 15(1), 38
model < lm(Sepal.Length ~ Petal.Length * Species, data = iris) get_df(model) # same as df.residual(model) get_df(model, type = "model") # same as attr(logLik(model), "df")
model < lm(Sepal.Length ~ Petal.Length * Species, data = iris) get_df(model) # same as df.residual(model) get_df(model, type = "model") # same as attr(logLik(model), "df")
A robust and resilient alternative to stats::family
. To avoid issues
with models like gamm4
.
get_family(x, ...)
get_family(x, ...)
x 
A statistical model. 
... 
Further arguments passed to methods. 
data(mtcars) x < glm(vs ~ wt, data = mtcars, family = "binomial") get_family(x) x < mgcv::gamm( vs ~ am + s(wt), random = list(cyl = ~1), data = mtcars, family = "binomial" ) get_family(x)
data(mtcars) x < glm(vs ~ wt, data = mtcars, family = "binomial") get_family(x) x < mgcv::gamm( vs ~ am + s(wt), random = list(cyl = ~1), data = mtcars, family = "binomial" ) get_family(x)
Returns the value at the intercept (i.e., the intercept
parameter), and NA
if there isn't one.
get_intercept(x, ...)
get_intercept(x, ...)
x 
A model. 
... 
Not used. 
The value of the intercept.
get_intercept(lm(Sepal.Length ~ Petal.Width, data = iris)) get_intercept(lm(Sepal.Length ~ 0 + Petal.Width, data = iris)) get_intercept(lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris)) get_intercept(gamm4::gamm4(Sepal.Length ~ s(Petal.Width), data = iris))
get_intercept(lm(Sepal.Length ~ Petal.Width, data = iris)) get_intercept(lm(Sepal.Length ~ 0 + Petal.Width, data = iris)) get_intercept(lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris)) get_intercept(gamm4::gamm4(Sepal.Length ~ s(Petal.Width), data = iris))
A robust function to compute the loglikelihood of a model, as well as
individual loglikelihoods (for each observation) whenever possible. Can be
used as a replacement for stats::logLik()
out of the box, as the
returned object is of the same class (and it gives the same results by
default).
get_loglikelihood(x, ...) loglikelihood(x, ...) ## S3 method for class 'lm' get_loglikelihood( x, estimator = "ML", REML = FALSE, check_response = FALSE, verbose = TRUE, ... )
get_loglikelihood(x, ...) loglikelihood(x, ...) ## S3 method for class 'lm' get_loglikelihood( x, estimator = "ML", REML = FALSE, check_response = FALSE, verbose = TRUE, ... )
x 
A model. 
... 
Passed down to 
estimator 
Corresponds to the different estimators for the standard
deviation of the errors. If 
REML 
Only for linear models. This argument is present for
compatibility with 
check_response 
Logical, if 
verbose 
Toggle warnings and messages. 
An object of class "logLik"
, also containing the
loglikelihoods for each observation as a per_observation
attribute
(attributes(get_loglikelihood(x))$per_observation
) when possible.
The code was partly inspired from the nonnest2 package.
x < lm(Sepal.Length ~ Petal.Width + Species, data = iris) get_loglikelihood(x, estimator = "ML") # Equivalent to stats::logLik(x) get_loglikelihood(x, estimator = "REML") # Equivalent to stats::logLik(x, REML=TRUE) get_loglikelihood(x, estimator = "OLS")
x < lm(Sepal.Length ~ Petal.Width + Species, data = iris) get_loglikelihood(x, estimator = "ML") # Equivalent to stats::logLik(x) get_loglikelihood(x, estimator = "REML") # Equivalent to stats::logLik(x, REML=TRUE) get_loglikelihood(x, estimator = "OLS")
Creates a design matrix from the description. Any character variables are coerced to factors.
get_modelmatrix(x, ...)
get_modelmatrix(x, ...)
x 
An object. 
... 
Passed down to other methods (mainly 
data(mtcars) model < lm(am ~ vs, data = mtcars) get_modelmatrix(model)
data(mtcars) model < lm(am ~ vs, data = mtcars) get_modelmatrix(model)
Returns the coefficients (or posterior samples for Bayesian models) from a model. See the documentation for your object's class:
Bayesian models (rstanarm, brms, MCMCglmm, ...)
Estimated marginal means (emmeans)
Generalized additive models (mgcv, VGAM, ...)
Marginal effects models (mfx)
Mixed models (lme4, glmmTMB, GLMMadaptive, ...)
Zeroinflated and hurdle models (pscl, ...)
Models with special components (betareg, MuMIn, ...)
Hypothesis tests (htest
)
get_parameters(x, ...) ## Default S3 method: get_parameters(x, verbose = TRUE, ...)
get_parameters(x, ...) ## Default S3 method: get_parameters(x, verbose = TRUE, ...)
x 
A fitted model. 
... 
Currently not used. 
verbose 
Toggle messages and warnings. 
In most cases when models either return different "effects" (fixed,
random) or "components" (conditional, zeroinflated, ...), the arguments
effects
and component
can be used.
get_parameters()
is comparable to coef()
, however, the coefficients
are returned as data frame (with columns for names and point estimates of
coefficients). For Bayesian models, the posterior samples of parameters are
returned.
for nonBayesian models, a data frame with two columns: the parameter names and the related point estimates.
for Anova (aov()
) with error term, a list of parameters for the
conditional and the random effects parameters
Possible values for the component
argument depend on the model class.
Following are valid options:
"all"
: returns all model components, applies to all models, but will only
have an effect for models with more than just the conditional model component.
"conditional"
: only returns the conditional component, i.e. "fixed effects"
terms from the model. Will only have an effect for models with more than
just the conditional model component.
"smooth_terms"
: returns smooth terms, only applies to GAMs (or similar
models that may contain smooth terms).
"zero_inflated"
(or "zi"
): returns the zeroinflation component.
"dispersion"
: returns the dispersion model component. This is common
for models with zeroinflation or that can model the dispersion parameter.
"instruments"
: for instrumentalvariable or some fixed effects regression,
returns the instruments.
"location"
: returns location parameters such as conditional
,
zero_inflated
, smooth_terms
, or instruments
(everything that are
fixed or random effects  depending on the effects
argument  but no
auxiliary parameters).
"distributional"
(or "auxiliary"
): components like sigma
, dispersion
,
beta
or precision
(and other auxiliary parameters) are returned.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
Returns the coefficients from a model.
## S3 method for class 'betamfx' get_parameters( x, component = c("all", "conditional", "precision", "marginal"), ... ) ## S3 method for class 'logitmfx' get_parameters(x, component = c("all", "conditional", "marginal"), ...)
## S3 method for class 'betamfx' get_parameters( x, component = c("all", "conditional", "precision", "marginal"), ... ) ## S3 method for class 'logitmfx' get_parameters(x, component = c("all", "conditional", "marginal"), ...)
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
... 
Currently not used. 
A data frame with three columns: the parameter names, the related point estimates and the component.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
Returns the coefficients from a model.
## S3 method for class 'betareg' get_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), ... ) ## S3 method for class 'glmgee' get_parameters(x, component = c("all", "conditional", "dispersion"), ...) ## S3 method for class 'DirichletRegModel' get_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), ... ) ## S3 method for class 'averaging' get_parameters(x, component = c("conditional", "full"), ...) ## S3 method for class 'glmx' get_parameters( x, component = c("all", "conditional", "extra", "location", "distributional", "auxiliary"), ... ) ## S3 method for class 'clm2' get_parameters(x, component = c("all", "conditional", "scale"), ...) ## S3 method for class 'mvord' get_parameters( x, component = c("all", "conditional", "thresholds", "correlation"), ... ) ## S3 method for class 'mjoint' get_parameters(x, component = c("all", "conditional", "survival"), ...)
## S3 method for class 'betareg' get_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), ... ) ## S3 method for class 'glmgee' get_parameters(x, component = c("all", "conditional", "dispersion"), ...) ## S3 method for class 'DirichletRegModel' get_parameters( x, component = c("all", "conditional", "precision", "location", "distributional", "auxiliary"), ... ) ## S3 method for class 'averaging' get_parameters(x, component = c("conditional", "full"), ...) ## S3 method for class 'glmx' get_parameters( x, component = c("all", "conditional", "extra", "location", "distributional", "auxiliary"), ... ) ## S3 method for class 'clm2' get_parameters(x, component = c("all", "conditional", "scale"), ...) ## S3 method for class 'mvord' get_parameters( x, component = c("all", "conditional", "thresholds", "correlation"), ... ) ## S3 method for class 'mjoint' get_parameters(x, component = c("all", "conditional", "survival"), ...)
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
... 
Currently not used. 
A data frame with three columns: the parameter names, the related point estimates and the component.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
Returns the coefficients (or posterior samples for Bayesian models) from a model.
## S3 method for class 'BGGM' get_parameters( x, component = c("correlation", "conditional", "intercept", "all"), summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'MCMCglmm' get_parameters( x, effects = c("fixed", "random", "all"), summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'BFBayesFactor' get_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "extra"), iterations = 4000, progress = FALSE, verbose = TRUE, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'stanmvreg' get_parameters( x, effects = c("fixed", "random", "all"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'brmsfit' get_parameters( x, effects = "fixed", component = "all", parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'stanreg' get_parameters( x, effects = c("fixed", "random", "all"), component = c("location", "all", "conditional", "smooth_terms", "sigma", "distributional", "auxiliary"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'bayesx' get_parameters( x, component = c("conditional", "smooth_terms", "all"), summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'bamlss' get_parameters( x, component = c("all", "conditional", "smooth_terms", "location", "distributional", "auxiliary"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'sim.merMod' get_parameters( x, effects = c("fixed", "random", "all"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'sim' get_parameters(x, parameters = NULL, summary = FALSE, centrality = "mean", ...)
## S3 method for class 'BGGM' get_parameters( x, component = c("correlation", "conditional", "intercept", "all"), summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'MCMCglmm' get_parameters( x, effects = c("fixed", "random", "all"), summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'BFBayesFactor' get_parameters( x, effects = c("all", "fixed", "random"), component = c("all", "extra"), iterations = 4000, progress = FALSE, verbose = TRUE, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'stanmvreg' get_parameters( x, effects = c("fixed", "random", "all"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'brmsfit' get_parameters( x, effects = "fixed", component = "all", parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'stanreg' get_parameters( x, effects = c("fixed", "random", "all"), component = c("location", "all", "conditional", "smooth_terms", "sigma", "distributional", "auxiliary"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'bayesx' get_parameters( x, component = c("conditional", "smooth_terms", "all"), summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'bamlss' get_parameters( x, component = c("all", "conditional", "smooth_terms", "location", "distributional", "auxiliary"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'sim.merMod' get_parameters( x, effects = c("fixed", "random", "all"), parameters = NULL, summary = FALSE, centrality = "mean", ... ) ## S3 method for class 'sim' get_parameters(x, parameters = NULL, summary = FALSE, centrality = "mean", ...)
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
summary 
Logical, indicates whether the full posterior samples
( 
centrality 
Only for models with posterior samples, and when

... 
Currently not used. 
effects 
Should parameters for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
iterations 
Number of posterior draws. 
progress 
Display progress. 
verbose 
Toggle messages and warnings. 
parameters 
Regular expression pattern that describes the parameters that should be returned. 
In most cases when models either return different "effects" (fixed,
random) or "components" (conditional, zeroinflated, ...), the arguments
effects
and component
can be used.
The posterior samples from the requested parameters as data frame.
If summary = TRUE
, returns a data frame with two columns: the
parameter names and the related point estimates (based on centrality
).
Note that for BFBayesFactor
models (from the BayesFactor package),
posteriors are only extracted from the first numerator model (i.e.,
model[1]
). If you want to apply some function foo()
to another
model stored in the BFBayesFactor
object, index it directly, e.g.
foo(model[2])
, foo(1/model[5])
, etc.
See also bayestestR::weighted_posteriors()
.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
Returns the coefficients from a model.
## S3 method for class 'emmGrid' get_parameters(x, summary = FALSE, merge_parameters = FALSE, ...) ## S3 method for class 'emm_list' get_parameters(x, summary = FALSE, ...)
## S3 method for class 'emmGrid' get_parameters(x, summary = FALSE, merge_parameters = FALSE, ...) ## S3 method for class 'emm_list' get_parameters(x, summary = FALSE, ...)
x 
A fitted model. 
summary 
Logical, indicates whether the full posterior samples
( 
merge_parameters 
Logical, if 
... 
Currently not used. 
A data frame with two columns: the parameter names and the related point estimates.
Note that emmGrid
or emm_list
objects returned by functions from
emmeans have a different structure compared to usual regression models.
Hence, the Parameter
column does not always contain names of variables,
but may rather contain values, e.g. for contrasts. See an example for
pairwise comparisons below.
data(mtcars) model < lm(mpg ~ wt * factor(cyl), data = mtcars) emm < emmeans(model, "cyl") get_parameters(emm) emm < emmeans(model, pairwise ~ cyl) get_parameters(emm)
data(mtcars) model < lm(mpg ~ wt * factor(cyl), data = mtcars) emm < emmeans(model, "cyl") get_parameters(emm) emm < emmeans(model, pairwise ~ cyl) get_parameters(emm)
Returns the coefficients from a model.
## S3 method for class 'gamm' get_parameters( x, component = c("all", "conditional", "smooth_terms", "location"), ... ) ## S3 method for class 'gam' get_parameters( x, component = c("all", "conditional", "smooth_terms", "location"), ... ) ## S3 method for class 'rqss' get_parameters(x, component = c("all", "conditional", "smooth_terms"), ...)
## S3 method for class 'gamm' get_parameters( x, component = c("all", "conditional", "smooth_terms", "location"), ... ) ## S3 method for class 'gam' get_parameters( x, component = c("all", "conditional", "smooth_terms", "location"), ... ) ## S3 method for class 'rqss' get_parameters(x, component = c("all", "conditional", "smooth_terms"), ...)
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
... 
Currently not used. 
For models with smooth terms or zeroinflation component, a data frame with three columns: the parameter names, the related point estimates and the component.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
Returns the coefficients from a model.
## S3 method for class 'glmm' get_parameters(x, effects = c("all", "fixed", "random"), ...) ## S3 method for class 'coxme' get_parameters(x, effects = c("fixed", "random"), ...) ## S3 method for class 'nlmerMod' get_parameters( x, effects = c("fixed", "random"), component = c("all", "conditional", "nonlinear"), ... ) ## S3 method for class 'merMod' get_parameters(x, effects = c("fixed", "random"), ...) ## S3 method for class 'glmmTMB' get_parameters( x, effects = c("fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion"), ... ) ## S3 method for class 'glimML' get_parameters(x, effects = c("fixed", "random", "all"), ...)
## S3 method for class 'glmm' get_parameters(x, effects = c("all", "fixed", "random"), ...) ## S3 method for class 'coxme' get_parameters(x, effects = c("fixed", "random"), ...) ## S3 method for class 'nlmerMod' get_parameters( x, effects = c("fixed", "random"), component = c("all", "conditional", "nonlinear"), ... ) ## S3 method for class 'merMod' get_parameters(x, effects = c("fixed", "random"), ...) ## S3 method for class 'glmmTMB' get_parameters( x, effects = c("fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated", "dispersion"), ... ) ## S3 method for class 'glimML' get_parameters(x, effects = c("fixed", "random", "all"), ...)
x 
A fitted model. 
effects 
Should parameters for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
... 
Currently not used. 
component 
Which type of parameters to return, such as parameters for
the conditional model, the zeroinflated part of the model or the
dispersion term? Applies to models with zeroinflated and/or dispersion
formula. Note that the conditional component is also called
count or mean component, depending on the model. There are
three convenient shortcuts: 
In most cases when models either return different "effects" (fixed,
random) or "components" (conditional, zeroinflated, ...), the arguments
effects
and component
can be used.
If effects = "fixed"
, a data frame with two columns: the
parameter names and the related point estimates. If effects = "random"
, a list of data frames with the random effects (as returned by
ranef()
), unless the random effects have the same simplified
structure as fixed effects (e.g. for models from MCMCglmm).
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
Returns the parameters from a hypothesis test.
## S3 method for class 'htest' get_parameters(x, ...)
## S3 method for class 'htest' get_parameters(x, ...)
x 
A fitted model. 
... 
Currently not used. 
A data frame with two columns: the parameter names and the related point estimates.
get_parameters(t.test(1:10, y = c(7:20)))
get_parameters(t.test(1:10, y = c(7:20)))
Returns the coefficients from a model.
## S3 method for class 'zeroinfl' get_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), ... ) ## S3 method for class 'zcpglm' get_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), ... ) ## S3 method for class 'mhurdle' get_parameters( x, component = c("all", "conditional", "zi", "zero_inflated", "infrequent_purchase", "ip", "auxiliary"), ... )
## S3 method for class 'zeroinfl' get_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), ... ) ## S3 method for class 'zcpglm' get_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), ... ) ## S3 method for class 'mhurdle' get_parameters( x, component = c("all", "conditional", "zi", "zero_inflated", "infrequent_purchase", "ip", "auxiliary"), ... )
x 
A fitted model. 
component 
Should all predictor variables, predictor variables for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. Note that the conditional component is also called count or mean component, depending on the model. 
... 
Currently not used. 
For models with smooth terms or zeroinflation component, a data frame with three columns: the parameter names, the related point estimates and the component.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_parameters(m)
The get_predicted()
function is a robust, flexible and userfriendly
alternative to base R predict()
function. Additional features and
advantages include availability of uncertainty intervals (CI), bootstrapping,
a more intuitive API and the support of more models than base R's predict()
function. However, although the interface are simplified, it is still very
important to read the documentation of the arguments. This is because making
"predictions" (a lose term for a variety of things) is a nontrivial process,
with lots of caveats and complications. Read the 'Details' section for more
information.
get_predicted_ci()
returns the confidence (or prediction) interval (CI)
associated with predictions made by a model. This function can be called
separately on a vector of predicted values. get_predicted()
usually
returns confidence intervals (included as attribute, and accessible via the
as.data.frame()
method) by default. It is preferred to rely on the
get_predicted()
function for standard errors and confidence intervals 
use get_predicted_ci()
only if standard errors and confidence intervals
are not available otherwise.
get_predicted(x, ...) ## Default S3 method: get_predicted( x, data = NULL, predict = "expectation", ci = NULL, ci_type = "confidence", ci_method = NULL, dispersion_method = "sd", vcov = NULL, vcov_args = NULL, verbose = TRUE, ... ) ## S3 method for class 'lm' get_predicted( x, data = NULL, predict = "expectation", ci = NULL, iterations = NULL, verbose = TRUE, ... ) ## S3 method for class 'stanreg' get_predicted( x, data = NULL, predict = "expectation", iterations = NULL, ci = NULL, ci_method = NULL, include_random = "default", include_smooth = TRUE, verbose = TRUE, ... ) ## S3 method for class 'gam' get_predicted( x, data = NULL, predict = "expectation", ci = NULL, include_random = TRUE, include_smooth = TRUE, iterations = NULL, verbose = TRUE, ... ) ## S3 method for class 'lmerMod' get_predicted( x, data = NULL, predict = "expectation", ci = NULL, ci_method = NULL, include_random = "default", iterations = NULL, verbose = TRUE, ... ) ## S3 method for class 'principal' get_predicted(x, data = NULL, ...)
get_predicted(x, ...) ## Default S3 method: get_predicted( x, data = NULL, predict = "expectation", ci = NULL, ci_type = "confidence", ci_method = NULL, dispersion_method = "sd", vcov = NULL, vcov_args = NULL, verbose = TRUE, ... ) ## S3 method for class 'lm' get_predicted( x, data = NULL, predict = "expectation", ci = NULL, iterations = NULL, verbose = TRUE, ... ) ## S3 method for class 'stanreg' get_predicted( x, data = NULL, predict = "expectation", iterations = NULL, ci = NULL, ci_method = NULL, include_random = "default", include_smooth = TRUE, verbose = TRUE, ... ) ## S3 method for class 'gam' get_predicted( x, data = NULL, predict = "expectation", ci = NULL, include_random = TRUE, include_smooth = TRUE, iterations = NULL, verbose = TRUE, ... ) ## S3 method for class 'lmerMod' get_predicted( x, data = NULL, predict = "expectation", ci = NULL, ci_method = NULL, include_random = "default", iterations = NULL, verbose = TRUE, ... ) ## S3 method for class 'principal' get_predicted(x, data = NULL, ...)
x 
A statistical model (can also be a data.frame, in which case the second argument has to be a model). 
... 
Other argument to be passed, for instance to 
data 
An optional data frame in which to look for variables with which
to predict. If omitted, the data used to fit the model is used. Visualization
matrices can be generated using 
predict 
string or

ci 
The interval level. Default is 
ci_type 
Can be 
ci_method 
The method for computing p values and confidence intervals. Possible values depend on model type.
See 
dispersion_method 
Bootstrap dispersion and Bayesian posterior summary:

vcov 
Variancecovariance matrix used to compute uncertainty estimates (e.g., for robust standard errors). This argument accepts a covariance matrix, a function which returns a covariance matrix, or a string which identifies the function to be used to compute the covariance matrix.

vcov_args 
List of arguments to be passed to the function identified by
the 
verbose 
Toggle warnings. 
iterations 
For Bayesian models, this corresponds to the number of
posterior draws. If 
include_random 
If 
include_smooth 
For General Additive Models (GAMs). If 
In insight::get_predicted()
, the predict
argument jointly
modulates two separate concepts, the scale and the uncertainty interval.
The fitted values (i.e. predictions for the response). For Bayesian
or bootstrapped models (when iterations != NULL
), iterations (as
columns and observations are rows) can be accessed via as.data.frame()
.
Linear models  lm()
: For linear models, prediction
intervals (predict="prediction"
) show the range that likely
contains the value of a new observation (in what range it is likely to
fall), whereas confidence intervals (predict="expectation"
or
predict="link"
) reflect the uncertainty around the estimated
parameters (and gives the range of uncertainty of the regression line). In
general, Prediction Intervals (PIs) account for both the uncertainty in the
model's parameters, plus the random variation of the individual values.
Thus, prediction intervals are always wider than confidence intervals.
Moreover, prediction intervals will not necessarily become narrower as the
sample size increases (as they do not reflect only the quality of the fit,
but also the variability within the data).
Generalized Linear models  glm()
: For binomial models,
prediction intervals are somewhat useless (for instance, for a binomial
(Bernoulli) model for which the dependent variable is a vector of 1s and
0s, the prediction interval is... [0, 1]
).
When users set the predict
argument to "expectation"
, the predictions
are returned on the response scale, which is arguably the most convenient
way to understand and visualize relationships of interest. When users set
the predict
argument to "link"
, predictions are returned on the link
scale, and no transformation is applied. For instance, for a logistic
regression model, the response scale corresponds to the predicted
probabilities, whereas the linkscale makes predictions of logodds
(probabilities on the logit scale). Note that when users select
predict="classification"
in binomial models, the get_predicted()
function will first calculate predictions as if the user had selected
predict="expectation"
. Then, it will round the responses in order to
return the most likely outcome.
The arguments vcov
and vcov_args
can be used to calculate robust
standard errors for confidence intervals of predictions. These arguments,
when provided in get_predicted()
, are passed down to get_predicted_ci()
,
thus, see the related documentation there for more
details.
For predictions based on multiple iterations, for instance in the case of Bayesian
models and bootstrapped predictions, the function used to compute the centrality
(pointestimate predictions) can be modified via the centrality_function
argument. For instance, get_predicted(model, centrality_function = stats::median)
.
The default is mean
. Individual draws can be accessed by running
iter < as.data.frame(get_predicted(model))
, and their iterations can be
reshaped into a long format by bayestestR::reshape_iterations(iter)
.
data(mtcars) x < lm(mpg ~ cyl + hp, data = mtcars) predictions < get_predicted(x, ci = 0.95) predictions # Options and methods  get_predicted(x, predict = "prediction") # Get CI as.data.frame(predictions) # Bootstrapped as.data.frame(get_predicted(x, iterations = 4)) # Same as as.data.frame(..., keep_iterations = FALSE) summary(get_predicted(x, iterations = 4)) # Different prediction types  data(iris) data < droplevels(iris[1:100, ]) # Fit a logistic model x < glm(Species ~ Sepal.Length, data = data, family = "binomial") # Expectation (default): response scale + CI pred < get_predicted(x, predict = "expectation", ci = 0.95) head(as.data.frame(pred)) # Prediction: response scale + PI pred < get_predicted(x, predict = "prediction", ci = 0.95) head(as.data.frame(pred)) # Link: link scale + CI pred < get_predicted(x, predict = "link", ci = 0.95) head(as.data.frame(pred)) # Classification: classification "type" + PI pred < get_predicted(x, predict = "classification", ci = 0.95) head(as.data.frame(pred))
data(mtcars) x < lm(mpg ~ cyl + hp, data = mtcars) predictions < get_predicted(x, ci = 0.95) predictions # Options and methods  get_predicted(x, predict = "prediction") # Get CI as.data.frame(predictions) # Bootstrapped as.data.frame(get_predicted(x, iterations = 4)) # Same as as.data.frame(..., keep_iterations = FALSE) summary(get_predicted(x, iterations = 4)) # Different prediction types  data(iris) data < droplevels(iris[1:100, ]) # Fit a logistic model x < glm(Species ~ Sepal.Length, data = data, family = "binomial") # Expectation (default): response scale + CI pred < get_predicted(x, predict = "expectation", ci = 0.95) head(as.data.frame(pred)) # Prediction: response scale + PI pred < get_predicted(x, predict = "prediction", ci = 0.95) head(as.data.frame(pred)) # Link: link scale + CI pred < get_predicted(x, predict = "link", ci = 0.95) head(as.data.frame(pred)) # Classification: classification "type" + PI pred < get_predicted(x, predict = "classification", ci = 0.95) head(as.data.frame(pred))
Confidence intervals around predicted values
get_predicted_ci(x, ...) ## Default S3 method: get_predicted_ci( x, predictions = NULL, data = NULL, se = NULL, ci = 0.95, ci_type = "confidence", ci_method = NULL, dispersion_method = "sd", vcov = NULL, vcov_args = NULL, verbose = TRUE, ... )
get_predicted_ci(x, ...) ## Default S3 method: get_predicted_ci( x, predictions = NULL, data = NULL, se = NULL, ci = 0.95, ci_type = "confidence", ci_method = NULL, dispersion_method = "sd", vcov = NULL, vcov_args = NULL, verbose = TRUE, ... )
x 
A statistical model (can also be a data.frame, in which case the second argument has to be a model). 
... 
Other argument to be passed, for instance to 
predictions 
A vector of predicted values (as obtained by

data 
An optional data frame in which to look for variables with which
to predict. If omitted, the data used to fit the model is used. Visualization
matrices can be generated using 
se 
Numeric vector of standard error of predicted values. If 
ci 
The interval level. Default is 
ci_type 
Can be 
ci_method 
The method for computing p values and confidence intervals. Possible values depend on model type.
See 
dispersion_method 
Bootstrap dispersion and Bayesian posterior summary:

vcov 
Variancecovariance matrix used to compute uncertainty estimates (e.g., for robust standard errors). This argument accepts a covariance matrix, a function which returns a covariance matrix, or a string which identifies the function to be used to compute the covariance matrix.

vcov_args 
List of arguments to be passed to the function identified by
the 
verbose 
Toggle warnings. 
Typically, get_predicted()
returns confidence intervals based on the standard
errors as returned by the predict()
function, assuming normal distribution
(+/ 1.96 * SE
) resp. a Student's tdistribution (if degrees of freedom are
available). If predict()
for a certain class does not return standard
errors (for example, merModobjects), these are calculated manually, based
on following steps: matrixmultiply X
by the parameter vector B
to get the
predictions, then extract the variancecovariance matrix V
of the parameters
and compute XVX'
to get the variancecovariance matrix of the predictions.
The squareroot of the diagonal of this matrix represent the standard errors
of the predictions, which are then multiplied by the critical teststatistic
value (e.g., ~1.96 for normal distribution) for the confidence intervals.
If ci_type = "prediction"
, prediction intervals are calculated. These are
wider than confidence intervals, because they also take into account the
uncertainty of the model itself. Before taking the squareroot of the
diagonal of the variancecovariance matrix, get_predicted_ci()
adds the
residual variance to these values. For mixed models, get_variance_residual()
is used, while get_sigma()^2
is used for nonmixed models.
It is preferred to rely on standard errors returned by get_predicted()
(i.e.
returned by the predict()
function), because these are more accurate than
manually calculated standard errors. Use get_predicted_ci()
only if standard
errors are not available otherwise. An exception are Bayesian models or
bootstrapped predictions, where get_predicted_ci()
returns quantiles of the
posterior distribution or bootstrapped samples of the predictions. These are
actually accurate standard errors resp. confidence (or uncertainty) intervals.
# Confidence Intervals for Model Predictions #  data(mtcars) # Linear model #  x < lm(mpg ~ cyl + hp, data = mtcars) predictions < predict(x) ci_vals < get_predicted_ci(x, predictions, ci_type = "prediction") head(ci_vals) ci_vals < get_predicted_ci(x, predictions, ci_type = "confidence") head(ci_vals) ci_vals < get_predicted_ci(x, predictions, ci = c(0.8, 0.9, 0.95)) head(ci_vals) # Bootstrapped #  predictions < get_predicted(x, iterations = 500) get_predicted_ci(x, predictions) ci_vals < get_predicted_ci(x, predictions, ci = c(0.80, 0.95)) head(ci_vals) datawizard::reshape_ci(ci_vals) ci_vals < get_predicted_ci(x, predictions, dispersion_method = "MAD", ci_method = "HDI" ) head(ci_vals) # Logistic model #  x < glm(vs ~ wt, data = mtcars, family = "binomial") predictions < predict(x, type = "link") ci_vals < get_predicted_ci(x, predictions, ci_type = "prediction") head(ci_vals) ci_vals < get_predicted_ci(x, predictions, ci_type = "confidence") head(ci_vals)
# Confidence Intervals for Model Predictions #  data(mtcars) # Linear model #  x < lm(mpg ~ cyl + hp, data = mtcars) predictions < predict(x) ci_vals < get_predicted_ci(x, predictions, ci_type = "prediction") head(ci_vals) ci_vals < get_predicted_ci(x, predictions, ci_type = "confidence") head(ci_vals) ci_vals < get_predicted_ci(x, predictions, ci = c(0.8, 0.9, 0.95)) head(ci_vals) # Bootstrapped #  predictions < get_predicted(x, iterations = 500) get_predicted_ci(x, predictions) ci_vals < get_predicted_ci(x, predictions, ci = c(0.80, 0.95)) head(ci_vals) datawizard::reshape_ci(ci_vals) ci_vals < get_predicted_ci(x, predictions, dispersion_method = "MAD", ci_method = "HDI" ) head(ci_vals) # Logistic model #  x < glm(vs ~ wt, data = mtcars, family = "binomial") predictions < predict(x, type = "link") ci_vals < get_predicted_ci(x, predictions, ci_type = "prediction") head(ci_vals) ci_vals < get_predicted_ci(x, predictions, ci_type = "confidence") head(ci_vals)
Returns the data from all predictor variables (fixed effects).
get_predictors(x, verbose = TRUE)
get_predictors(x, verbose = TRUE)
x 
A fitted model. 
verbose 
Toggle messages and warnings. 
The data from all predictor variables, as data frame.
m < lm(mpg ~ wt + cyl + vs, data = mtcars) head(get_predictors(m))
m < lm(mpg ~ wt + cyl + vs, data = mtcars) head(get_predictors(m))
Provides a summary of the prior distributions used for the parameters in a given model.
get_priors(x, ...) ## S3 method for class 'brmsfit' get_priors(x, verbose = TRUE, ...)
get_priors(x, ...) ## S3 method for class 'brmsfit' get_priors(x, verbose = TRUE, ...)
x 
A Bayesian model. 
... 
Currently not used. 
verbose 
Toggle warnings and messages. 
A data frame with a summary of the prior distributions used for the parameters in a given model.
library(rstanarm) model < stan_glm(Sepal.Width ~ Species * Petal.Length, data = iris) get_priors(model)
library(rstanarm) model < stan_glm(Sepal.Width ~ Species * Petal.Length, data = iris) get_priors(model)
Returns the data from all random effects terms.
get_random(x)
get_random(x)
x 
A fitted mixed model. 
The data from all random effects terms, as data frame. Or NULL
if model has no random effects.
data(sleepstudy) # prepare some data... sleepstudy$mygrp < sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp < NA for (i in 1:5) { filter_group < sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } m < lmer( Reaction ~ Days + (1  mygrp / mysubgrp) + (1  Subject), data = sleepstudy ) head(get_random(m))
data(sleepstudy) # prepare some data... sleepstudy$mygrp < sample(1:5, size = 180, replace = TRUE) sleepstudy$mysubgrp < NA for (i in 1:5) { filter_group < sleepstudy$mygrp == i sleepstudy$mysubgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } m < lmer( Reaction ~ Days + (1  mygrp / mysubgrp) + (1  Subject), data = sleepstudy ) head(get_random(m))
Returns the residuals from regression models.
get_residuals(x, ...) ## Default S3 method: get_residuals(x, weighted = FALSE, verbose = TRUE, ...)
get_residuals(x, ...) ## Default S3 method: get_residuals(x, weighted = FALSE, verbose = TRUE, ...)
x 
A model. 
... 
Passed down to 
weighted 
Logical, if 
verbose 
Toggle warnings and messages. 
The residuals, or NULL
if this information could not be
accessed.
This function returns the default type of residuals, i.e. for the
response from linear models, the deviance residuals for models of class
glm
etc. To access different types, pass down the type
argument (see
'Examples').
This function is a robust alternative to residuals()
, as it works for
some special model objects that otherwise do not respond properly to calling
residuals()
.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_residuals(m) m < glm(vs ~ wt + cyl + mpg, data = mtcars, family = binomial()) get_residuals(m) # type = "deviance" by default get_residuals(m, type = "response")
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_residuals(m) m < glm(vs ~ wt + cyl + mpg, data = mtcars, family = binomial()) get_residuals(m) # type = "deviance" by default get_residuals(m, type = "response")
Returns the values the response variable(s) from a model object. If the model is a multivariate response model, a data frame with values from all response variables is returned.
get_response(x, ...) ## Default S3 method: get_response( x, select = NULL, as_proportion = TRUE, source = "environment", verbose = TRUE, ... ) ## S3 method for class 'nestedLogit' get_response(x, dichotomies = FALSE, source = "environment", ...)
get_response(x, ...) ## Default S3 method: get_response( x, select = NULL, as_proportion = TRUE, source = "environment", verbose = TRUE, ... ) ## S3 method for class 'nestedLogit' get_response(x, dichotomies = FALSE, source = "environment", ...)
x 
A fitted model. 
... 
Currently not used. 
select 
Optional name(s) of response variables for which to extract values. Can be used in case of regression models with multiple response variables. 
as_proportion 
Logical, if 
source 
String, indicating from where data should be recovered. If

verbose 
Toggle warnings. 
dichotomies 
Logical, if model is a 
The values of the response variable, as vector, or a data frame if
x
has more than one defined response variable.
data(cbpp) cbpp$trials < cbpp$size  cbpp$incidence dat << cbpp m < glm(cbind(incidence, trials) ~ period, data = dat, family = binomial) head(get_response(m)) get_response(m, select = "incidence") data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_response(m)
data(cbpp) cbpp$trials < cbpp$size  cbpp$incidence dat << cbpp m < glm(cbind(incidence, trials) ~ period, data = dat, family = binomial) head(get_response(m)) get_response(m, select = "incidence") data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_response(m)
Returns sigma
, which corresponds the estimated standard
deviation of the residuals. This function extends the sigma()
base R
generic for models that don't have implemented it. It also computes the
confidence interval (CI), which is stored as an attribute.
Sigma is a keycomponent of regression models, and part of the socalled
auxiliary parameters that are estimated. Indeed, linear models for instance
assume that the residuals comes from a normal distribution with mean 0 and
standard deviation sigma
. See the details section below for more
information about its interpretation and calculation.
get_sigma(x, ci = NULL, verbose = TRUE)
get_sigma(x, ci = NULL, verbose = TRUE)
x 
A model. 
ci 
Scalar, the CI level. The default ( 
verbose 
Toggle messages and warnings. 
The residual standard deviation (sigma), or NULL
if this
information could not be accessed.
The residual standard deviation, σ,
indicates that the predicted outcome will be within +/
σ units of the linear predictor for
approximately 68%
of the data points (Gelman, Hill & Vehtari 2020, p.84).
In other words, the residual standard deviation indicates the accuracy for a
model to predict scores, thus it can be thought of as "a measure of the
average distance each observation falls from its prediction from the model"
(Gelman, Hill & Vehtari 2020, p.168).
σ can be considered as a measure of
the unexplained variation in the data, or of the precision of inferences
about regression coefficients.
By default, get_sigma()
tries to extract sigma by calling stats::sigma()
.
If the modelobject has no sigma()
method, the next step is calculating
sigma as squareroot of the modeldeviance divided by the residual degrees of
freedom. Finally, if even this approach fails, and x
is a mixed model, the
residual standard deviation is accessed using the squareroot from
get_variance_residual()
.
Gelman, A., Hill, J., & Vehtari, A. (2020). Regression and Other Stories. Cambridge University Press.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_sigma(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_sigma(m)
Returns the statistic (t, z
, ...) for model
estimates. In most cases, this is the related column from
coef(summary())
.
get_statistic(x, ...) ## Default S3 method: get_statistic(x, column_index = 3, verbose = TRUE, ...) ## S3 method for class 'glmmTMB' get_statistic(x, component = "all", ...) ## S3 method for class 'emmGrid' get_statistic(x, ci = 0.95, adjust = "none", merge_parameters = FALSE, ...) ## S3 method for class 'gee' get_statistic(x, robust = FALSE, ...)
get_statistic(x, ...) ## Default S3 method: get_statistic(x, column_index = 3, verbose = TRUE, ...) ## S3 method for class 'glmmTMB' get_statistic(x, component = "all", ...) ## S3 method for class 'emmGrid' get_statistic(x, ci = 0.95, adjust = "none", merge_parameters = FALSE, ...) ## S3 method for class 'gee' get_statistic(x, robust = FALSE, ...)
x 
A model. 
... 
Currently not used. 
column_index 
For model objects that have no defined

verbose 
Toggle messages and warnings. 
component 
String, indicating the model component for which parameters
should be returned. The default for all models is

ci 
Confidence Interval (CI) level. Default to 
adjust 
Character value naming the method used to adjust pvalues or
confidence intervals. See 
merge_parameters 
Logical, if 
robust 
Logical, if 
A data frame with the model's parameter names and the related test statistic.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_statistic(m)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_statistic(m)
This functions checks whether any transformation, such as log or exptransforming, was applied to the response variable (dependent variable) in a regression formula, and returns the related function that was used for transformation.
get_transformation(x, verbose = TRUE)
get_transformation(x, verbose = TRUE)
x 
A regression model. 
verbose 
Logical, if 
A list of two functions: $transformation
, the function that was used to
transform the response variable; $inverse
, the inversefunction of
$transformation
(can be used for "backtransformation"). If no
transformation was applied, both listelements $transformation
and
$inverse
just return function(x) x
. If transformation is unknown,
NULL
is returned.
# identity, no transformation model < lm(Sepal.Length ~ Species, data = iris) get_transformation(model) # logtransformation model < lm(log(Sepal.Length) ~ Species, data = iris) get_transformation(model) # logfunction get_transformation(model)$transformation(0.3) log(0.3) # inverse function is exp() get_transformation(model)$inverse(0.3) exp(0.3)
# identity, no transformation model < lm(Sepal.Length ~ Species, data = iris) get_transformation(model) # logtransformation model < lm(log(Sepal.Length) ~ Species, data = iris) get_transformation(model) # logfunction get_transformation(model)$transformation(0.3) log(0.3) # inverse function is exp() get_transformation(model)$inverse(0.3) exp(0.3)
Returns the variancecovariance, as retrieved by stats::vcov()
, but works
for more model objects that probably don't provide a vcov()
method.
get_varcov(x, ...) ## Default S3 method: get_varcov(x, verbose = TRUE, vcov = NULL, vcov_args = NULL, ...) ## S3 method for class 'glmgee' get_varcov( x, verbose = TRUE, vcov = c("robust", "dfadjusted", "model", "biascorrected", "jackknife"), ... ) ## S3 method for class 'nestedLogit' get_varcov( x, component = "all", verbose = TRUE, vcov = NULL, vcov_args = NULL, ... ) ## S3 method for class 'betareg' get_varcov( x, component = c("conditional", "precision", "all"), verbose = TRUE, ... ) ## S3 method for class 'clm2' get_varcov(x, component = c("all", "conditional", "scale"), ...) ## S3 method for class 'truncreg' get_varcov(x, component = c("conditional", "all"), verbose = TRUE, ...) ## S3 method for class 'hurdle' get_varcov( x, component = c("conditional", "zero_inflated", "zi", "all"), vcov = NULL, vcov_args = NULL, verbose = TRUE, ... ) ## S3 method for class 'glmmTMB' get_varcov( x, component = c("conditional", "zero_inflated", "zi", "dispersion", "all"), verbose = TRUE, ... ) ## S3 method for class 'MixMod' get_varcov( x, effects = c("fixed", "random"), component = c("conditional", "zero_inflated", "zi", "dispersion", "auxiliary", "all"), verbose = TRUE, ... ) ## S3 method for class 'brmsfit' get_varcov(x, component = "conditional", verbose = TRUE, ...) ## S3 method for class 'betamfx' get_varcov( x, component = c("conditional", "precision", "all"), verbose = TRUE, ... ) ## S3 method for class 'aov' get_varcov(x, complete = FALSE, verbose = TRUE, ...) ## S3 method for class 'mixor' get_varcov(x, effects = c("all", "fixed", "random"), verbose = TRUE, ...)
get_varcov(x, ...) ## Default S3 method: get_varcov(x, verbose = TRUE, vcov = NULL, vcov_args = NULL, ...) ## S3 method for class 'glmgee' get_varcov( x, verbose = TRUE, vcov = c("robust", "dfadjusted", "model", "biascorrected", "jackknife"), ... ) ## S3 method for class 'nestedLogit' get_varcov( x, component = "all", verbose = TRUE, vcov = NULL, vcov_args = NULL, ... ) ## S3 method for class 'betareg' get_varcov( x, component = c("conditional", "precision", "all"), verbose = TRUE, ... ) ## S3 method for class 'clm2' get_varcov(x, component = c("all", "conditional", "scale"), ...) ## S3 method for class 'truncreg' get_varcov(x, component = c("conditional", "all"), verbose = TRUE, ...) ## S3 method for class 'hurdle' get_varcov( x, component = c("conditional", "zero_inflated", "zi", "all"), vcov = NULL, vcov_args = NULL, verbose = TRUE, ... ) ## S3 method for class 'glmmTMB' get_varcov( x, component = c("conditional", "zero_inflated", "zi", "dispersion", "all"), verbose = TRUE, ... ) ## S3 method for class 'MixMod' get_varcov( x, effects = c("fixed", "random"), component = c("conditional", "zero_inflated", "zi", "dispersion", "auxiliary", "all"), verbose = TRUE, ... ) ## S3 method for class 'brmsfit' get_varcov(x, component = "conditional", verbose = TRUE, ...) ## S3 method for class 'betamfx' get_varcov( x, component = c("conditional", "precision", "all"), verbose = TRUE, ... ) ## S3 method for class 'aov' get_varcov(x, complete = FALSE, verbose = TRUE, ...) ## S3 method for class 'mixor' get_varcov(x, effects = c("all", "fixed", "random"), verbose = TRUE, ...)
x 
A model. 
... 
Currently not used. 
verbose 
Toggle warnings. 
vcov 
Variancecovariance matrix used to compute uncertainty estimates (e.g., for robust standard errors). This argument accepts a covariance matrix, a function which returns a covariance matrix, or a string which identifies the function to be used to compute the covariance matrix.

vcov_args 
List of arguments to be passed to the function identified by
the 
component 
Should the complete variancecovariance matrix of the model
be returned, or only for specific model components only (like count or
zeroinflated model parts)? Applies to models with zeroinflated component,
or models with precision (e.g. 
effects 
Should the complete variancecovariance matrix of the model
be returned, or only for specific model parameters only? Currently only
applies to models of class 
complete 
Logical, if 
The variancecovariance matrix, as matrix
object.
get_varcov()
tries to return the nearest positive definite matrix
in case of negative eigenvalues of the variancecovariance matrix. This
ensures that it is still possible, for instance, to calculate standard
errors of model parameters. A message is shown when the matrix is negative
definite and a corrected matrix is returned.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_varcov(m) # vcov of zeroinflation component from hurdlemodel data("bioChemists", package = "pscl") mod < hurdle(art ~ phd + fem  ment, data = bioChemists, dist = "negbin") get_varcov(mod, component = "zero_inflated") # robust vcov of, count component from hurdlemodel data("bioChemists", package = "pscl") mod < hurdle(art ~ phd + fem  ment, data = bioChemists, dist = "negbin") get_varcov( mod, component = "conditional", vcov = "BS", vcov_args = list(R = 50) )
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) get_varcov(m) # vcov of zeroinflation component from hurdlemodel data("bioChemists", package = "pscl") mod < hurdle(art ~ phd + fem  ment, data = bioChemists, dist = "negbin") get_varcov(mod, component = "zero_inflated") # robust vcov of, count component from hurdlemodel data("bioChemists", package = "pscl") mod < hurdle(art ~ phd + fem  ment, data = bioChemists, dist = "negbin") get_varcov( mod, component = "conditional", vcov = "BS", vcov_args = list(R = 50) )
This function extracts the different variance components of a mixed model and
returns the result as list. Functions like get_variance_residual(x)
or
get_variance_fixed(x)
are shortcuts for get_variance(x, component = "residual")
etc.
get_variance(x, ...) ## S3 method for class 'merMod' get_variance( x, component = c("all", "fixed", "random", "residual", "distribution", "dispersion", "intercept", "slope", "rho01", "rho00"), tolerance = 1e08, null_model = NULL, approximation = "lognormal", verbose = TRUE, ... ) ## S3 method for class 'glmmTMB' get_variance( x, component = c("all", "fixed", "random", "residual", "distribution", "dispersion", "intercept", "slope", "rho01", "rho00"), model_component = NULL, tolerance = 1e08, null_model = NULL, approximation = "lognormal", verbose = TRUE, ... ) get_variance_residual(x, verbose = TRUE, ...) get_variance_fixed(x, verbose = TRUE, ...) get_variance_random(x, verbose = TRUE, tolerance = 1e08, ...) get_variance_distribution(x, verbose = TRUE, ...) get_variance_dispersion(x, verbose = TRUE, ...) get_variance_intercept(x, verbose = TRUE, ...) get_variance_slope(x, verbose = TRUE, ...) get_correlation_slope_intercept(x, verbose = TRUE, ...) get_correlation_slopes(x, verbose = TRUE, ...)
get_variance(x, ...) ## S3 method for class 'merMod' get_variance( x, component = c("all", "fixed", "random", "residual", "distribution", "dispersion", "intercept", "slope", "rho01", "rho00"), tolerance = 1e08, null_model = NULL, approximation = "lognormal", verbose = TRUE, ... ) ## S3 method for class 'glmmTMB' get_variance( x, component = c("all", "fixed", "random", "residual", "distribution", "dispersion", "intercept", "slope", "rho01", "rho00"), model_component = NULL, tolerance = 1e08, null_model = NULL, approximation = "lognormal", verbose = TRUE, ... ) get_variance_residual(x, verbose = TRUE, ...) get_variance_fixed(x, verbose = TRUE, ...) get_variance_random(x, verbose = TRUE, tolerance = 1e08, ...) get_variance_distribution(x, verbose = TRUE, ...) get_variance_dispersion(x, verbose = TRUE, ...) get_variance_intercept(x, verbose = TRUE, ...) get_variance_slope(x, verbose = TRUE, ...) get_correlation_slope_intercept(x, verbose = TRUE, ...) get_correlation_slopes(x, verbose = TRUE, ...)
x 
A mixed effects model. 
... 
Currently not used. 
component 
Character value, indicating the variance component that
should be returned. By default, all variance components are returned. The
distributionspecific ( 
tolerance 
Tolerance for singularity check of random effects, to decide
whether to compute random effect variances or not. Indicates up to which
value the convergence result is accepted. The larger tolerance is, the
stricter the test will be. See 
null_model 
Optional, a nullmodel to be used for the calculation of
random effect variances. If 
approximation 
Character string, indicating the approximation method
for the distributionspecific (observation level, or residual) variance. Only
applies to nonGaussian models. Can be 
verbose 
Toggle off warnings. 
model_component 
For models that can have a zeroinflation component,
specify for which component variances should be returned. If 
This function returns different variance components from mixed models, which are needed, for instance, to calculate rsquared measures or the intraclasscorrelation coefficient (ICC).
A list with following elements:
var.fixed
, variance attributable to the fixed effects
var.random
, (mean) variance of random effects
var.residual
, residual variance (sum of dispersion and distributionspecific/observation level variance)
var.distribution
, distributionspecific (or observation level) variance
var.dispersion
, variance due to additive dispersion
var.intercept
, the randominterceptvariance, or betweensubjectvariance (τ_{00})
var.slope
, the randomslopevariance (τ_{11})
cor.slope_intercept
, the randomslopeinterceptcorrelation (ρ_{01})
cor.slopes
, the correlation between random slopes (ρ_{00})
The fixed effects variance, σ^{2}_{f}, is the variance of the matrixmultiplication β∗X (parameter vector by model matrix).
The random effect variance, σ^{2}_{i}, represents the mean random effect variance of the model. Since this variance reflects the "average" random effects variance for mixed models, it is also appropriate for models with more complex random effects structures, like random slopes or nested random effects. Details can be found in Johnson 2014, in particular equation 10. For simple randomintercept models, the random effects variance equals the randomintercept variance.
The distributionspecific variance,
σ^{2}_{d},
is the conditional variance of the response given the predictors , Var[yx]
,
which depends on the model family.
Gaussian: For Gaussian models, it is
σ^{2} (i.e. sigma(model)^2
).
Bernoulli: For models with binary outcome, it is
π^{2}/3 for logitlink,
1
for probitlink, and π^{2}/6
for clogloglinks.
Binomial: For other binomial models, the distributionspecific variance for Bernoulli models is used, divided by a weighting factor based on the number of trials and successes.
Gamma: Models from Gammafamilies use μ^{2}
(as obtained from family$variance()
).
For all other models, the distributionspecific variance is by default
based on lognormal approximation,
log(1 + var(x) / μ^{2})
(see Nakagawa et al. 2017). Other approximation methods can be specified
with the approximation
argument.
Zeroinflation models: The expected variance of a zeroinflated model is computed according to Zuur et al. 2012, p277.
The variance for the additive overdispersion term,
σ^{2}_{e},
represents "the excess variation relative to what is expected from a certain
distribution" (Nakagawa et al. 2017). In (most? many?) cases, this will be
0
.
The residual variance, σ^{2}_{ε}, is simply σ^{2}_{d} + σ^{2}_{e}.
The random intercept variance, or betweensubject variance
(τ_{00}), is obtained from
VarCorr()
. It indicates how much groups or subjects differ from each other,
while the residual variance σ^{2}_{ε}
indicates the withinsubject variance.
The random slope variance (τ_{11})
is obtained from VarCorr()
. This measure is only available for mixed models
with random slopes.
The random slopeintercept correlation
(ρ_{01}) is obtained from
VarCorr()
. This measure is only available for mixed models with random
intercepts and slopes.
This function supports models of class merMod
(including models from
blme), clmm
, cpglmm
, glmmadmb
, glmmTMB
, MixMod
, lme
, mixed
,
rlmerMod
, stanreg
, brmsfit
or wbm
. Support for objects of class
MixMod
(GLMMadaptive), lme
(nlme) or brmsfit
(brms) is
not fully implemented or tested, and therefore may not work for all models
of the aforementioned classes.
The results are validated against the solutions provided by Nakagawa et al. (2017), in particular examples shown in the Supplement 2 of the paper. Other model families are validated against results from the MuMIn package. This means that the returned variance components should be accurate and reliable for following mixed models or model families:
Bernoulli (logistic) regression
Binomial regression (with other than binary outcomes)
Poisson and QuasiPoisson regression
Negative binomial regression (including nbinom1 and nbinom2 families)
Gaussian regression (linear models)
Gamma regression
Tweedie regression
Beta regression
Ordered beta regression
Following model families are not yet validated, but should work:
Zeroinflated and hurdle models
Betabinomial regression
Compound Poisson regression
Generalized Poisson regression
Lognormal regression
Extracting variance components for models with zeroinflation part is not straightforward, because it is not definitely clear how the distributionspecific variance should be calculated. Therefore, it is recommended to carefully inspect the results, and probably validate against other models, e.g. Bayesian models (although results may be only roughly comparable).
Lognormal regressions (e.g. lognormal()
family in glmmTMB or
gaussian("log")
) often have a very low fixed effects variance (if they were
calculated as suggested by Nakagawa et al. 2017). This results in very low
ICC or rsquared values, which may not be meaningful (see
performance::icc()
or performance::r2_nakagawa()
).
Johnson, P. C. D. (2014). Extension of Nakagawa & Schielzeth’s R2 GLMM to random slopes models. Methods in Ecology and Evolution, 5(9), 944–946. doi:10.1111/2041210X.12225
Nakagawa, S., Johnson, P. C. D., & Schielzeth, H. (2017). The coefficient of determination R2 and intraclass correlation coefficient from generalized linear mixedeffects models revisited and expanded. Journal of The Royal Society Interface, 14(134), 20170213. doi:10.1098/rsif.2017.0213
Zuur, A. F., Savel'ev, A. A., & Ieno, E. N. (2012). Zero inflated models and generalized linear mixed models with R. Newburgh, United Kingdom: Highland Statistics.
library(lme4) data(sleepstudy) m < lmer(Reaction ~ Days + (1 + Days  Subject), data = sleepstudy) get_variance(m) get_variance_fixed(m) get_variance_residual(m)
library(lme4) data(sleepstudy) m < lmer(Reaction ~ Days + (1 + Days  Subject), data = sleepstudy) get_variance(m) get_variance_fixed(m) get_variance_residual(m)
Returns weighting variable of a model.
get_weights(x, ...) ## Default S3 method: get_weights(x, remove_na = FALSE, null_as_ones = FALSE, na_rm = remove_na, ...)
get_weights(x, ...) ## Default S3 method: get_weights(x, remove_na = FALSE, null_as_ones = FALSE, na_rm = remove_na, ...)
x 
A fitted model. 
... 
Currently not used. 
remove_na 
Logical, if 
null_as_ones 
Logical, if 
na_rm 
Deprecated, use 
The weighting variable, or NULL
if no weights were specified.
If the weighting variable should also be returned (instead of NULL
)
when all weights are set to 1 (i.e. no weighting),
set null_as_ones = TRUE
.
data(mtcars) set.seed(123) mtcars$weight < rnorm(nrow(mtcars), 1, .3) # LMs m < lm(mpg ~ wt + cyl + vs, data = mtcars, weights = weight) get_weights(m) get_weights(lm(mpg ~ wt, data = mtcars), null_as_ones = TRUE) # GLMs m < glm(vs ~ disp + mpg, data = mtcars, weights = weight, family = quasibinomial) get_weights(m) m < glm(cbind(cyl, gear) ~ mpg, data = mtcars, weights = weight, family = binomial) get_weights(m)
data(mtcars) set.seed(123) mtcars$weight < rnorm(nrow(mtcars), 1, .3) # LMs m < lm(mpg ~ wt + cyl + vs, data = mtcars, weights = weight) get_weights(m) get_weights(lm(mpg ~ wt, data = mtcars), null_as_ones = TRUE) # GLMs m < glm(vs ~ disp + mpg, data = mtcars, weights = weight, family = quasibinomial) get_weights(m) m < glm(cbind(cyl, gear) ~ mpg, data = mtcars, weights = weight, family = binomial) get_weights(m)
Checks if model has an intercept.
has_intercept(x, verbose = TRUE)
has_intercept(x, verbose = TRUE)
x 
A model object. 
verbose 
Toggle warnings. 
TRUE
if x
has an intercept, FALSE
otherwise.
model < lm(mpg ~ 0 + gear, data = mtcars) has_intercept(model) model < lm(mpg ~ gear, data = mtcars) has_intercept(model) model < lmer(Reaction ~ 0 + Days + (Days  Subject), data = sleepstudy) has_intercept(model) model < lmer(Reaction ~ Days + (Days  Subject), data = sleepstudy) has_intercept(model)
model < lm(mpg ~ 0 + gear, data = mtcars) has_intercept(model) model < lm(mpg ~ gear, data = mtcars) has_intercept(model) model < lmer(Reaction ~ 0 + Days + (Days  Subject), data = sleepstudy) has_intercept(model) model < lmer(Reaction ~ Days + (Days  Subject), data = sleepstudy) has_intercept(model)
is_converged()
provides an alternative convergence
test for merMod
objects.
is_converged(x, tolerance = 0.001, ...)
is_converged(x, tolerance = 0.001, ...)
x 
A 
tolerance 
Indicates up to which value the convergence result is
accepted. The smaller 
... 
Currently not used. 
TRUE
if convergence is fine and FALSE
if convergence
is suspicious. Additionally, the convergence value is returned as attribute.
Convergence problems typically arise when the model hasn't converged to a solution where the loglikelihood has a true maximum. This may result in unreliable and overly complex (or nonestimable) estimates and standard errors.
lme4 performs a convergencecheck (see ?lme4::convergence
), however, as
discussed here and suggested by
one of the lme4authors in this comment,
this check can be too strict. is_converged()
thus provides an alternative
convergence test for merMod
objects.
Convergence issues are not easy to diagnose. The help page on ?lme4::convergence
provides most of the current advice about how to resolve convergence issues.
Another clue might be large parameter values, e.g. estimates (on the scale of
the linear predictor) larger than 10 in (nonidentity link) generalized linear
model might indicate complete separation, which can be addressed by
regularization, e.g. penalized regression or Bayesian regression with
appropriate priors on the fixed effects.
Note the different meaning between singularity and convergence: singularity indicates an issue with the "true" best estimate, i.e. whether the maximum likelihood estimation for the variancecovariance matrix of the random effects is positive definite or only semidefinite. Convergence is a question of whether we can assume that the numerical optimization has worked correctly or not.
data(cbpp) set.seed(1) cbpp$x < rnorm(nrow(cbpp)) cbpp$x2 < runif(nrow(cbpp)) model < glmer( cbind(incidence, size  incidence) ~ period + x + x2 + (1 + x  herd), data = cbpp, family = binomial() ) is_converged(model) model < glmmTMB( Sepal.Length ~ poly(Petal.Width, 4) * poly(Petal.Length, 4) + (1 + poly(Petal.Width, 4)  Species), data = iris ) is_converged(model)
data(cbpp) set.seed(1) cbpp$x < rnorm(nrow(cbpp)) cbpp$x2 < runif(nrow(cbpp)) model < glmer( cbind(incidence, size  incidence) ~ period + x + x2 + (1 + x  herd), data = cbpp, family = binomial() ) is_converged(model) model < glmmTMB( Sepal.Length ~ poly(Petal.Width, 4) * poly(Petal.Length, 4) + (1 + poly(Petal.Width, 4)  Species), data = iris ) is_converged(model)
Check if object is empty
is_empty_object(x)
is_empty_object(x)
x 
A list, a vector, or a dataframe. 
A logical indicating whether the entered object is empty.
is_empty_object(c(1, 2, 3, NA)) is_empty_object(list(NULL, c(NA, NA))) is_empty_object(list(NULL, NA))
is_empty_object(c(1, 2, 3, NA)) is_empty_object(list(NULL, c(NA, NA))) is_empty_object(list(NULL, NA))
Small helper that checks if a model is a generalized additive model.
is_gam_model(x)
is_gam_model(x)
x 
A model object. 
A logical, TRUE
if x
is a generalized additive model
and has smoothterms
This function only returns TRUE
when the model inherits from a
typical GAM model class and when smooth terms are present in the model
formula. If model has no smooth terms or is not from a typical gam class,
FALSE
is returned.
data(iris) model1 < lm(Petal.Length ~ Petal.Width + Sepal.Length, data = iris) model2 < mgcv::gam(Petal.Length ~ Petal.Width + s(Sepal.Length), data = iris) is_gam_model(model1) is_gam_model(model2)
data(iris) model1 < lm(Petal.Length ~ Petal.Width + Sepal.Length, data = iris) model2 < mgcv::gam(Petal.Length ~ Petal.Width + s(Sepal.Length), data = iris) is_gam_model(model1) is_gam_model(model2)
Small helper that checks if a model is a mixed effects model, i.e. if it the model has random effects.
is_mixed_model(x)
is_mixed_model(x)
x 
A model object. 
A logical, TRUE
if x
is a mixed model.
data(mtcars) model < lm(mpg ~ wt + cyl + vs, data = mtcars) is_mixed_model(model) data(sleepstudy, package = "lme4") model < lme4::lmer(Reaction ~ Days + (1  Subject), data = sleepstudy) is_mixed_model(model)
data(mtcars) model < lm(mpg ~ wt + cyl + vs, data = mtcars) is_mixed_model(model) data(sleepstudy, package = "lme4") model < lme4::lmer(Reaction ~ Days + (1  Subject), data = sleepstudy) is_mixed_model(model)
Small helper that checks if a model is a regression model or
a statistical object. is_regression_model()
is stricter and only
returns TRUE
for regression models, but not for, e.g., htest
objects.
is_model(x) is_regression_model(x)
is_model(x) is_regression_model(x)
x 
An object. 
This function returns TRUE
if x
is a model object.
A logical, TRUE
if x
is a (supported) model object.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) is_model(m) is_model(mtcars) test < t.test(1:10, y = c(7:20)) is_model(test) is_regression_model(test)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) is_model(m) is_model(mtcars) test < t.test(1:10, y = c(7:20)) is_model(test) is_regression_model(test)
Small helper that checks if a model is a supported
(regression) model object. supported_models()
prints a list
of currently supported model classes.
is_model_supported(x) supported_models()
is_model_supported(x) supported_models()
x 
An object. 
This function returns TRUE
if x
is a model object that works with the
package's functions. A list of supported models can also be found here:
https://github.com/easystats/insight.
A logical, TRUE
if x
is a (supported) model object.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) is_model_supported(m) is_model_supported(mtcars) # to see all supported models supported_models()
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) is_model_supported(m) is_model_supported(mtcars) # to see all supported models supported_models()
Small helper that checks if a model is a multivariate response model, i.e. a model with multiple outcomes.
is_multivariate(x)
is_multivariate(x)
x 
A model object, or an object returned by a function from this package. 
A logical, TRUE
if either x
is a model object and is a multivariate
response model, or TRUE
if a return value from a function of insight
is from a multivariate response model.
library(rstanarm) data("pbcLong") model < suppressWarnings(stan_mvmer( formula = list( logBili ~ year + (1  id), albumin ~ sex + year + (year  id) ), data = pbcLong, chains = 1, cores = 1, seed = 12345, iter = 1000, show_messages = FALSE, refresh = 0 )) f < find_formula(model) is_multivariate(model) is_multivariate(f)
library(rstanarm) data("pbcLong") model < suppressWarnings(stan_mvmer( formula = list( logBili ~ year + (1  id), albumin ~ sex + year + (year  id) ), data = pbcLong, chains = 1, cores = 1, seed = 12345, iter = 1000, show_messages = FALSE, refresh = 0 )) f < find_formula(model) is_multivariate(model) is_multivariate(f)
Checks whether a list of models are nested models, strictly following the order they were passed to the function.
is_nested_models(...)
is_nested_models(...)
... 
Multiple regression model objects. 
The term "nested" here means that all the fixed predictors of a
model are contained within the fixed predictors of a larger model (sometimes
referred to as the encompassing model). Currently, is_nested_models()
ignores
random effects parameters.
TRUE
if models are nested, FALSE
otherwise. If models
are nested, also returns two attributes that indicate whether nesting of
models is in decreasing or increasing order.
m1 < lm(Sepal.Length ~ Petal.Width + Species, data = iris) m2 < lm(Sepal.Length ~ Species, data = iris) m3 < lm(Sepal.Length ~ Petal.Width, data = iris) m4 < lm(Sepal.Length ~ 1, data = iris) is_nested_models(m1, m2, m4) is_nested_models(m4, m2, m1) is_nested_models(m1, m2, m3)
m1 < lm(Sepal.Length ~ Petal.Width + Species, data = iris) m2 < lm(Sepal.Length ~ Species, data = iris) m3 < lm(Sepal.Length ~ Petal.Width, data = iris) m4 < lm(Sepal.Length ~ 1, data = iris) is_nested_models(m1, m2, m4) is_nested_models(m4, m2, m1) is_nested_models(m1, m2, m3)
Checks if model is a nullmodel (interceptonly), i.e. if the conditional part of the model has no predictors.
is_nullmodel(x)
is_nullmodel(x)
x 
A model object. 
TRUE
if x
is a nullmodel, FALSE
otherwise.
model < lm(mpg ~ 1, data = mtcars) is_nullmodel(model) model < lm(mpg ~ gear, data = mtcars) is_nullmodel(model) data(sleepstudy, package = "lme4") model < lme4::lmer(Reaction ~ 1 + (Days  Subject), data = sleepstudy) is_nullmodel(model) model < lme4::lmer(Reaction ~ Days + (Days  Subject), data = sleepstudy) is_nullmodel(model)
model < lm(mpg ~ 1, data = mtcars) is_nullmodel(model) model < lm(mpg ~ gear, data = mtcars) is_nullmodel(model) data(sleepstudy, package = "lme4") model < lme4::lmer(Reaction ~ 1 + (Days  Subject), data = sleepstudy) is_nullmodel(model) model < lme4::lmer(Reaction ~ Days + (Days  Subject), data = sleepstudy) is_nullmodel(model)
Returns the linkfunction from a model object.
link_function(x, ...) ## S3 method for class 'betamfx' link_function(x, what = c("mean", "precision"), ...) ## S3 method for class 'gamlss' link_function(x, what = c("mu", "sigma", "nu", "tau"), ...) ## S3 method for class 'betareg' link_function(x, what = c("mean", "precision"), ...) ## S3 method for class 'DirichletRegModel' link_function(x, what = c("mean", "precision"), ...)
link_function(x, ...) ## S3 method for class 'betamfx' link_function(x, what = c("mean", "precision"), ...) ## S3 method for class 'gamlss' link_function(x, what = c("mu", "sigma", "nu", "tau"), ...) ## S3 method for class 'betareg' link_function(x, what = c("mean", "precision"), ...) ## S3 method for class 'DirichletRegModel' link_function(x, what = c("mean", "precision"), ...)
x 
A fitted model. 
... 
Currently not used. 
what 
For 
A function, describing the linkfunction from a modelobject. For multivariateresponse models, a list of functions is returned.
# example from ?stats::glm counts < c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome < gl(3, 1, 9) treatment < gl(3, 3) m < glm(counts ~ outcome + treatment, family = poisson()) link_function(m)(0.3) # same as log(0.3)
# example from ?stats::glm counts < c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome < gl(3, 1, 9) treatment < gl(3, 3) m < glm(counts ~ outcome + treatment, family = poisson()) link_function(m)(0.3) # same as log(0.3)
Returns the linkinverse function from a model object.
link_inverse(x, ...) ## S3 method for class 'betareg' link_inverse(x, what = c("mean", "precision"), ...) ## S3 method for class 'DirichletRegModel' link_inverse(x, what = c("mean", "precision"), ...) ## S3 method for class 'betamfx' link_inverse(x, what = c("mean", "precision"), ...) ## S3 method for class 'gamlss' link_inverse(x, what = c("mu", "sigma", "nu", "tau"), ...)
link_inverse(x, ...) ## S3 method for class 'betareg' link_inverse(x, what = c("mean", "precision"), ...) ## S3 method for class 'DirichletRegModel' link_inverse(x, what = c("mean", "precision"), ...) ## S3 method for class 'betamfx' link_inverse(x, what = c("mean", "precision"), ...) ## S3 method for class 'gamlss' link_inverse(x, what = c("mu", "sigma", "nu", "tau"), ...)
x 
A fitted model. 
... 
Currently not used. 
what 
For 
A function, describing the inverselink function from a modelobject. For multivariateresponse models, a list of functions is returned.
# example from ?stats::glm counts < c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome < gl(3, 1, 9) treatment < gl(3, 3) m < glm(counts ~ outcome + treatment, family = poisson()) link_inverse(m)(0.3) # same as exp(0.3)
# example from ?stats::glm counts < c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome < gl(3, 1, 9) treatment < gl(3, 3) m < glm(counts ~ outcome + treatment, family = poisson()) link_inverse(m)(0.3) # same as exp(0.3)
Retrieve information from model objects.
model_info(x, ...) ## Default S3 method: model_info(x, verbose = TRUE, ...)
model_info(x, ...) ## Default S3 method: model_info(x, verbose = TRUE, ...)
x 
A fitted model. 
... 
Currently not used. 
verbose 
Toggle off warnings. 
model_info()
returns a list with information about the
model for many different model objects. Following information
is returned, where all values starting with is_
are logicals.
is_binomial
: family is binomial (but not negative binomial)
is_bernoulli
: special case of binomial models: family is Bernoulli
is_poisson
: family is poisson
is_negbin
: family is negative binomial
is_count
: model is a count model (i.e. family is either poisson or negative binomial)
is_beta
: family is beta
is_betabinomial
: family is betabinomial
is_orderedbeta
: family is ordered beta
is_dirichlet
: family is dirichlet
is_exponential
: family is exponential (e.g. Gamma or Weibull)
is_logit
: model has logit link
is_probit
: model has probit link
is_linear
: family is gaussian
is_tweedie
: family is tweedie
is_ordinal
: family is ordinal or cumulative link
is_cumulative
: family is ordinal or cumulative link
is_multinomial
: family is multinomial or categorical link
is_categorical
: family is categorical link
is_censored
: model is a censored model (has a censored response, including survival models)
is_truncated
: model is a truncated model (has a truncated response)
is_survival
: model is a survival model
is_zero_inflated
: model has zeroinflation component
is_hurdle
: model has zeroinflation component and is a hurdlemodel (truncated family distribution)
is_dispersion
: model has dispersion component (not only dispersion parameter)
is_mixed
: model is a mixed effects model (with random effects)
is_multivariate
: model is a multivariate response model (currently only works for brmsfit and vglm/vgam objects)
is_trial
: model response contains additional information about the trials
is_bayesian
: model is a Bayesian model
is_gam
: model is a generalized additive model
is_anova
: model is an Anova object
is_ttest
: model is an an object of class htest
, returned by t.test()
is_correlation
: model is an an object of class htest
, returned by cor.test()
is_ranktest
: model is an an object of class htest
, returned by cor.test()
(if Spearman's rank correlation), wilcox.text()
or kruskal.test()
.
is_variancetest
: model is an an object of class htest
, returned by
bartlett.test()
, shapiro.test()
or car::leveneTest()
.
is_levenetest
: model is an an object of class anova
, returned by car::leveneTest()
.
is_onewaytest
: model is an an object of class htest
, returned by oneway.test()
is_proptest
: model is an an object of class htest
, returned by prop.test()
is_binomtest
: model is an an object of class htest
, returned by binom.test()
is_chi2test
: model is an an object of class htest
, returned by chisq.test()
is_xtab
: model is an an object of class htest
or BFBayesFactor
, and
teststatistic stems from a contingency table (i.e. chisq.test()
or
BayesFactor::contingencyTableBF()
).
link_function
: the linkfunction
family
: name of the distributional family of the model. For some
exceptions (like some htest
objects), can also be the name of the test.
n_obs
: number of observations
n_grouplevels
: for mixed models, returns names and numbers of random effect groups
A list with information about the model, like family, linkfunction etc. (see 'Details').
ldose < rep(0:5, 2) numdead < c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16) sex < factor(rep(c("M", "F"), c(6, 6))) SF < cbind(numdead, numalive = 20  numdead) dat < data.frame(ldose, sex, SF, stringsAsFactors = FALSE) m < glm(SF ~ sex * ldose, family = binomial) # logistic regression model_info(m) # ttest m < t.test(1:10, y = c(7:20)) model_info(m)
ldose < rep(0:5, 2) numdead < c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16) sex < factor(rep(c("M", "F"), c(6, 6))) SF < cbind(numdead, numalive = 20  numdead) dat < data.frame(ldose, sex, SF, stringsAsFactors = FALSE) m < glm(SF ~ sex * ldose, family = binomial) # logistic regression model_info(m) # ttest m < t.test(1:10, y = c(7:20)) model_info(m)
Returns the "name" (class attribute) of a model, possibly including further information.
model_name(x, ...) ## Default S3 method: model_name(x, include_formula = FALSE, include_call = FALSE, ...)
model_name(x, ...) ## Default S3 method: model_name(x, include_formula = FALSE, include_call = FALSE, ...)
x 
A model. 
... 
Currently not used. 
include_formula 
Should the name include the model's formula. 
include_call 
If 
A character string of a name (which usually equals the model's class attribute).
m < lm(Sepal.Length ~ Petal.Width, data = iris) model_name(m) model_name(m, include_formula = TRUE) model_name(m, include_call = TRUE) model_name(lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris))
m < lm(Sepal.Length ~ Petal.Width, data = iris) model_name(m) model_name(m, include_formula = TRUE) model_name(m, include_call = TRUE) model_name(lme4::lmer(Sepal.Length ~ Sepal.Width + (1  Species), data = iris))
Returns the number of group levels of random effects from mixed models.
n_grouplevels(x, ...)
n_grouplevels(x, ...)
x 
A mixed model. 
... 
Additional arguments that can be passed to the function. Currently,
you can use 
The number of group levels in the model.
data(sleepstudy, package = "lme4") set.seed(12345) sleepstudy$grp < sample(1:5, size = 180, replace = TRUE) sleepstudy$subgrp < NA for (i in 1:5) { filter_group < sleepstudy$grp == i sleepstudy$subgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } model < lme4::lmer( Reaction ~ Days + (1  grp / subgrp) + (1  Subject), data = sleepstudy ) n_grouplevels(model)
data(sleepstudy, package = "lme4") set.seed(12345) sleepstudy$grp < sample(1:5, size = 180, replace = TRUE) sleepstudy$subgrp < NA for (i in 1:5) { filter_group < sleepstudy$grp == i sleepstudy$subgrp[filter_group] < sample(1:30, size = sum(filter_group), replace = TRUE) } model < lme4::lmer( Reaction ~ Days + (1  grp / subgrp) + (1  Subject), data = sleepstudy ) n_grouplevels(model)
This method returns the number of observation that were used to fit the model, as numeric value.
n_obs(x, ...) ## S3 method for class 'glm' n_obs(x, disaggregate = FALSE, ...) ## S3 method for class 'svyolr' n_obs(x, weighted = FALSE, ...) ## S3 method for class 'afex_aov' n_obs(x, shape = c("long", "wide"), ...) ## S3 method for class 'stanmvreg' n_obs(x, select = NULL, ...)
n_obs(x, ...) ## S3 method for class 'glm' n_obs(x, disaggregate = FALSE, ...) ## S3 method for class 'svyolr' n_obs(x, weighted = FALSE, ...) ## S3 method for class 'afex_aov' n_obs(x, shape = c("long", "wide"), ...) ## S3 method for class 'stanmvreg' n_obs(x, select = NULL, ...)
x 
A fitted model. 
... 
Currently not used. 
disaggregate 
For binomial models with aggregated data, 
weighted 
For survey designs, returns the weighted sample size. 
shape 
Return long or wide data? Only applicable in repeated measures designs. 
select 
Optional name(s) of response variables for which to extract values. Can be used in case of regression models with multiple response variables. 
The number of observations used to fit the model, or NULL
if
this information is not available.
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) n_obs(m) data(cbpp, package = "lme4") m < glm( cbind(incidence, size  incidence) ~ period, data = cbpp, family = binomial(link = "logit") ) n_obs(m) n_obs(m, disaggregate = TRUE)
data(mtcars) m < lm(mpg ~ wt + cyl + vs, data = mtcars) n_obs(m) data(cbpp, package = "lme4") m < glm( cbind(incidence, size  incidence) ~ period, data = cbpp, family = binomial(link = "logit") ) n_obs(m) n_obs(m, disaggregate = TRUE)
Returns the number of parameters (coefficients) of a model.
n_parameters(x, ...) ## Default S3 method: n_parameters(x, remove_nonestimable = FALSE, ...) ## S3 method for class 'merMod' n_parameters( x, effects = c("fixed", "random"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'glmmTMB' n_parameters( x, effects = c("fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'zeroinfl' n_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'gam' n_parameters( x, component = c("all", "conditional", "smooth_terms"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'brmsfit' n_parameters(x, effects = "all", component = "all", ...)
n_parameters(x, ...) ## Default S3 method: n_parameters(x, remove_nonestimable = FALSE, ...) ## S3 method for class 'merMod' n_parameters( x, effects = c("fixed", "random"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'glmmTMB' n_parameters( x, effects = c("fixed", "random"), component = c("all", "conditional", "zi", "zero_inflated"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'zeroinfl' n_parameters( x, component = c("all", "conditional", "zi", "zero_inflated"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'gam' n_parameters( x, component = c("all", "conditional", "smooth_terms"), remove_nonestimable = FALSE, ... ) ## S3 method for class 'brmsfit' n_parameters(x, effects = "all", component = "all", ...)
x 
A statistical model. 
... 
Arguments passed to or from other methods. 
remove_nonestimable 
Logical, if 
effects 
Should number of parameters for fixed effects, random effects or both be returned? Only applies to mixed models. May be abbreviated. 
component 
Should total number of parameters, number parameters for the conditional model, the zeroinflated part of the model, the dispersion term or the instrumental variables be returned? Applies to models with zeroinflated and/or dispersion formula, or to models with instrumental variable (so called fixedeffects regressions). May be abbreviated. 
The number of parameters in the model.
This function returns the number of parameters for the fixed effects by
default, as returned by find_parameters(x, effects = "fixed")
. It does not
include all estimated model parameters, i.e. auxiliary parameters like
sigma or dispersion are not counted. To get the number of all estimated
parameters, use get_df(x, type = "model")
.
data(iris) model < lm(Sepal.Length ~ Sepal.Width * Species, data = iris) n_parameters(model)
data(iris) model < lm(Sepal.Length ~ Sepal.Width * Species, data = iris) n_parameters(model)
This function computes the nullmodel (i.e. (y ~ 1)
) of
a model. For mixed models, the nullmodel takes random effects into account.
null_model(model, verbose = TRUE, ...)
null_model(model, verbose = TRUE, ...)
model 
A (mixed effects) model. 
verbose 
Toggle off warnings. 
... 
Arguments passed to or from other methods. 
The nullmodel of x
data(sleepstudy) m < lmer(Reaction ~ Days + (1 + Days  Subject), data = sleepstudy) summary(m) summary(null_model(m))
data(sleepstudy) m < lmer(Reaction ~ Days + (1 + Days  Subject), data = sleepstudy) summary(m) summary(null_model(m))
object_has_names()
checks if specified names are present in the given object.
object_has_rownames()
checks if rownames are present in a dataframe.
object_has_names(x, names) object_has_rownames(x)
object_has_names(x, names) object_has_rownames(x)
x 
A named object (an atomic vector, a list, a dataframe, etc.). 
names 
A single character or a vector of characters. 
A logical or a vector of logicals.
# check if specified names are present in the given object object_has_names(mtcars, "am") object_has_names(anscombe, c("x1", "z1", "y1")) object_has_names(list("x" = 1, "y" = 2), c("x", "a")) # check if a dataframe has rownames object_has_rownames(mtcars)
# check if specified names are present in the given object object_has_names(mtcars, "am") object_has_names(anscombe, c("x1", "z1", "y1")) object_has_names(list("x" = 1, "y" = 2), c("x", "a")) # check if a dataframe has rownames object_has_rownames(mtcars)
Convenient function that allows coloured output in the console. Mainly implemented to reduce package dependencies.
print_color(text, color) print_colour(text, colour) color_text(text, color) colour_text(text, colour) color_theme()
print_color(text, color) print_colour(text, colour) color_text(text, color) colour_text(text, colour) color_theme()
text 
The text to print. 
color , colour

Character vector, indicating the colour for printing.
May be one of 
This function prints text
directly to the console using
cat()
, so no string is returned. color_text()
, however,
returns only the formatted string, without using cat()
.
color_theme()
either returns "dark"
when RStudio is used
with dark color scheme, "light"
when it's used with light theme,
and NULL
if the theme could not be detected.
Nothing.
print_color("I'm blue dabedi dabedei", "blue")
print_color("I'm blue dabedi dabedei", "blue")
This function takes a data frame, typically a data frame with information on
summaries of model parameters like bayestestR::describe_posterior()
,
bayestestR::hdi()
or parameters::model_parameters()
, as input and splits
this information into several parts, depending on the model. See details
below.
print_parameters( x, ..., by = c("Effects", "Component", "Group", "Response"), format = "text", parameter_column = "Parameter", keep_parameter_column = TRUE, remove_empty_column = FALSE, titles = NULL, subtitles = NULL )
print_parameters( x, ..., by = c("Effects", "Component", "Group", "Response"), format = "text", parameter_column = "Parameter", keep_parameter_column = TRUE, remove_empty_column = FALSE, titles = NULL, subtitles = NULL )
x 
A fitted model, or a data frame returned by 
... 
One or more objects (data frames), which contain information about the model parameters and related statistics (like confidence intervals, HDI, ROPE, ...). 
by 

format 
Name of outputformat, as string. If 
parameter_column 
String, name of the column that contains the
parameter names. Usually, for data frames returned by functions the
easystatspackages, this will be 
keep_parameter_column 
Logical, if 
remove_empty_column 
Logical, if 
titles , subtitles

By default, the names of the model components (like
fixed or random effects, count or zeroinflated model part) are added as
attributes 
This function prepares data frames that contain information about model parameters for clear printing.
First, x
is required, which should either be a model object or a
prepared data frame as returned by clean_parameters()
. If
x
is a model, clean_parameters()
is called on that model
object to get information with which model components the parameters
are associated.
Then, ...
take one or more data frames that also contain information
about parameters from the same model, but also have additional information
provided by other methods. For instance, a data frame in ...
might
be the result of, for instance, bayestestR::describe_posterior()
,
or parameters::model_parameters()
, where we have a) a
Parameter
column and b) columns with other parameter values (like
CI, HDI, test statistic, etc.).
Now we have a data frame with model parameters and information about the
association to the different model components, a data frame with model
parameters, and some summary statistics. print_parameters()
then merges
these data frames, so the parameters or statistics of interest are also
associated with the different model components. The data frame is split into
a list, so for a clear printing. Users can loop over this list and print each
component for a better overview. Further, parameter names are "cleaned", if
necessary, also for a cleaner print. See also 'Examples'.
A data frame or a list of data frames (if by
is not NULL
). If a
list is returned, the element names reflect the model components where the
extracted information in the data frames belong to, e.g.
random.zero_inflated.Intercept: persons
. This is the data frame that
contains the parameters for the random effects from grouplevel "persons"
from the zeroinflated model component.
library(bayestestR) model < download_model("brms_zi_2") x < hdi(model, effects = "all", component = "all") # hdi() returns a data frame; here we use only the # information on parameter names and HDI values tmp < as.data.frame(x)[, 1:4] tmp # Based on the "by" argument, we get a list of data frames that # is split into several parts that reflect the model components. print_parameters(model, tmp) # This is the standard print()method for "bayestestR::hdi"objects. # For printing methods, it is easy to print complex summary statistics # in a clean way to the console by splitting the information into # different model components. x
library(bayestestR) model < download_model("brms_zi_2") x < hdi(model, effects = "all", component = "all") # hdi() returns a data frame; here we use only the # information on parameter names and HDI values tmp < as.data.frame(x)[, 1:4] tmp # Based on the "by" argument, we get a list of data frames that # is split into several parts that reflect the model components. print_parameters(model, tmp) # This is the standard print()method for "bayestestR::hdi"objects. # For printing methods, it is easy to print complex summary statistics # in a clean way to the console by splitting the information into # different model components. x
Standardizes order of columns for dataframes and other objects from easystats and broom ecosystem packages.
standardize_column_order(data, ...) ## S3 method for class 'parameters_model' standardize_column_order(data, style = c("easystats", "broom"), ...)
standardize_column_order(data, ...) ## S3 method for class 'parameters_model' standardize_column_order(data, style = c("easystats", "broom"), ...)
data 
A data frame. In particular, objects from easystats
package functions like 
... 
Currently not used. 
style 
Standardization can either be based on the naming conventions from the easystatsproject, or on broom's naming scheme. 
A data frame, with standardized column order.
# easystats conventions df1 < cbind.data.frame( CI_low = 2.873, t = 5.494, CI_high = 1.088, p = 0.00001, Parameter = 1.980, CI = 0.95, df = 29.234, Method = "Student's ttest" ) standardize_column_order(df1, style = "easystats") # broom conventions df2 < cbind.data.frame( conf.low = 2.873, statistic = 5.494, conf.high = 1.088, p.value = 0.00001, estimate = 1.980, conf.level = 0.95, df = 29.234, method = "Student's ttest" ) standardize_column_order(df2, style = "broom")
# easystats conventions df1 < cbind.data.frame( CI_low = 2.873, t = 5.494, CI_high = 1.088, p = 0.00001, Parameter = 1.980, CI = 0.95, df = 29.234, Method = "Student's ttest" ) standardize_column_order(df1, style = "easystats") # broom conventions df2 < cbind.data.frame( conf.low = 2.873, statistic = 5.494, conf.high = 1.088, p.value = 0.00001, estimate = 1.980, conf.level = 0.95, df = 29.234, method = "Student's ttest" ) standardize_column_order(df2, style = "broom")
Standardize column names from data frames, in particular objects returned
from parameters::model_parameters()
, so column names are consistent and
the same for any model object.
standardize_names(data, ...) ## S3 method for class 'parameters_model' standardize_names( data, style = c("easystats", "broom"), ignore_estimate = FALSE, ... )
standardize_names(data, ...) ## S3 method for class 'parameters_model' standardize_names( data, style = c("easystats", "broom"), ignore_estimate = FALSE, ... )
data 
A data frame. In particular, objects from easystats
package functions like 
... 
Currently not used. 
style 
Standardization can either be based on the naming conventions from the easystatsproject, or on broom's naming scheme. 
ignore_estimate 
Logical, if 
This method is in particular useful for package developers or users
who use, e.g., parameters::model_parameters()
in their own code or
functions to retrieve model parameters for further processing. As
model_parameters()
returns a data frame with varying column names
(depending on the input), accessing the required information is probably
not quite straightforward. In such cases, standardize_names()
can be
used to get consistent, i.e. always the same column names, no matter what
kind of model was used in model_parameters()
.
For style = "broom"
, column names are renamed to match broom's
naming scheme, i.e. Parameter
is renamed to term
, Coefficient
becomes
estimate
and so on.
For style = "easystats"
, when data
is an object from broom::tidy()
,
column names are converted from "broom"style into "easystats"style.
A data frame, with standardized column names.
model < lm(mpg ~ wt + cyl, data = mtcars) mp < model_parameters(model) as.data.frame(mp) standardize_names(mp) standardize_names(mp, style = "broom")
model < lm(mpg ~ wt + cyl, data = mtcars) mp < model_parameters(model) as.data.frame(mp) standardize_names(mp) standardize_names(mp, style = "broom")
This function removes backticks from a string.
text_remove_backticks(x, ...) ## S3 method for class 'data.frame' text_remove_backticks(x, column = "Parameter", verbose = FALSE, ...)
text_remove_backticks(x, ...) ## S3 method for class 'data.frame' text_remove_backticks(x, column = "Parameter", verbose = FALSE, ...)
x 
A character vector, a data frame or a matrix. If a matrix, backticks are removed from the column and row names, not from values of a character vector. 
... 
Currently not used. 
column 
If 
verbose 
Toggle warnings. 
x
, where all backticks are removed.
If x
is a character vector or data frame, backticks are removed from
the elements of that character vector (or character vectors from the data
frame.) If x
is a matrix, the behaviour slightly differs: in this case,
backticks are removed from the column and row names. The reason for this
behaviour is that this function mainly serves formatting coefficient names.
For vcov()
(a matrix), row and column names equal the coefficient names
and therefore are manipulated then.
# example model data(iris) iris$`a m` < iris$Species iris$`Sepal Width` < iris$Sepal.Width model < lm(`Sepal Width` ~ Petal.Length + `a m`, data = iris) # remove backticks from string names(coef(model)) text_remove_backticks(names(coef(model))) # remove backticks from character variable in a data frame # column defaults to "Parameter". d < data.frame( Parameter = names(coef(model)), Estimate = unname(coef(model)) ) d text_remove_backticks(d)
# example model data(iris) iris$`a m` < iris$Species iris$`Sepal Width` < iris$Sepal.Width model < lm(`Sepal Width` ~ Petal.Length + `a m`, data = iris) # remove backticks from string names(coef(model)) text_remove_backticks(names(coef(model))) # remove backticks from character variable in a data frame # column defaults to "Parameter". d < data.frame( Parameter = names(coef(model)), Estimate = unname(coef(model)) ) d text_remove_backticks(d)
Collection of small helper functions. trim_ws()
is an
efficient function to trim leading and trailing whitespaces from character
vectors or strings. n_unique()
returns the number of unique values in a
vector. has_single_value()
is equivalent to n_unique() == 1
but is faster.
safe_deparse()
is comparable to deparse1()
, i.e. it can safely
deparse very long expressions into a single string. safe_deparse_symbol()
only deparses a substituted expressions when possible, which can be much faster
than deparse(substitute())
for those cases where substitute()
returns no
valid object name.
trim_ws(x, ...) ## S3 method for class 'data.frame' trim_ws(x, character_only = TRUE, ...) n_unique(x, ...) ## Default S3 method: n_unique(x, remove_na = TRUE, na.rm, ...) safe_deparse(x, ...) safe_deparse_symbol(x) has_single_value(x, remove_na = FALSE, na.rm, ...)
trim_ws(x, ...) ## S3 method for class 'data.frame' trim_ws(x, character_only = TRUE, ...) n_unique(x, ...) ## Default S3 method: n_unique(x, remove_na = TRUE, na.rm, ...) safe_deparse(x, ...) safe_deparse_symbol(x) has_single_value(x, remove_na = FALSE, na.rm, ...)
x 
A (character) vector, or for some functions may also be a data frame. 
... 
Currently not used. 
character_only 
Logical, if 
remove_na 
Logical, if missing values should be removed from the input. 
na.rm 
Deprecated. Use 
n_unique()
: For a vector, n_unique
always returns an integer value,
even if the input is NULL
(the return value will be 0
then). For data
frames or lists, n_unique()
returns a named numeric vector, with the
number of unique values for each element.
has_single_value()
: TRUE
if x
has only one unique value,
FALSE
otherwise.
trim_ws()
: A character vector, where trailing and leading white spaces
are removed.
safe_deparse()
: A character string of the unevaluated expression or symbol.
safe_deparse_symbol()
: A character string of the unevaluated expression
or symbol, if x
was a symbol. If x
is no symbol (i.e. if is.name(x)
would return FALSE
), NULL
is returned.
trim_ws(" no space! ") n_unique(iris$Species) has_single_value(c(1, 1, 2)) # safe_deparse_symbol() compared to deparse(substitute()) safe_deparse_symbol(as.name("test")) deparse(substitute(as.name("test")))
trim_ws(" no space! ") n_unique(iris$Species) has_single_value(c(1, 1, 2)) # safe_deparse_symbol() compared to deparse(substitute()) safe_deparse_symbol(as.name("test")) deparse(substitute(as.name("test")))