Hallo zusammen,
ich arbeite gerade an einem lme mit folgenden Daten
y x1 x2
10 1 100
20 2 200
30 3 300
40 4 400
50 5 500
11 1 100
19 2 200
30 3 300
43 4 400
49 5 500
und dem model: model <- lme(y~x2,random = ~1|x1)
aus dem plot y~x2 ergibt sich dann die angehängte Grafik Punkte
Kann mit jemand den Befehl um die Regressionslinie in die Grafik einzuzeichen erklären? (mit visreg ist es kein Problem, siehe Grafik visreg)
Ich habe schon folgendes versucht, komme aber zu einem mir nicht erklärbaren Ergebnis
plot(x2,y,type="n",ylab = "y", xlab = "x2",ylim = c(0,50),xlim = c(0,500))
points(y~x2)
smoothx <- seq(0,500, length=10)
length(smoothx)
smoothy <- predict(model, x2 =smoothx)
length(smoothy)
lines(smoothx, smoothy)
lme lines
Moderator: EDi
Re: lme lines
Nunja mit einem gemischten (oder auch multilevel) Model ist das ein wenig komplexer als beim standard linearen model.
Zuerst musst du klären, auf welchem level du die predictions haben willst- Nur auf den fixed effects oder für jeden random effect?
Also nur eine Linie (der random effect ist 0) oder mehrere Linien (verschoben um den geschätzten random intercept von jeder gruppe)?
Zuerst musst du klären, auf welchem level du die predictions haben willst- Nur auf den fixed effects oder für jeden random effect?
Also nur eine Linie (der random effect ist 0) oder mehrere Linien (verschoben um den geschätzten random intercept von jeder gruppe)?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: lme lines
Nur eine Linie.
Ich bin mittlerweile etwas weite gekommen:
Die Fehlerquelle scheint bei den newdata im predict zu sein? Woraus ergibt sich das level? Ich hab jetzt einfach 0 genommen, weil es so funktioniert, weiß aber nicht warum.
smoothx <- seq(0,500, 0.1)
smoothy <- predict(model,list(x2=smoothx),level=0)
smoothyback <- exp(smoothy)
lines(smoothx, smoothy)
Ich bin mittlerweile etwas weite gekommen:
Die Fehlerquelle scheint bei den newdata im predict zu sein? Woraus ergibt sich das level? Ich hab jetzt einfach 0 genommen, weil es so funktioniert, weiß aber nicht warum.
smoothx <- seq(0,500, 0.1)
smoothy <- predict(model,list(x2=smoothx),level=0)
smoothyback <- exp(smoothy)
lines(smoothx, smoothy)
Re: lme lines
Unter Anderem. Normalerweise ist newdata ein dataframe mit den Prädikatoren (x1 und x2 hier).Die Fehlerquelle scheint bei den newdata im predict zu sein
Ein data.frame ist auch eine liste, deshalb geht auch eine Liste hier (würde ich aber nicht generell empfehlen).
Hab ich oben schon erklärt. Da du in newdata keine x1 übergbst, kannst du auf dem random effect (level) keine vorhersagen machen. du machst sie auf dem kleinsten level (fixed effects).Woraus ergibt sich das level? Ich hab jetzt einfach 0 genommen, weil es so funktioniert, weiß aber nicht warum.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.