0

これは、複数の測定値を取得する一部のオペレーターのランダム効果を考慮して、glm を実行しようとしているサブセット データセットです。

data<-data.frame(c("AA","AB","AC","AD","AE","AF","AG","AB","AE","AH","AI","AJ","AK","AL","AM","AD","AN","AO","AP","AQ","AR","AS","AT","AU","AJ","AM","AI","AD","AV","AW","AE","AA","AY","AP","AM","AZ","BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BF","BL","AI","AD","BM","BN","BO","AU","AM","AE","AI","AC","BP","BQ","BR","BS","AB","BT","BU","BV","LEH","AD","AZ","BW","BL","BX","BY","BZ","BR","AL","BU","AJ","CA","CB","BO","BU","BO","CC","CD","BU","CE","CF","CG","CH","BO","AX","AJ","CI","AN","CJ","BO","AJ","CK","AY","CL","CM","CL","CN","AV","CO","BP","CP","CK","BP","BF","CQ"))
colnames(data)[1]<-"op"
data$resp<-c(1,NA,1,1,1,0,1,1,1,0,NA,0,1,1,0,NA,0,0,0,1,NA,1,0,0,1,0,NA,NA,0,0,1,0,1,0,1,NA,0,NA,NA,NA,1,0,0,1,0,1,0,1,NA,1,1,1,1,0,1,0,NA,1,1,NA,1,NA,1,0,0,0,1,NA,NA,1,1,1,NA,1,NA,NA,NA,NA,0,1,NA,0,1,0,1,NA,1,0,1,0,0,0,0,1,0,NA,1,0,NA,1,0,1,1,0,NA,1,1,1,0,0,0,1,1)
data$var1<-c(NA,NA,0,1,NA,NA,NA,1,NA,NA,NA,NA,NA,1,0,NA,NA,NA,0,NA,NA,NA,NA,0,1,0,NA,NA,NA,NA,NA,0,1,0,0,NA,NA,NA,NA,NA,NA,NA,0,NA,NA,1,0,1,NA,1,1,NA,NA,NA,1,0,NA,1,0,NA,1,NA,1,0,0,0,1,NA,NA,1,NA,1,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,NA,0,1,NA,1,0,NA,NA,0,0,0,1,NA,NA,1,NA,NA,1,NA,1,0,0,NA,1,NA,NA,NA,NA,0,NA,NA)
data$var2<-c(NA,NA,NA,NA,NA,NA,1,NA,1,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,1,NA,1,NA,NA,NA,NA,NA,NA,NA,0,1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,NA,1,NA,NA,NA,NA,NA,NA,NA,1,1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,1,1,NA,NA,NA,1,NA)
data$var3<-c(NA,NA,1,NA,NA,0,1,NA,1,0,NA,NA,0,1,0,NA,NA,NA,0,0,NA,0,NA,0,0,0,NA,NA,NA,0,0,0,0,0,1,NA,NA,NA,NA,NA,1,0,NA,1,NA,0,0,1,NA,NA,NA,1,1,NA,0,0,NA,1,1,0,NA,NA,1,NA,0,0,0,NA,NA,0,NA,1,NA,0,NA,NA,NA,NA,NA,NA,NA,0,0,0,1,NA,1,NA,NA,0,0,0,0,0,NA,NA,NA,NA,NA,1,NA,0,1,0,NA,NA,0,0,NA,NA,0,NA,NA)

次のように (lme4 から) glmer を使用して最初の glm を実行すると:

summary(glmer(resp~var1+(1|op),data=data,family=binomial,na.action=na.omit))

このエラーメッセージしか表示されません

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,  :
   Hessian is numerically singular: parameters are not uniquely determined
Error in diag(vcov(object, use.hessian = use.hessian)) : 
  error in evaluating the argument 'x' in selecting a method for function 'diag': Error in solve.default(h) : 
  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

2 番目の変数に対して 2 番目の glm を実行すると、

summary(glmer(resp~var2+(1|op),data=data,family=binomial,na.action=na.omit))

次に、この他のメッセージを取得します。

Error in summary(glmer(resp ~ var2 + (1 | op), data = data, family = binomial,  : 
  error in evaluating the argument 'object' in selecting a method for function 'summary': Error in summary(glmer(resp ~ var2 + (1 | op), data = data, family = binomial,  : 
  pwrssUpdate did not converge in (maxit) iterations

3番目の変数に対して実行すると

summary(glmer(resp~var3+(1|op),data=data,family=binomial,na.action=na.omit))

それでうまくいくように見えますが、それは本当ですか?この分析が機能していないデータの分布には何かがあるはずです。誰でもアイデアがあり、それを回避する方法を提案できますか?

実行することでそれを回避する方法を見つけたかもしれません

summary(lme(resp~var1,random=~1|op,data=data,na.action=na.omit))

これは 3 つの変数すべてで正常に動作するようですが、結果は glmer と lme の間で data$var3 に対して少し異なり、この時点で自分の結果を信頼していません。これらのエラーが発生する理由がわかりません.SOや他のサイトで見つけたすべての説明は、私にはあまり意味がありません. データは非常に単純ですが、なぜこれが機能しないのですか? lme の使用は適切ですか? どうもありがとう

4

1 に答える 1