2016-07-30 38 views
2

RのMuMIn::dredge関数から何らかのエラーが発生しており、解決方法がわかりません。私が起こっている理由を私は知らない、次のエラーを取得MuMIn :: Dredgeを使用すると、モデルが収束しない

options(na.action = "na.fail") 
global.model<-lmer(yld.res ~ rain + brk+ act + 
    onset + wid + (1|state),data=dat,REML=FALSE) 
stdz.model <- standardize(global.model,standardize.y = FALSE) 
model.set <- dredge(stdz.model) 

Hereは、私はグローバルモデルを構築し...

library(lme4) 
library(MuMIn) 
library(arm) 

私のデータです。明確化のために、それぞれについてyearに対してyldの線形回帰から得られるyld.resが残っている。応答としてyldを使用すると、dredgeは正常に動作します。助けや助言をいただければ幸いです。

Fixed term is "(Intercept)" 
Warning messages: 
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
unable to evaluate scaled gradient 
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
Model failed to converge: degenerate Hessian with 1 negative eigenvalues 
3: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
unable to evaluate scaled gradient 
4: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
Model failed to converge: degenerate Hessian with 1 negative eigenvalues 
5: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
unable to evaluate scaled gradient 
6: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
Model failed to converge: degenerate Hessian with 1 negative eigenvalues 
7: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
unable to evaluate scaled gradient 
8: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
Model failed to converge: degenerate Hessian with 1 negative eigenvalues 

答えて

2

TL; DRは、私はこれらの偽陽性だと思います。私はデータやモデルで何か怪しげなものは見ません。尤度カーブは、推定された空間の端で完全に平坦であり、収束チェックをねじっています(これは珍しいことですが、何も問題ありません)。

セットアップの複製:

dd <- read.csv("SOtmpdat.csv") 
library(lme4) 
library(MuMIn) 
library(arm) 
options(na.action = "na.fail") 
global.model <- lmer(yld.res ~ rain + brk+ act + onset + 
        wid + (1|state), data=dd,REML=FALSE) 
stdz.model <- standardize(global.model,standardize.y = FALSE) 
model.set <- dredge(stdz.model) 

チェックアウトデータ:奇妙に見える

enter image description here

library(ggplot2); theme_set(theme_bw()) 
library(reshape2) 
mm <- melt(dd,id.var=c("year","state","yld.res")) 
ggplot(mm,aes(value,yld.res,colour=state))+geom_point()+ 
    facet_wrap(~variable,scale="free")+geom_smooth(method="lm") 
があまりにも何をここで起こっていませんが、ありません。標準化されたモデルの係数で

ルック:予測因子間

library(dotwhisker) 
dwplot(stdz.model)+geom_vline(xintercept=0,lty=2) 

enter image description here

ませ巨大なペアワイズ相関関係ありません:

cor(as.matrix(dd[,3:8])) 
pairs(as.matrix(dd[,3:8]),gap=0,cex=0.5) 

enter image description here

さんが壊れモデルのいずれかを見つけてみよう:

options(warn=1) 
model.set <- dredge(stdz.model,trace=TRUE) 

そして、それを試してみる:より慎重

test1 <- lmer(formula = yld.res ~ z.brk + z.onset + (1 | state), 
     data = model.frame(stdz.model), 
     REML = FALSE) 

ルック:再び

enter image description here

mf <- transform(model.frame(stdz.model), 
       z.onset.cat=cut_number(z.onset,4)) 
ggplot(mf, 
     aes(z.brk,yld.res, 
      colour=state))+geom_point()+ 
    facet_wrap(~z.onset.cat) 
、何もあまりにも面白いに見えます。

手でモデルフィットを調べてみましょう:1つの明示的なパラメータ(州ごとの標準偏差)があります。

tt <- as.function(test1) 
tvec <- seq(0,1,length=501) 
dvec <- sapply(tvec,tt) 
par(las=1,bty="l") 
plot(tvec,dvec,type="l") 

enter image description here

正常に見えます。

+0

ああうわー!!そのような詳細な説明に感謝します。私はそれを将来使用する必要がある場合に備えてブックマークします。モデルがどのように機能しているかについては、たくさんの有用なものがあります。 – user53020

関連する問題