Predicten mit bootMer

Varianzanalyse, Diskriminanzanalyse, Kontingenzanalyse, Faktorenanalyse, Clusteranalyse, MDS, ....

Moderator: EDi

Antworten
Liselotte_Lotterlisa
Beiträge: 2
Registriert: Di Okt 15, 2019 2:36 pm

Predicten mit bootMer

Beitrag von Liselotte_Lotterlisa »

Hallo,
ich untersuche die Reaktion einer Vogelart (PV) nach Abspielen zweier Artgesänge (stimulus = PV, PC).
Dafür habe ich ein glmer berechnet. Für eine Reaktion teilte ich eine 1 zu für das Ausbleiben der Reaktion eine 0.
Als unabhängige Variablen habe ich den Jahrestag und die Tageszeit (h_nach_SA_dezimal) sowie als random effect die Untersuchungsfläche (flaeche) mit einbezogen. Den Jahrestag und Tageszeit hab ich vor der Modellberechnung skaliert.

Code: Alles auswählen

dat$flaeche <- as.factor(dat$flaeche)
dat$Reak_PV_binom <- as.factor(dat$Reak_PV_binom)
dat$jahrestag.s <- scale(dat$Jahrestag)
dat$h_nach_SA_dezimal.s <- scale(dat$h_nach_SA_dezimal)

mod1 <- glmer(Reak_PV_binom ~ stimulus + jahrestag.s + I(jahrestag.s^2) + h_nach_SA_dezimal.s + (1|flaeche),data=dat, family=binomial)
Nun möchte ich die Reaktionswahrscheinlichkeit bei unterschiedlichen Stimuli predicten und grafisch darstellen.
Die Funktion "predict()" funktioniert nicht bei glmers also wollte ich die Prediction mit der Funktion "bootMer" machen und ich habe überhaupt keine Ahnung, was ich hier tun muss.

Code: Alles auswählen

df.predicted <- data.frame(Reak_PV_binom = "1", x = stimulus)
predict.fun <- function(mod1) {
  predict(mod1, newdata = data.frame, re.form = NA)  
}
df.predicted$ml.value <- predict.fun(mod1)


glmer.boots <- bootMer(mod1, predict.fun, nsim = 200) 
df.predicted <- cbind(df.predicted, confint(glmer.boots)) 
df.predicted
Das war mein Versuch, aber ich bekomme bereits bei "df.predicted$ml.value <- predict.fun(mod1)" die Fehlermeldung "Error in eval(predvars, data, env) : object 'jahrestag.s' not found"

Ich bin absoluter Anfänger bei R und stark am Verzweifeln. Wie mach ich das Ganze richtig? Ich freue mich über jede Hilfe.
LG Liselotte
Dateianhänge
Modell_Reaktion_Gruenspecht_FINAL.xlsx
(80.28 KiB) 62-mal heruntergeladen
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Predicten mit bootMer

Beitrag von EDi »

Die Funktion "predict()" funktioniert nicht bei glmers
Wieso nicht?

Hier ein Beispiel:

Code: Alles auswählen

# for model
library(lme4)
# for plot
library(ggplot2)

# the data
ggplot(cbpp, aes(x = period, y = incidence/size)) +
  geom_point() +
  geom_line(aes(group = herd)) +
  facet_wrap(~herd)

# the model
gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
              data = cbpp, family = binomial)

# predict from that
pdat <- cbpp
pdat$fitted <- predict(gm1, type = 'response')

# plot it
ggplot(pdat, aes(x = period)) +
  geom_point(aes(y = incidence/size)) +
  geom_line(aes(y = incidence/size, group = herd)) +
  geom_point(aes(y = fitted), col = "red") +
  geom_line(aes(y = fitted, group = herd), col = "red") +
  facet_wrap(~herd)
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