You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Setting cond.int = TRUE in probe_interaction when x is non-centred results in mismatching intercepts (i.e., console output from sim_slopes does not match plot output from interact_plot). This can be corrected by also setting centered = "none", but should probably be corrected or should print a warning for users who may not realise.
Reproducible example:
##### THIS IS OKAY -- x has already been centred beforehand
set.seed(0)
data1 = data.frame(x = scale(rnorm(20), center = TRUE), m = scale(rnorm(20), center = TRUE))
data1$y = 5 * data1$x * data1$m + rnorm(20)
res1 = lm(y ~ x*m, data = data1)
summary(res1)
# based on manual calculations
# when m at -1sd, int = 0.41, slope = -4.78
# when m at mean, int = -0.11, slope = 0.08
# when m at +1sd, int = -0.62, slope = 4.94
interactions::probe_interaction(res1, pred = x, modx = m, cond.int = TRUE)
# matches manual calculations
##### THIS IS NOT OKAY -- x has not been centred beforehand
set.seed(0)
data2 = data.frame(x = sample(c(0,1), 20, replace = TRUE), m = scale(rnorm(20), center = TRUE))
data2$y = 5 * data2$x * data2$m + rnorm(20)
res2 = lm(y ~ x*m, data = data2)
summary(res2)
# based on manual calculations
# when m at -1sd, int = -0.33, slope = -4.17
# when m at mean, int = -0.18, slope = 0.32
# when m at +1sd, int = -0.03, slope = 4.81
interactions::probe_interaction(res2, pred = x, modx = m, cond.int = TRUE)
# wrong cond ints in sim_slopes output but correct in interact_plot graph
interactions::probe_interaction(res2, pred = x, modx = m, cond.int = TRUE, centered = "none")
# correct cond ints
The text was updated successfully, but these errors were encountered:
Thanks for the report. I think the issue here is that the meaning of centered = "all" is different for sim_slopes() and interact_plot() which was not a good design decision by me. interact_plot() does not center either pred or modx because they are both displayed over their entire range. sim_slopes()does center pred to improve the interpretation of the slope coefficients. I'll have to think about whether and how to address this without breaking anything.
Actually... it doesn't really make sense to center the predictor variable. The choice to center pred shouldn't affect the values of the slope for pred. So this is simply a case of making centered = "all" behave the same way in sim_slopes() as it currently does in interact_plot().
Setting
cond.int = TRUE
inprobe_interaction
when x is non-centred results in mismatching intercepts (i.e., console output fromsim_slopes
does not match plot output frominteract_plot
). This can be corrected by also settingcentered = "none"
, but should probably be corrected or should print a warning for users who may not realise.Reproducible example:
The text was updated successfully, but these errors were encountered: