SSbgrp | R Documentation |
Self starter for Beta Growth function with parameters w.max, lt.m and ldt
bgrp(time, w.max, lt.e, ldt)
SSbgrp(time, w.max, lt.e, ldt)
time |
input vector (x) which is normally ‘time’, the smallest value should be close to zero. |
w.max |
value of weight or mass at its peak |
lt.e |
log of the time at which the maximum weight or mass has been reached. |
ldt |
log of the difference between time at which the weight or mass reaches its peak and half its peak ( |
For details see the publication by Yin et al. (2003) “A Flexible Sigmoid Function of Determinate Growth”.
This is a reparameterization of the beta growth function with guaranteed constraints, so it is expected to
behave numerically better than SSbgf
.
The form of the equation is:
w.max * (1 + (exp(lt.e) - time)/exp(ldt)) * (time/exp(lt.e))^(exp(lt.e) / exp(ldt))
.
Given this function weight is expected to decay and reach zero again at 2*ldt
. This is a reparameterized version
of the Beta-Growth function in which the parameters are unconstrained, but they are expressed in the log-scale.
bgrp: vector of the same length as x (time) using the beta growth function (reparameterized).
In a few tests it seems that zero values of ‘time’ can cause the error message ‘NA/NaN/Inf in foreign function call (arg 1)’, so it might be better to remove them before running this function.
require(ggplot2)
x <- 1:30
y <- bgrp(x, 20, log(25), log(5)) + rnorm(30, 0, 1)
dat <- data.frame(x = x, y = y)
fit <- nls(y ~ SSbgrp(x, w.max, lt.e, ldt), data = dat)
## We are able to recover the original values
exp(coef(fit)[2:3])
ggplot(data = dat, aes(x = x, y = y)) +
geom_point() +
geom_line(aes(y = fitted(fit)))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.