0

r で nlme パッケージを使用して、マルチレベルの線形モデルを実行しようとしていました。

6 つの異なる場所 (州) について、60 年間の応答変数として収量、予測変数として降水量を使用しています。私は、降雨がすべての場所で収量に同じレベルの影響を与えるのか、それとも異なる影響を与えるのかを確認しようとしています. 原則として、降水量と降水量の勾配が場所によって大きく異なるかどうかを確認しようとしています。したがって、降雨は私のランダム効果です。私は次のようにモデルを構築しました:

  # baseline model which only includes intercept
  mdl1<-gls(yield ~ 1,data = data, method="ML")

  #intercept as random effect
  mdl2<-lme(yield ~ 1,data=data,random = ~1|state,method="ML")  

  # slope as random effect
  mdl3<-lme(yield ~ rain, data = data, random = ~rain|state,method="ML")

  ##compare the three model
  anova(mdl1,mdl2,mdl3)
  #this shows me when I add slope as random effect, my model shows better fit compared to baseline model (mdl1)

これはすべて正常に機能しています。別の予測変数 (カウント データ) を使用して同じ分析を行うと、問題が発生します。

 # baseline model which only includes intercept: Works fine
 mdl4<-gls(yield ~ 1,data = data, method="ML")

 #intercept as random effect - works fine
mdl5<-lme(yield ~ 1,data=data,random = ~1|state,method="ML")  

 # include different predictor (break) this time instead of rain
 mdl6<-lme(yield ~ break, data = data, random = ~break|state,method="ML")

mdl 6 を実行すると、エラーが表示されます

 Error in lme.formula(res_yld ~ brk, data = data, random = ~brk | state,  : 
 nlminb problem, convergence error code = 1
 message = iteration limit reached without convergence (10)

なぜこれが起こっているのか、まったくわかりません。私の最初の予測子ではすべてうまくいきましたが、これは別の予測子では機能しません。ここで何が間違っていますか?これについてオンラインで読んでみましたが、投稿はあまり明確ではありません。これについて教えてくれる人に本当に感謝します。ありがとう

4

1 に答える 1

1

エラー メッセージから、アルゴリズムが収束する前に最大反復回数に達したことがわかります。ドキュメントから、次のようなものでそれを増やすことができるようです:

lmeControl(msMaxIter = 50)

ただし、収束が遅いと不適切な問題が発生する可能性があることに注意してください。したがって、データから推定しようとしているものを実際に推定できることを確認してください。

于 2014-06-05T10:43:02.007 に答える