Ich versuche, eine Interaktion zwischen zwei kontinuierlichen Variablen in R zu plotten. Allerdings sind meine Daten mehrstufig (Menschen innerhalb von Tagen geschachtelt), so dass ich die verschachtelte Struktur meiner Daten berücksichtigen muss wenn ich es grafisch darstelle. Ich analysiere meine Daten mithilfe der lme4-Bibliothek, um die verschachtelte Struktur zu berücksichtigen, aber es fällt mir schwer, herauszufinden, wie man sie grafisch darstellt.Plotten Interaktion von zwei kontinuierlichen Variablen mit lme4 Daten
## example data
spin = runif(600, 1, 24)
reg = runif(600, 1, 15)
ID = rep(c("1","2","3","4","5", "6", "7", "8", "9", "10"))
day = rep(1:30, each = 10)
testdata <- data.frame(
spin, reg, ID, day)
testdata$fatigue <- testdata$spin*testdata$reg/10*rnorm(30, mean=3, sd=2)
Hier habe ich meine unabhängige Variablen von Spin und reg, abhängige Variable von Müdigkeit und Menschen (ID) innerhalb weniger Tage verschachtelt. Ich betreibe mein Modell unten.
## running my multilevel model with lme4
library(lme4)
m1 <- lmer(fatigue ~ spin * reg + (1 | ID), data = testdata, REML = T)
(m1)
confint(m1, test = "Chisq")
Nehmen wir an, ich habe eine Interaktion zwischen Spin und reg. Ich muss meine kontinuierliche Variable in eine kategoriale Variable setzen, um sie zu zeichnen.
Also erstelle ich kategoriale Variable basierend auf einer meiner kontinuierlichen Variablen. Hier wähle ich Spin. Hinweis: Ich bin mir nicht sicher, ob dieser Code für das, was ich möchte, richtig ist. Müsste Standardfehler machen? Auch berücksichtigt meine verschachtelte Datenstruktur nicht, aber nicht sicher was sonst zu tun ist.
Basierend auf was ich online gefunden habe, kann ich eine grundlegende Handlung erstellen, um Effekte zu zeigen. ABER berücksichtigt keine geschachtelte Struktur (Personen - die Variablen-IDs sind innerhalb von Tagen verschachtelt).
library(ggplot2)
ggplot(testdata,aes(reg,fatigue,linetype=SpinLevel))+
geom_smooth(method="lm",se=FALSE)
Diese ggplot ist gut für die grundlegende Wirkung zu interpretieren, aber die Linien sind wahrscheinlich verzerrt, weil sie (die Menschen innerhalb weniger Tage) nicht die verschachtelte Struktur meiner Daten berücksichtigen.
Ich kann mein Modell auch mit der Effektbibliothek grafisch darstellen. Dies berücksichtigt die geschachtelte Struktur. Außer der Graph ist nicht hübsch und ist in Quartilen, und ist sehr schwierig zu interpretieren. Ich möchte, dass es hoch, mittel und niedrig ist und alle auf demselben Diagramm stehen. Aber ich bin mir nicht sicher, wie ich das machen soll.
library(effects)
plot(effect("spin*reg", m1), grid=TRUE, labels = T,
xlevels=list(spin=quantile(testdata$spin, seq(0, 1, 0.25))))
Irgendwelche Ideen? Würde sehr geschätzt werden.
Ich sehe nichts in der Modellspezifikation, um Verschachtelung innerhalb 'Tages' anzuzeigen. –
http://stackoverflow.com/questions/9447329/how-to-plot-the-results-of-a-mixed-model –
Ich würde das 'Besen'-Paket als Ersatz für' coefplot2' empfehlen ... aber Ich denke, das OP will ein Effektdiagramm, kein Koeffizientenplot ... –