Description Usage Arguments Value Bass curve Gompertz curve Gamma/Shifted Gompertz Weibull Note Author(s) References See Also Examples
This function fits diffusion curves that can be of "bass"
,
"gompertz"
, "gsgompertz"
(Gamma/Shifted Gompertz curve) or "Weibull"
type.
1 2 3 4 5 
x 
vector with adoption per period 
w 
vector of curve parameters (see note). If provided no estimation is done. 
cleanlead 
removes leading zeros for fitting purposes (default == TRUE) 
prew 
Experimental. Ignore!
the 
l 
the lnorm (1 is absolute errors, 2 is squared errors). 
cumulative 
If TRUE optimisation is done on cumulative adoption. 
pvalreps 
Experimental. Ignore! bootstrap repetitions to estimate (marginal) pvalues 
eliminate 
Experimental. Ignore!
if TRUE eliminates insignificant parameters from the
estimation. Forces 
sig 
Experimental. Ignore! significance level used to eliminate parameters 
verbose 
if TRUE console output is provided during estimation (default == FALSE) 
type 
diffusion curve to use. This can be "bass", "gompertz" and "gsgompertz" 
optim 
optimization method to use. This can be "nm" for NelderMeade or "hj" for HookeJeeves. 
maxiter 
number of iterations the optimser takes (default ==

opttol 
Tolerance for convergence (default == 1.e06) 
Returns an object of class diffusion
, which contains:
type
diffusion curve type used
call
calls function fitted
w
named vector of fitted parameters
x
actuals
fit
fitted values of model
frc
forecasts for future periods. This is NULL
until predict.diffusion
is called.
mse
insample Mean Squared Error
prew
the w
of the previous generation
pval
pvalues for w
The optimisation of the Bass curve is initialisated by the linear aproximation suggested in Bass (1969).
The initialisation of the Gompertz curve uses the approach suggested by Jukic et al. (2004), but is adapted to allow for the nonexponential version of Gompertz curve. This makes the market potential parameter equivalent to the Bass curves's and the market potential from Bass curve is used for initialisation.
The curve is initialised by assuming the shift operator to be 1 and becomes equivalent to the Bass curve, as shown in Bemmaor (1994). A Bass curve is therefore used as an estimator for the remaining initial parameters.
The initialisation is obatained through by a linear approximation medianranked OLS described in Sharif and Islam 1980.
vector w
needs to be provided for the Bass curve in the order of
"p", "q", "m"
, where "p" is the coefficient of innovation, "q" is the
coefficient of imitation and "m" is the market size coefficient.
For the Gompertz curve, vector w
needs to be in the form of
("a", "b", "m")
. Where "a" is the xaxis displacement coefficient, "b"
determines the growth rate and "m" sets, similarly to Bass model, the
market potential (saturation point).
For the ShiftedGompertz curve, vector w
needs to be in the form of
("a", "b", "c", "m")
. Where "a" is the xaxis displacement
coefficient, "b" determines the growth rate, "c" is the shifting parameter
and "m" sets, similarly to Bass model, the market potential (saturation
point).
For the Weibull curve, vector w
needs to be in the form of
\cod("a", "b", "m"). Where "a" is the scale parameter, "b" determines the
shape. Together, "a" and "b" determine the stepness of the curve. The "m"
parameter sets the market potential (saturation point).
Parameters are estimated by minimising the Mean Squared Error with a Subplex algorithm from the nloptr package. Optionally pvalues of the coefficients can be determined via bootstraping. Furthermore, the bootstrapping allows to remove insignificant parameters from the optimisation process.
Oliver Schaer, [email protected],
Nikoloas Kourentzes, [email protected]
For an introduction to diffusion curves see: Ord K., Fildes R., Kourentzes N. (2017) Principles of Business Forecasting 2e. Wessex Press Publishing Co., Chapter 12.
Bass, F.M., 1969. A new product growth for model consumer durables. Management Science 15(5), 215227.
Bemmaor, A. 1994. Modeling the Diffusion of New Durable Goods: WordofMouth Effect versus Consumer Heterogeneity. In G. Laurent, G.L. Lilien and B. Pras (Eds.). Research Traditions in Marketing. Boston: Kluwer, pp. 201223.
Jukic, D., Kralik, G. and Scitovski, R., 2004. Leastsquares fitting Gompertz curve. Journal of Computational and Applied Mathematics, 169, 359375.
Sharif, N.M. and Islam, M.N. 1980. The Weibull Distribution as a General Model for Forecasting Technological Change. Technological Forecasting and Social Change, 18, 247256.
predict.diffusion
, plot.diffusion
and print.diffusion
.
seqdiffusion
for sequential diffusion model fitting
across product generations.
1 2 3 4 5 6 7 8 9 10  fitbass < diffusion(diff(tsChicken[, 2]), type = "bass")
fitgomp < diffusion(diff(tsChicken[, 2]), type = "gompertz")
fitgsg < diffusion(diff(tsChicken[, 2]), type = "gsgompertz")
fitgwb < diffusion(diff(tsChicken[, 2]), type = "weibull")
# Produce some plots
plot(fitbass)
plot(fitgomp)
plot(fitgsg)
plot(fitgwb)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.