Dear Klemens,
Here is my ?0.02
library(ggplot2)
dataset <- expand.grid(
x = seq(0, 1, length = 41),
y = seq(0, 1, length = 41),
z =factor( c("A", "B"))
)
dataset$fit <- with(dataset,
ifelse(
z == "A",
x - 2 * x^2 + 0.5 * x * y + 3 * y - y ^ 2,
-x - 1 * x^2 - 2 * x * y - 3 * y + y ^ 2
)
)
ggplot(dataset, aes(x = x, y = y, fill = fit)) +
geom_raster() +
facet_wrap(~ z) +
scale_fill_gradient2()
ggplot(dataset, aes(x = x, y = y, z = fit)) +
geom_contour(aes(colour = ..level..), binwidth = 0.25) +
facet_wrap(~ z) +
scale_colour_gradient2()
ggplot(dataset, aes(x = x, y = y)) +
geom_raster(aes(fill = fit)) +
geom_contour(aes(z = fit), binwidth = 0.25) +
facet_wrap(~ z) +
scale_fill_gradient(low = "black", high = "white")
Best regards,
Thierry
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium
To call in the statistician after the experiment is done may be no
more than asking him to perform a post-mortem examination: he may be
able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
not ensure that a reasonable answer can be extracted from a given body
of data. ~ John Tukey
2017-04-12 19:06 GMT+02:00 Evan Palmer-Young <ecp52 at cornell.edu>:
Dear Klemens,
I also have been asked to remove plot3d plots that I thought were
stupendous, but I guess not everybody likes them!
How about two two-way interaction plots for the regressions of continuous
variable 1 vs 2, with separate panels for the levels of the categorical
variable?
You can get fitted model values and CI's with the lsmeans function, using
the "at" argument to specify covariate values.
If the plot is too bland, you can sprinkle the raw data on top as an extra
layer of points.
Best wishes, Evan
On Wed, Apr 12, 2017 at 5:41 AM, Klemens Kn?ferle <knoeferle at gmail.com>
wrote:
Hi all,
I'm trying to visualize a three-way interaction from a rather complex
linear mixed model in R (lmer function from the lme4 package; the model has
a complex random-effects structure). The interaction consists of two
continuous variables and one categorical variable (two experimental
conditions).
So far, I have graphed the interaction via two 3D-surface plots using
visreg2d from the visreg package. But my reviewers found these plots
confusing and asked for a different illustration, such as conditional
coefficient plots (i.e., plots of the strength of coefficient 1 as
coefficient 2 increases).
I've tried to find a package that allows me to create these kind of plots,
but failed. The existing packages only allow coefficient plots for two-way
interactions (for instance the interplot package;
https://cran.r-project.org/web/packages/interplot/
vignettes/interplot-vignette.html).
That means I only get a conditional coefficient plot of the two-way
interaction, collapsed across both levels of the categorical variable.
Is there a package for my case? If not, I probably have to manually extract
fitted values from my model (e.g., using broom) and somehow plot them in
ggplot2. But I don't really know how to do this, whether or not to take
into account random effects (and how), etc. Any ideas would be much
appreciated...
Klemens Kn?ferle, Ph.D.
Associate Professor - Department of Marketing
BI Norwegian Business School
Visiting address: Nydalsveien 37, 0484 Oslo
[[alternative HTML version deleted]]