I try to estimate Bass Curves to analyse diffusion of innovation for different groups. Until now I use nlsLM()
of the minpack.lm
package to estimate the parameter of the curve/to fit the curve. I loop through different starting values to estimate the best fit using this command for the different starting values:
Bass.nls <- nlsLM(cumulative_y~ M * (((P + Q)^2/P) * exp(-(P + Q) * time))/(1 + (Q/P) * exp(-(P + Q) * time))^2
, start = list(M=m_start, P= p_start, Q=q_start)
, trace = F
, control = list(maxiter = 100, warnOnly = T) )
Since some groups have little data points many do not converge.
Venkatesan and Kumar (2002) suggest to use a Genetic Algorithm approach for bass model estimations when data is scarce (see also Venkatesan et al 2004). I have found some packages that implement GA in R (like GA
, genalg
, gafit
). However, since I am new to the field, I don't know which package to use and how to use the bass formula in the packages.
- Is there a package you would recommend for this kind of estimation?
- If yes, is there an example for how to include the formula of the bass model in the code of the package?