5

GLMM で自己相関を説明しようとしています。私の応答変数はブール値で、蜂の巣のセットのライフ サイクルにおける en イベントの有無を表します。各巣の状態を表す一連の数値変数を使用して、そのようなイベントの確率を予測しようとしています。そのため、一般化されたモデルで二項分布を使用し、ネストをランダム効果として使用しました (glmer() を使用)。ただし、イベントは自己相関しているため、残差にかなりひどいパターンが生じます。ランダム効果のないエラーでガウス分布を使用していた場合、gls() で相関構造を使用していくつかの相関パラメーターを推定しますが、この場合はうまくいきません。この自己相関を GLMM に含める方法を探していましたが、うまくいかないようです。関数 ts() と diff() を使用してデータセットを変換すると、モデルに応答の以前の値を予測子として含めることができることがわかりました。これは線形モデル lm() で機能し、残差がより良くなります。

basket.1<-subset(basket,select=c(Nest,day,number_cells,provitioning_cells,closed_cells,
                             reopened_cells,eclosed_cells,pollen))
basket.ts<-ts(as.matrix.data.frame(basket.1),start=1,frequency=9)
m.basket.ts1<-lm(pollen~provitioning_cells+reopened_cells+closed_cells
            +eclosed_cells+day,data=diff(basket.ts,differences=2))`

ただし、lmer() も glm() も、これらの関数の出力を受け入れません。問題は、変換によって一部の値が負になり、 glm() が二項モデルの負の値を受け入れないことです (これは理にかなっています)。自己相関 glm() を説明することは可能であると読みましたが、これはすでに改善されていますが、機能させることはできません。また、 glmmPQL() には相関構造を含めることができることも読みました。そのモデルは実行されますが、残差のパターンは改善されません。それらはまだ自己相関しているようです。

m.basket.glmm1<-glmmPQL(pollen~provitioning_cells+reopened_cells+closed_cells
            +eclosed_cells+day,random=~1|Nest,family=binomial,correlation=corAR1(form=~day),
            data=basket)

さまざまな相関構造を試しましたが、どれもうまくいかないようです。

最後に、回帰関数が時系列を処理できるようにするはずの dyn パッケージを試しました。しかし、ここでも、関数は変換によって生成された値で実行されません。

m.bas.glm.dyn1<-dyn$glm(pollen~provitioning_cells+reopened_cells+closed_cells
                    +eclosed_cells+day,family=poisson,data = diff(basket.ts,differences=3))

要約すると、時間相関を使用して GLMM を実行する必要がありますが、これを行う方法が見つかりません。助けていただければ幸いです。

乾杯!!!

4

1 に答える 1

1

再現可能な例を教えてください。原則として、「手で」値を遅らせることはそれほど難しくありません。

basket.1 <- subset(basket,select=c(Nest,day,number_cells,
                             provitioning_cells,closed_cells,
                             reopened_cells,eclosed_cells,pollen))
n <- nrow(basket.1)
basket.2 <- transform(basket.1,pollen.lag1=c(pollen[2:n],NA),
                      pollen.lag2=c(pollen[3:n],rep(NA,2)))

library("lme4")
m.basket.glmm1 <- glmer(pollen~provitioning_cells+
                   reopened_cells+ closed_cells+
                    eclosed_cells+day+pollen.lag1+pollen.lag2+
                    (1|Nest),
                   family=binomial,data=basket.2)

データ セットのサイズによっては、係数ではなくday数値の場合は...(day|Nest)(1|Nest)

于 2015-06-09T17:51:14.273 に答える