lme lines

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
ga84pew

lme lines

Beitrag von ga84pew »

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)
Dateianhänge
Punkte
Punkte
visreg
visreg
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: lme lines

Beitrag von EDi »

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)?
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
Bild.
ga84pew

Re: lme lines

Beitrag von ga84pew »

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)
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: lme lines

Beitrag von EDi »

Die Fehlerquelle scheint bei den newdata im predict zu sein
Unter Anderem. Normalerweise ist newdata ein dataframe mit den Prädikatoren (x1 und x2 hier).
Ein data.frame ist auch eine liste, deshalb geht auch eine Liste hier (würde ich aber nicht generell empfehlen).
Woraus ergibt sich das level? Ich hab jetzt einfach 0 genommen, weil es so funktioniert, weiß aber nicht warum.
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).
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
Bild.
Antworten