Learn R Programming

ggeffects (version 0.3.3)

plot: Plot ggeffects-objects

Description

A generic plot-method for ggeffects-objects.

Usage

# S3 method for ggeffects
plot(x, ci = TRUE, facets, rawdata = FALSE,
  colors = "Set1", alpha = 0.15, dodge = 0.1, use.theme = TRUE,
  dot.alpha = 0.5, jitter = TRUE, case = NULL, show.legend = TRUE, ...)

Arguments

x

An object of class ggeffects, as returned by the functions from this package.

ci

Logical, if TRUE, confidence bands (for continuous variables at x-axis) resp. error bars (for factors at x-axis) are plotted. For ggeffects-objects from ggpredict() with argument full.data = TRUE, ci is automatically set to FALSE.

facets

Logical, defaults to TRUE, if x has a column named facet, and defaults to FALSE, if x has no such column. Set facets = TRUE to wrap the plot into facets even for grouping variables (see 'Examples').

rawdata

Logical, if TRUE, a layer with raw data from response by predictor on the x-axis, plotted as point-geoms, is added to the plot.

colors

Character vector with color values in hex-format, valid color value names (see demo("colors") or a name of a color brewer palette. Following options are valid for colors:

  • If not specified, the color brewer palette "Set1" will be used.

  • If "gs", a greyscale will be used.

  • If "bw", the plot is black/white and uses different line types to distinguish groups.

  • If colors is any valid color brewer palette name, the related palette will be used. Use display.brewer.all to view all available palette names.

  • Else specify own color values or names as vector (e.g. colors = c("#f00000", "#00ff00")).

alpha

Alpha value for the confidence bands.

dodge

Value for offsetting or shifting error bars, to avoid overlapping. Only applies, if a factor is plotted at the x-axis; in such cases, the confidence bands are replaced by error bars.

use.theme

Logical, if TRUE, a slightly tweaked version of ggplot's minimal-theme is applied to the plot. If FALSE, no theme-modifications are applied.

dot.alpha

Alpha value for data points, when rawdata = TRUE.

jitter

Logical, if TRUE and rawdata = TRUE, adds a small amount of random variation to the location of data points dots, to avoid overplotting. Hence the points don't reflect exact values in the data. For binary outcomes, raw data is never jittered to avoid that data points exceed the axis limits.

case

Desired target case. Labels will automatically converted into the specified character case. See convert_case for more details on this argument.

show.legend

Logical, shows or hides the plot legend.

...

Currently not used.

Value

A ggplot2-object.

Details

ggpredict() with argument full.data = FALSE computes marginal effects at the mean, where covariates are held constant. In this case, the slope between groups does not vary and the standard errors and confidence intervals have the same "trend" as the predicted values. Hence, plotting confidence bands or error bars is possible. However, ggpredict() with argument full.data = TRUE, covariates and standard errors vary between groups, so plotting confidence bands and error bars would follow a "winding" shape, while the predicted values are smoothened by geom_smooth. Predicted values and confidence bands or error bars would no longer match, thus, ci is automatically set to FALSE in such cases. You still may want to plot objects returned by ggpredict() with argument full.data = TRUE to additionally plot the raw data points, which is automatically done.

For ggaverage(), which computes average marginal effects, the same problem with standard errors and confidence bands would apply. However, the standard errors for the average marginal effects are taken from the marginal effects at the mean, and the predicted values from the average marginal effects are used to compute another regression on these values, to get the "smoothened" values that are used to compute standard errors and confidence intervals that match the predicted values of the average marginal effects (maybe, at this point, it is helpful to inspect the code to better understand what is happening...).

For proportional odds logistic regression (see polr), plots are automatically facetted by response.level, which indicates the grouping of predictions based on the level of the model's response.

Examples

Run this code
# NOT RUN {
library(sjlabelled)
data(efc)
efc$c172code <- as_label(efc$c172code)
fit <- lm(barthtot ~ c12hour + neg_c_7 + c161sex + c172code, data = efc)

dat <- ggpredict(fit, terms = "c12hour")
plot(dat)

dat <- ggpredict(fit, terms = "c12hour", full.data = TRUE)
plot(dat)

dat <- ggaverage(fit, terms = "neg_c_7")
plot(dat)

# facet by group
dat <- ggpredict(fit, terms = c("c12hour", "c172code"))
plot(dat, facet = TRUE)

# don't use facets, b/w figure, w/o confidence bands
dat <- ggaverage(fit, terms = c("c12hour", "c172code"))
plot(dat, colors = "bw", ci = FALSE)

# factor at x axis, plot exact data points and error bars
dat <- ggpredict(fit, terms = c("c172code", "c161sex"))
plot(dat)

# for three variables, automatic facetting
dat <- ggpredict(fit, terms = c("c12hour", "c172code", "c161sex"))
plot(dat)


# }

Run the code above in your browser using DataLab