EVAL_DEFAULT <- FALSE knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = EVAL_DEFAULT )
library(modsem)
Simple slope effects can be plotted using the included plot_interaction()
function. This function takes a fitted model object and the names of the two variables that are interacting. The function will plot the interaction effect of the two variables, where:
The function will also plot the 95% confidence interval for the interaction effect.
Note that the vals_z
argument (as well as the values of x
) are scaled by the
mean and standard deviation of the variables. Unless the rescale
argument is set to FALSE
.
Here is a simple example using the double-centering approach:
m1 <- " # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z + X:Z " est1 <- modsem(m1, data = oneInt) plot_interaction(x = "X", z = "Z", y = "Y", vals_z = c(0, 1), model = est1)
If you want to see the numerical values of the simple slopes, you can use the simple_slopes()
function:
m1 <- " # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z + X:Z " est1 <- modsem(m1, data = oneInt) simple_slopes(x = "X", z = "Z", y = "Y", vals_z = c(0, 1), model = est1)
The simple_slopes()
function returns a simple_slopes object, which is a data.frame
with some additional attributes. It only has a single method (or technically, a generic function),
print.simple_slopes()
, which prints the simple slopes in a easy-to-read format. If you want to
extract the simple slopes as a data.frame
, you can use the as.data.frame()
function:
m1 <- " # Outer Model X =~ x1 X =~ x2 + x3 Z =~ z1 + z2 + z3 Y =~ y1 + y2 + y3 # Inner Model Y ~ X + Z + X:Z " est1 <- modsem(m1, data = oneInt) slopes <- simple_slopes(x = "X", z = "Z", y = "Y", vals_z = c(0, 1), model = est1) as.data.frame(slopes)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.