ShiftedGompertzDistribution[λ,ξ]
represents a shifted Gompertz distribution with scale parameter λ and shape parameter ξ.
ShiftedGompertzDistribution
ShiftedGompertzDistribution[λ,ξ]
represents a shifted Gompertz distribution with scale parameter λ and shape parameter ξ.
Details
- ShiftedGompertzDistribution has been used to model technology adoption over time.
- The cumulative distribution function for value x in a shifted Gompertz distribution is given by
for
, and is zero for
. - ShiftedGompertzDistribution allows λ and ξ to be any positive real numbers.
- ShiftedGompertzDistribution allows λ to be a quantity of any unit dimension, and ξ to be a dimensionless quantity. »
- ShiftedGompertzDistribution can be used with such functions as Mean, CDF, and RandomVariate.
Examples
open all close allBasic Examples (4)
Probability density function of a shifted Gompertz distribution:
Plot[Table[PDF[ShiftedGompertzDistribution[2, ξ], x], {ξ, {0.5, 3, 10}}]//Evaluate, {x, 0, 3}, Filling -> Axis]Plot[Table[PDF[ShiftedGompertzDistribution[λ, 2], x], {λ, {1, 2, 3}}]//Evaluate, {x, 0, 3}, Filling -> Axis]PDF[ShiftedGompertzDistribution[λ, ξ], x]Cumulative distribution function of a shifted Gompertz distribution:
Plot[Table[CDF[ShiftedGompertzDistribution[2, ξ], x], {ξ, {0.5, 3, 10}}]//Evaluate, {x, 0, 3}, Filling -> Axis]Plot[Table[CDF[ShiftedGompertzDistribution[λ, 1], x], {λ, {1, 2, 3}}]//Evaluate, {x, 0, 3}, Filling -> Axis]CDF[ShiftedGompertzDistribution[λ, ξ], x]Mean and variance of a shifted Gompertz distribution:
Mean[ShiftedGompertzDistribution[λ, ξ]]Variance[ShiftedGompertzDistribution[λ, ξ]]Median of a shifted Gompertz distribution:
Median[ShiftedGompertzDistribution[λ, ξ]]Scope (8)
Generate a sample of pseudorandom numbers from a shifted Gompertz distribution:
sample = RandomVariate[ShiftedGompertzDistribution[1, 3], 10 ^ 4];Compare its histogram to the PDF:
Show[Histogram[sample, Automatic, PDF], Plot[PDF[ShiftedGompertzDistribution[1, 3], t], {t, 0, Max[sample]}, PlotStyle -> Thick]]Distribution parameters estimation:
sample = RandomVariate[ShiftedGompertzDistribution[2, 3], 10 ^ 3];Estimate the distribution parameters from sample data:
edist = EstimatedDistribution[sample, ShiftedGompertzDistribution[λ, ξ]]Compare the density histogram of the sample with the PDF of the estimated distribution:
Show[Histogram[sample, Automatic, PDF], Plot[PDF[edist, x], {x, 0, Max[sample]}, PlotStyle -> Thick]]Skewness of a shifted Gompertz distribution depends only on the shape parameter:
Plot[Skewness[ShiftedGompertzDistribution[λ, ξ]], {ξ, 0, 5}, AxesLabel -> Automatic]Skewness[ShiftedGompertzDistribution[λ, ξ]]//TraditionalFormKurtosis of a shifted Gompertz distribution depends only on the shape parameter:
Plot[Kurtosis[ShiftedGompertzDistribution[λ, ξ]], {ξ, 0, 5}, AxesLabel -> Automatic]Kurtosis[ShiftedGompertzDistribution[λ, ξ]]//TraditionalFormMoment of a shifted Gompertz distribution:
Moment[ShiftedGompertzDistribution[λ, ξ], 2]Moment generating function and characteristic function:
MomentGeneratingFunction[ShiftedGompertzDistribution[λ, ξ], t]CharacteristicFunction[ShiftedGompertzDistribution[λ, ξ], t]CentralMoment[ShiftedGompertzDistribution[λ, ξ], 2]Central moment generating function:
CentralMomentGeneratingFunction[ShiftedGompertzDistribution[λ, ξ], t]FactorialMoment[ShiftedGompertzDistribution[λ, ξ], 2]Factorial moment generating function:
FactorialMomentGeneratingFunction[ShiftedGompertzDistribution[λ, ξ], t]Cumulant[ShiftedGompertzDistribution[λ, ξ], 2]CumulantGeneratingFunction[ShiftedGompertzDistribution[λ, ξ], t]Hazard function of a shifted Gompertz distribution:
Plot[Table[HazardFunction[ShiftedGompertzDistribution[.2, ξ], x], {ξ, {0.8, 1, 1.2}}]//Evaluate, {x, 0, 10}, Filling -> Axis]Plot[Table[HazardFunction[ShiftedGompertzDistribution[λ, 10], x], {λ, {0.8, 1, 1.2}}]//Evaluate, {x, 0, 10}, Filling -> Axis]HazardFunction[ShiftedGompertzDistribution[λ, ξ], x]Quantile function of a shifted Gompertz distribution:
Plot[Table[Quantile[ShiftedGompertzDistribution[0.02, ξ], q], {ξ, {0.01, 5, 100}}]//Evaluate, {q, 0, 1}, Filling -> Axis]Plot[Table[Quantile[ShiftedGompertzDistribution[λ, .2], q], {λ, {1, 2, 5}}]//Evaluate, {q, 0, 1}, Filling -> Axis]Quantile[ShiftedGompertzDistribution[λ, ξ], q]Consistent use of Quantity in parameters yields QuantityDistribution:
time𝒟 = ShiftedGompertzDistribution[Quantity[0.5, "per week"], 1.3]Median[time𝒟]Applications (3)
The shifted Gompertz distribution can be used to model the growth and decline of interest in social networks—for example, Google search relative weekly counts for Facebook:
ts = TemporalData[TimeSeries, {{{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, ... tion[{2006, 8, 26, 0, 0, 0.}, {2015, 7, 11, 0, 0, 0.}, {1, "Week"}]},
1, {"Continuous", 1}, {"Discrete", 1}, 1, {ValueDimensions -> 1, DateFunction -> Automatic,
ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, True, 314.1];DateListPlot[ts, Filling -> Axis]Fitting the data to a truncated shifted Gompertz distribution:
rawcounts = ts["Values"];length = Length[rawcounts];x = Range[length] - 0.5;wdata = WeightedData[x, rawcounts];edist = EstimatedDistribution[wdata, TruncatedDistribution[{0, length}, ShiftedGompertzDistribution[λ, ξ]], {{λ, 1}, {ξ, 6}}]Compare the predictions from the model to the data:
counts = Total[rawcounts] PDF[edist, x];DateListPlot[{rawcounts, counts}, {ts["FirstDate"], Automatic, "Week"}, Filling -> Axis, PlotLegends -> {"data", "model"}]Shifted Gompertz distribution is used to model time to technology adoption with rate of adoption λ and parameter ξ, related to propensity to adopt:
timeDist = ShiftedGompertzDistribution[λ, ξ];Median time to adoption in this model increases with ξ and decreases with rate λ:
LogPlot[Table[Median[timeDist], {λ, {0.1, 1, 5, 10}}]//Evaluate, {ξ, 0.01, 10}, AxesLabel -> {"ξ", "median time"}, PlotLegends -> LineLegend[Automatic, {0.1, 1, 5, 10}, LegendLabel -> Framed["rate λ"]]]Hazard rate of adoption is an increasing function of technology penetration level in this model:
Block[{λ = .6, ξlist = {0.1, 0.4, 0.9, 5}}, ParametricPlot[Table[{CDF[timeDist, t], HazardFunction[timeDist, t]}, {ξ, ξlist}]//Evaluate, {t, 0, 10}, AxesOrigin -> {0, 0}, AxesLabel -> {"CDF", "HF"}, PlotLegends -> LineLegend[Automatic, ξlist, LegendLabel -> Framed["parameter ξ"]]]]For a heterogeneous population with respect to propensity to adopt, time to adoption is described by a ParameterMixtureDistribution. Exponential mixing distribution reproduces the classical Bass model:
BassDistribution[p_, q_] = ParameterMixtureDistribution[ShiftedGompertzDistribution[p + q, ξ], ξExponentialDistribution[p / q]];In Bass model, the hazard function is linear in the technology penetration level (CDF):
Simplify[HazardFunction[BassDistribution[p, q], t] == p + q CDF[BassDistribution[p, q], t], t > 0]Mixing parameter ξ with GammaDistribution gives gamma-shifted Gompertz model:
GSGDistribution[α_, p_, q_] = ParameterMixtureDistribution[ShiftedGompertzDistribution[p + q, ξ], ξGammaDistribution[α, q / p]];Conditional probability on the time for technology adoption for gamma-shifted Gompertz model:
NProbability[τ < 1τ > 1 / 2, τGSGDistribution[3, 2, 1]]Compare with the shifted Gompertz model:
With[{α = 3, p = 2, q = 1}, NProbability[τ < 1τ > 1 / 2, τShiftedGompertzDistribution[p + q, Mean[GammaDistribution[α, q / p]]]]]The gamma-shifted Gompertz model (GSG) is used as a model for adoption of innovations—for example, the number of adoptions of mammography scanners in consecutive time intervals:
ts = TemporalData[TimeSeries, {{{2, 2, 2, 3, 4, 9, 7, 16, 23, 24, 15, 6, 5, 1}},
{TemporalData`DateSpecification[{1965, 1, 1, 0, 0, 0.}, {1978, 1, 1, 0, 0, 0}, {1, "Year"}]}, 1,
{"Continuous", 1}, {"Discrete", 1}, 1,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, True, 314.1];data = ts["Values"];GSGDistribution[α_, p_, q_] = ParameterMixtureDistribution[ShiftedGompertzDistribution[p + q, ξ], ξGammaDistribution[α, q / p]];Estimate the parameters by considering a multinomial distribution for the binned data and maximizing its LogLikelihood:
modelBinProbs[α_Real, p_Real, q_Real] = With[{cdfs = CDF[GSGDistribution[α, p, q]][Range[0, Length[data]]]}, Normalize[Differences[cdfs], Total]];logLike[α_Real, p_Real, q_Real] := LogLikelihood[MultinomialDistribution[Total[data], modelBinProbs[α, p, q]], {data}]Estimate parameters using extended WorkingPrecision to avoid numerical instabilities, and raising the maximum number of iterations to ensure convergence:
{αo, po, qo} = N[NArgMax[{logLike[α, p, q], α > 0 && p > 0 && q > 0}, {α, p, q}, WorkingPrecision -> 30, MaxIterations -> 1000]]Compare the predictions from the model to the data:
counts = Total[data]modelBinProbs[αo, po, qo];DateListPlot[{data, counts}, {ts["FirstDate"], Automatic, "Year"}, Filling -> Axis, PlotLegends -> {"data", "model"}]Properties & Relations (3)
The maximum of ExponentialDistribution and ExtremeValueDistribution follows ShiftedGompertzDistribution:
dist = TransformedDistribution[Max[x, y], {xExponentialDistribution[λ], yExtremeValueDistribution[Log[ξ] / λ, 1 / λ]}];CDF[dist, x]CDF[ShiftedGompertzDistribution[λ, ξ], x]% - %%//SimplifyIn the limit of small shape parameter ξ, the shifted Gompertz distribution converges to exponential distribution with rate λ:
CDF[ShiftedGompertzDistribution[λ, ξ], x]Limit[%, ξ -> 0, Assumptions -> λ > 0]CDF[ExponentialDistribution[λ], x]Moments of shifted Gompertz distribution for large shape parameter ξ are well approximated by moments of extreme value distribution:
sg𝒟 = ShiftedGompertzDistribution[1, ξ];
approx𝒟 = ExtremeValueDistribution[PolyGamma[0, ξ + 3 / 2], 1];LogPlot[{Mean[sg𝒟], Mean[approx𝒟]}, {ξ, 0, 10}, PlotLegends -> {"sg𝒟", "approx𝒟"}]Compare higher-order cumulants:
sg𝒦 = LogPlot[Evaluate@Table[Cumulant[sg𝒟, r], {r, 2, 6}], {ξ, 0, 10}, PlotLegends -> (Row[{"r = ", #}]& /@ Range[2, 6])];
approx𝒦 = LogPlot[Evaluate@Table[Cumulant[approx𝒟, r], {r, 2, 6}], {ξ, 0, 10}, PlotStyle -> Dashed];Show[sg𝒦, approx𝒦]Related Guides
Text
Wolfram Research (2015), ShiftedGompertzDistribution, Wolfram Language function, https://reference.wolfram.com/language/ref/ShiftedGompertzDistribution.html (updated 2016).
CMS
Wolfram Language. 2015. "ShiftedGompertzDistribution." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/ShiftedGompertzDistribution.html.
APA
Wolfram Language. (2015). ShiftedGompertzDistribution. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ShiftedGompertzDistribution.html
BibTeX
@misc{reference.wolfram_2026_shiftedgompertzdistribution, author="Wolfram Research", title="{ShiftedGompertzDistribution}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/ShiftedGompertzDistribution.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_shiftedgompertzdistribution, organization={Wolfram Research}, title={ShiftedGompertzDistribution}, year={2016}, url={https://reference.wolfram.com/language/ref/ShiftedGompertzDistribution.html}, note=[Accessed: 13-June-2026]}