R でのモデル平均化に glmulti を使用しています。私のモデルには 10 個までの変数があり、徹底的なスクリーニングは非現実的です。したがって、遺伝的アルゴリズム (GA) を使用する必要があります (call: method = "g")。
ランダム効果を含める必要があるため、lme4 のラッパーとして glmulti を使用しています。これを行う方法は、http://www.inside-r.org/packages/cran/glmulti/docs/glmultiで入手できます。また、glmulti パッケージに含まれる PDF で詳細が説明されています。問題は、この設定で GA を使用するように glmulti に指示すると、最適なモデルが見つかった後でも、GA が無期限に実行されることです。
これは、glmulti パッケージに含まれている pdf からの例です。
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)")
これはうまくいきます。問題は、遺伝的アルゴリズムを使用するように指示したときです。
babs <- glmulti(y~a*b*c, level = 2, fitfunc = lmer.glmulti, random = "+(1|x)", method = "g")
無期限に実行し続けるだけで、AIC は変更されません。
...
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.
glmulti にいつ停止するかを伝える呼び出し (deltaB = 0、deltaM = 0.01、conseq = 6) を使用してみましたが、何も機能していないようです。問題は関数の設定にあるに違いないと思います(?)。それは本当に明白なことかもしれませんが、私はRに慣れていないのでうまくいきません。
これについての助けは大歓迎です。