knitr::opts_chunk$set( collapse = TRUE, comment = "#>", dev = "png", fig.width = 7, fig.height = 3.5, message = FALSE, warning = FALSE ) options(width = 800) arrow_color <- "#FF00cc" p <- ht8 <- NULL pkgs <- c("ggplot2", "see", "marginaleffects") if (!all(vapply(pkgs, requireNamespace, quietly = TRUE, FUN.VALUE = logical(1L)))) { knitr::opts_chunk$set(eval = FALSE) }
This vignette is the third in a 4-part series:
Comparisons of Slopes, Floodlight and Spotlight Analysis (Johnson-Neyman Intervals)
Contrasts and Comparisons for Generalized Linear Models
We will now show an example for non-Gaussian models. For GLM's (generalized linear models) with (non-Gaussian) link-functions, estimate_means()
by default returns predicted values on the response scale. For example, predicted values for logistic regression models are shown as probabilities.
Let's look at a simple example.
library(modelbased) set.seed(1234) dat <- data.frame( outcome = rbinom(n = 100, size = 1, prob = 0.35), x1 = as.factor(sample(1:3, size = 100, TRUE, prob = c(0.5, 0.2, 0.3))), x2 = rnorm(n = 100, mean = 10, sd = 7), x3 = as.factor(sample(1:4, size = 100, TRUE, prob = c(0.1, 0.4, 0.2, 0.3))) ) m <- glm(outcome ~ x1 + x2 + x3, data = dat, family = binomial()) estimate_means(m, "x1")
Contrasts or comparisons - like predictions (see above) - are by default on the response scale, i.e. they're represented as difference between probabilities (in percentage points).
estimate_contrasts(m, "x1")
p <- estimate_means(m, "x1") ht8 <- estimate_contrasts(m, "x1")
The difference between the predicted probability of x1 = 1
(21.2%) and x1 = 2
(13.9%) is roughly 7.3 percentage points. This difference is not statistically significant (p = 0.417).
Contrasts or comparisons can also be represented on the link-scale, in this case as log-odds. To do so, use predict = "link"
.
estimate_contrasts(m, "x1", predict = "link")
The transform
argument in estimate_contrasts()
can be used transform comparisons. For example, to transform contrasts to odds ratios, we can use transform = exp
in combination with predict = "link"
.
estimate_contrasts(m, "x1", predict = "link", transform = exp)
Go to next vignette: Contrasts and Comparisons for Zero-Inflation Models
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.