Pinhiero和Bates的非线性混合效应模型的模型故障

时间:2018-12-26 04:32:15

标签: r nlme

我一直在研究Pinhiero和Bates编写的S和S-Plus中的混合效果模型,并且发现使本书中的模型起作用的许多问题。

这是最新的方法,它使用常数加幂函数对Theo数据集中的异方差组内误差建模(第393页)。错误发生在模型构建练习的结尾。前三个模型可以在R中使用,但最后一个不能使用

library(nlme)
fm1Theo.nlme <- nlme( model = conc ~ SSfol(Dose, Time, lKe, lKa, lCl), 
                      data = Theoph,
                      fixed = lKe + lKa + lCl ~ 1,
                      random = lKe + lKa + lCl ~ 1)
fm2Theo.nlme <- update(fm1Theo.nlme, random = pdDiag(list(lKe ~ 1, lKa ~ 1, lCl ~ 1)))
fm3Theo.nlme <- update(fm2Theo.nlme, random = pdDiag(list(lKa ~ 1, lCl ~ 1)))
fm4Theo.nlme <- update(fm3Theo.nlme, weights = varConstPower(power=0.1))

...产生错误消息

Error in eigen(val, only.values = TRUE) : 
  infinite or missing values in 'x'
In addition: Warning messages:
1: In nlminb(c(coef(nlmeSt)), function(nlmePars) -logLik(nlmeSt, nlmePars),  :
  NA/NaN function evaluation
2: In nlminb(c(coef(nlmeSt)), function(nlmePars) -logLik(nlmeSt, nlmePars),  :
  NA/NaN function evaluation
3: In nlminb(c(coef(nlmeSt)), function(nlmePars) -logLik(nlmeSt, nlmePars),  :
  NA/NaN function evaluation
4: In nlminb(c(coef(nlmeSt)), function(nlmePars) -logLik(nlmeSt, nlmePars),  :
  NA/NaN function evaluation

任何人都可以阐明此消息,以及如何使它起作用吗?

1 个答案:

答案 0 :(得分:1)

在优化过程中,似乎应该是正数的东西变成了负数:sqrtlog之类的函数在应用于负数时会返回NaN。在不深入研究的情况下,我尝试研究了应该返回正值的方差模型。为const设置较高的初始值可解决以下问题:

fm4Theo.nlme <- update(fm3Theo.nlme, weights = varConstPower(const = 0.5, power = 0.1))