[R] Adjust Richards model with nlme
David Winsemius
dwinsemius at comcast.net
Tue Jan 19 21:47:53 CET 2016
> On Jan 19, 2016, at 3:20 AM, raphael fernandes <raphaelfsa89 at yahoo.com.br> wrote:
>
> Hello everyone,
>
> I have tried to adjust the non linear Richards growth model with this script:
>
> richards <- function(x,beta1,beta2,beta3,beta4)
> beta1*(1-beta2*exp(-x*beta3))^beta4
> richards <- deriv(~beta1*(1-beta2*exp(-x*beta3))^beta4,c("beta1","beta2","beta3","beta4"),function(x,beta1,beta2,beta3,beta4){})
> FF.richards <- nls(Peso~richards(Idade,beta1,beta2,beta3,beta4),data=femeas,start=c(beta1=370,beta2=9.7,beta3=272,beta4=0.00003))
>
> but I receive the follow error:
>
> Erro em qr.default(.swts * attr(rhs, "gradient")) :
> NA/NaN/Inf em chamada de função externa (argumento 1)
> Além disso: Mensagens de aviso perdidas:
> In log(.expr5) : NaNs produzidos
Yes. Any interim trials for that iterative procedure that had a negative value for expr5 in the `richards` object would trigger that error:
richards
function (x, beta1, beta2, beta3, beta4)
{
.expr3 <- exp(-x * beta3)
.expr5 <- 1 - beta2 * .expr3
.expr6 <- .expr5^beta4
.expr9 <- .expr5^(beta4 - 1)
.value <- beta1 * .expr6
.grad <- array(0, c(length(.value), 4L), list(NULL, c("beta1",
"beta2", "beta3", "beta4")))
.grad[, "beta1"] <- .expr6
.grad[, "beta2"] <- -(beta1 * (.expr9 * (beta4 * .expr3)))
.grad[, "beta3"] <- beta1 * (.expr9 * (beta4 * (beta2 * (.expr3 *
x))))
.grad[, "beta4"] <- beta1 * (.expr6 * log(.expr5))
attr(.value, "gradient") <- .grad
.value
}
>
> What can I do to fix it?
You might try posting some data and seeing if the optimization gurus have insights. I hesitate to offer the hack I constructed to sidestep the log(neg_num) problem since I have no way to testing it for sensibility , and I'm certainly not in the guru-category.
--
David
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list