我一直在研究Pinhiero和Bates在S和S中的混合效果模型,并且在书中发现了很多问题。
最近的一个例子是,使用常数加幂函数对Theo数据集中的异方差组内误差进行建模(p.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))...yielding错误消息
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有人能解释一下这条信息吗?我该如何让它发挥作用?
发布于 2018-12-26 10:36:04
看起来,在优化过程中,被认为是正数的函数变成了负值:当应用于负数时,像sqrt和log这样的函数返回NaN。在不深入挖掘的情况下,我试图研究方差模型,该模型应该返回正值。为const设置更高的初始值可以解决这个问题:
fm4Theo.nlme <- update(fm3Theo.nlme, weights = varConstPower(const = 0.5, power = 0.1))https://stackoverflow.com/questions/53927436
复制相似问题