emmip | R Documentation |
Creates an interaction plot of EMMs based on a fitted model and a simple formula specification.
emmip(object, formula, ...)
## Default S3 method:
emmip(object, formula, type, CIs = FALSE, PIs = FALSE,
style, engine = get_emm_option("graphics.engine"), plotit = TRUE,
nesting.order = FALSE, ...)
emmip_ggplot(emms, style = "factor", dodge = 0.1, xlab = labs$xlab,
ylab = labs$ylab, tlab = labs$tlab, facetlab = "label_context", scale,
dotarg = list(shape = "circle"), linearg = list(linetype = "solid"),
CIarg = list(lwd = 2, alpha = 0.5), PIarg = list(lwd = 1.25, alpha =
0.33), col, ...)
emmip_lattice(emms, style = "factor", xlab = labs$xlab, ylab = labs$ylab,
tlab = labs$tlab, pch = c(1, 2, 6, 7, 9, 10, 15:20), lty = 1,
col = NULL, ...)
object |
An object of class |
formula |
Formula of the form
|
... |
Additional arguments passed to |
type |
As in |
CIs |
Logical value. If |
PIs |
Logical value. If |
style |
Optional character value. This has an effect only when the
horizontal variable is a single numeric variable. If |
engine |
Character value matching |
plotit |
Logical value. If |
nesting.order |
Logical value. If |
emms |
A |
dodge |
Numerical amount passed to |
xlab , ylab , tlab |
Character labels for the horizontal axis, vertical
axis, and traces (the different curves), respectively. The |
facetlab |
Labeller for facets (when by variables are in play).
Use |
scale |
If not missing, an object of class |
dotarg |
|
linearg |
|
CIarg , PIarg |
|
col |
With |
pch |
(Lattice only) The plotting characters to use for each group (i.e., levels of
|
lty |
(Lattice only) The line types to use for each group. Recycled as needed. |
If plotit = FALSE
, a data.frame
(actually, a
summary_emm
object) with the table of EMMs that would be plotted.
The variables plotted are named xvar
and yvar
, and the trace
factor is named tvar
. This data frame has an added "labs"
attribute containing the labels xlab
, ylab
, and tlab
for these respective variables. The confidence limits are also
included, renamed LCL
and UCL
.
If plotit = TRUE
, the function
returns an object of class "ggplot"
or a "trellis"
, depending
on engine
.
If object
is a fitted model, emmeans
is called with an
appropriate specification to obtain estimated marginal means for each
combination of the factors present in formula
(in addition, any
arguments in ...
that match at
, trend
,
cov.reduce
, or fac.reduce
are passed to emmeans
).
Otherwise, if object
is an emmGrid
object, its first element is
used, and it must contain one estimate for each combination of the factors
present in formula
.
The functions emmip_ggplot
and emmip_lattice
are called when plotit == TRUE
to render the plots;
but they may also be called later on an object saved via plotit = FALSE
(or engine = "none"
). The functions require that emms
contains variables
xvar
, yvar
, and tvar
, and attributes "labs"
and "vars"
.
Confidence intervals are plotted if variables LCL
and UCL
exist;
and prediction intervals are plotted if LPL
and UPL
exist.
Finally, it must contain the variables named in attr(emms, "vars")
.
In emmip_ggplot
, colors, linetypes, and shapes are all assigned to
groups (according to tvar
) unless overridden. So, for example, one may
have different symbols for each group by simply specifying dotarg = list()
.
Conceptually, this function is equivalent to
interaction.plot
where the summarization function is thought
to return the EMMs.
emmeans
, interaction.plot
.
#--- Three-factor example
noise.lm = lm(noise ~ size * type * side, data = auto.noise)
# Separate interaction plots of size by type, for each side
emmip(noise.lm, type ~ size | side)
# One interaction plot, using combinations of size and side as the x factor
# ... with added confidence intervals and some formatting changes
emmip(noise.lm, type ~ side * size, CIs = TRUE,
CIarg = list(lwd = 1, alpha = 1, color = "cyan"),
dotarg = list(color = "black"))
# Create a black-and-white version of above with different linetypes
# (Let the linetypes and symbols default to the palette)
emmip(noise.lm, type ~ side * size, CIs = TRUE, col = "black",
linearg = list(), dotarg = list(size = 2), CIarg = list(alpha = 1)) +
ggplot2::theme_bw()
# One interaction plot using combinations of type and side as the trace factor
emmip(noise.lm, type * side ~ size)
# Individual traces in panels
emmip(noise.lm, ~ size | type * side)
# Example for the 'style' argument
fib.lm = lm(strength ~ machine * sqrt(diameter), data = fiber)
fib.rg = ref_grid(fib.lm, at = list(diameter = c(3.5, 4, 4.5, 5, 5.5, 6)^2))
emmip(fib.rg, machine ~ diameter) # curves (because diameter is numeric)
emmip(fib.rg, machine ~ diameter, style = "factor") # points and lines
# For an example using extra ggplot2 code, see 'vignette("messy-data")',
# in the section on nested models.
### Options with transformations or link functions
neuralgia.glm <- glm(Pain ~ Treatment * Sex + Age, family = binomial(),
data = neuralgia)
# On link scale:
emmip(neuralgia.glm, Treatment ~ Sex)
# On response scale:
emmip(neuralgia.glm, Treatment ~ Sex, type = "response")
# With transformed axis scale and custom scale divisions
emmip(neuralgia.glm, Treatment ~ Sex, type = "scale",
breaks = seq(0.10, 0.90, by = 0.10))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.