glmulti läuft auf unbestimmte Zeit, wenn ein genetischer Algorithmus mit lme4 verwendet wird

Ich verwende glmulti für die Modellmittelung in R. Mein Modell enthält ~ 10 Variablen, was ein umfassendes Screening unmöglich macht. Ich muss daher den genetischen Algorithmus (GA) verwenden (call: method = "g").

Ich muss zufällige Effekte einfügen, damit ich glmulti als Wrapper für lme4 verwende. Methoden dazu finden Sie hierhttp://www.inside-r.org/packages/cran/glmulti/docs/glmulti Das glmulti-Paket enthält auch ein PDF, das ausführlicher beschrieben wird. Das Problem ist, dass glmulti in dieser Einstellung unbegrenzt ausgeführt wird, selbst wenn das beste Modell gefunden wurde.

Dies ist das Beispiel aus dem PDF, das im glmulti-Paket enthalten ist:

library(lme4)
library(glmulti)

# create a function for glmulti to act as a wrapper for lmer:
lmer.glmulti <- function (formula, data, random = "", ...) {
lmer(paste(deparse(formula), random), data = data, REML=F, ...)
}

# set some random variables:
y = runif(30,0,10) # mock dependent variable
a = runif(30) # dummy covariate
b = runif(30) # another dummy covariate
c = runif(30) # an another one
x = as.factor(round(runif(30),1))# dummy grouping factor

# run exhaustive screening with lmer:
bab <- glmulti(y~a*b*c, level = 2, fitfunc = lmer.glmulti, random = "+(1|x)")

Das funktioniert gut. Das Problem ist, wenn ich ihm sage, dass er den genetischen Algorithmus verwenden soll:

babs <- glmulti(y~a*b*c, level = 2, fitfunc = lmer.glmulti, random = "+(1|x)", method = "g")

Es läuft nur auf unbestimmte Zeit weiter und der AIC ändert sich nicht:

...

After 19550 generations:
Best model: y~1
Crit= 161.038899734164
Mean crit= 164.13629335762
Change in best IC: 0 / Change in mean IC: 0

After 19560 generations:
Best model: y~1
Crit= 161.038899734164
Mean crit= 164.13629335762
Change in best IC: 0 / Change in mean IC: 0

After 19570 generations:
Best model: y~1
Crit= 161.038899734164
Mean crit= 164.13629335762

... etc.

Ich habe versucht, mithilfe von Aufrufen, die glmulti mitteilen, wann zu stoppen ist (DeltaB = 0, DeltaM = 0,01, Folge = 6), aber nichts scheint zu funktionieren. Ich denke das Problem muss bei der Einstellung der Funktion liegen (?). Es mag etwas wirklich Offensichtliches sein, aber ich bin neu in R und kann es nicht herausfinden.

Jede Hilfe dabei wäre sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage