CumulantGeneratingFunction[dist,t]
gives the cumulant-generating function for the distribution dist as a function of the variable t.
CumulantGeneratingFunction[dist,{t1,t2,…}]
gives the cumulant-generating function for the multivariate distribution dist as a function of the variables t1, t2, … .
CumulantGeneratingFunction
CumulantGeneratingFunction[dist,t]
gives the cumulant-generating function for the distribution dist as a function of the variable t.
CumulantGeneratingFunction[dist,{t1,t2,…}]
gives the cumulant-generating function for the multivariate distribution dist as a function of the variables t1, t2, … .
Details
- CumulantGeneratingFunction[dist,t] is given by Log[MomentGeneratingFunction[dist,t]].
- CumulantGeneratingFunction[dist, {t1,t2,…}] is given by Log[MomentGeneratingFunction[dist,{t1,t2,…}]].
- The i
cumulant can be extracted from a cumulant-generating function cgf through SeriesCoefficient[cgf,{t,0,i}]i!.
Examples
open all close allBasic Examples (3)
Compute a cumulant-generating function (cgf) for a continuous univariate distribution:
CumulantGeneratingFunction[NormalDistribution[μ, σ], t]The cgf for a univariate discrete distribution:
CumulantGeneratingFunction[PoissonDistribution[μ], t]The cgf for a multivariate distribution:
CumulantGeneratingFunction[BinormalDistribution[ρ], {t1, t2}]Scope (5)
Compute the cgf for a formula distribution:
CumulantGeneratingFunction[ProbabilityDistribution[(3/4)Sqrt[(1 + x/2)], {x, -1, 1}], t]Find the cgf for a function of random variates:
CumulantGeneratingFunction[TransformedDistribution[u z, {uUniformDistribution[], zNormalDistribution[]}], t]Compute the cgf for data distribution:
hdist = HistogramDistribution[ExampleData[{"Statistics", "FatigueLifeFailures"}]]CumulantGeneratingFunction[hdist, t]Find the cgf for a truncated distribution:
CumulantGeneratingFunction[TruncatedDistribution[{-10, 10}, CauchyDistribution[0, 1]], t]Find the cgf for the slice distribution of a random process:
CumulantGeneratingFunction[PoissonProcess[μ][s], t]Applications (5)
The cumulant-generating function of a difference of two independent random variables is equal to the sum of their cumulant-generating functions with oppositive sign arguments:
TransformedDistribution[x - y, {xPoissonDistribution[μ], yPoissonDistribution[λ]}]CumulantGeneratingFunction[SkellamDistribution[μ, λ], t]% == CumulantGeneratingFunction[PoissonDistribution[μ], t] + CumulantGeneratingFunction[PoissonDistribution[λ], -t]Illustrate the central limit theorem:
dist = LaplaceDistribution[μ, σ];Find the cumulant-generating function for the standardized random variate:
cgf[t_] = CumulantGeneratingFunction[TransformedDistribution[(x - Mean[dist]) / StandardDeviation[dist], xdist], t]Find the moment-generating function for the sum of
standardized random variates rescaled by
:
n * cgf[t / Sqrt[n]]Limit[n * cgf[t / Sqrt[n]], n -> Infinity]Compare with the moment-generating function of a standard normal distribution:
CumulantGeneratingFunction[NormalDistribution[], t]Find the Esscher premium for insuring against losses following GammaDistribution:
D[CumulantGeneratingFunction[GammaDistribution[α, β], h], h](Expectation[x Exp[h x], xGammaDistribution[α, β]]/Expectation[Exp[h x], xGammaDistribution[α, β]])Construct a Bernstein–Chernoff bound for the survival function
:
dist = BinomialDistribution[n, 1 / 2];
ℐ[t_, x_] = t * x - CumulantGeneratingFunction[dist, t];
k = Mean[dist] + u StandardDeviation[dist];
assumps = t > 0∧n > 0∧k < n∧u > 0;{bound} = Simplify[Exp[-ℐ[t, k]] /. Solve[D[ℐ[t, k], t] == 0 && assumps, t, Reals], assumps]Table[LogPlot[{SurvivalFunction[dist, k], bound}, {u, 0, 5}, PlotPoints -> n], {n, {50, 100, 500, 1000}}]Large
approximation of the bound:
Series[bound, {n, ∞, 2}]//SimplifyConstruct Daniel's saddle point approximation to PDF of VarianceGammaDistribution:
vgd = VarianceGammaDistribution[7 / 3, 3, -1, 0];
cgf[t_] = CumulantGeneratingFunction[vgd, t]Find the saddle point associated with the argument of probability density function
:
sol = Solve[cgf'[t] == x, t]Select the solution that is valid for all real
, including the origin:
Limit[t /. sol, x -> 0]ts = Last[t /. sol]The approximation is constructed using the cumulant-generating function at the saddle point:
approxPDF[x_] = (1/Sqrt[2Pi cgf''[ts]])Exp[cgf[ts] - ts x]//FullSimplifyFind the normalization constant:
norm = NIntegrate[approxPDF[x], {x, -Infinity, Infinity}]Compare the approximation to the exact density:
Plot[{approxPDF[x] / norm, PDF[vgd, x]}, {x, -4, 4}, PlotLegends -> {"Saddlepoint approximation", "Exact density"}]Properties & Relations (3)
Exponential of CumulantGeneratingFunction gives MomentGeneratingFunction:
CumulantGeneratingFunction[NormalDistribution[μ, σ], t]Exp[%] == MomentGeneratingFunction[NormalDistribution[μ, σ], t]CumulantGeneratingFunction is an exponential generating function for the sequence of cumulants:
Cumulant[PoissonDistribution[μ], r]ExponentialGeneratingFunction[%, r, t]Use CumulantGeneratingFunction directly:
CumulantGeneratingFunction[PoissonDistribution[μ], t]Cumulant[UniformDistribution[{0, 1}], 4]Limit[D[CumulantGeneratingFunction[UniformDistribution[{0, 1}], t], {t, 4}], t -> 0]Use SeriesCoefficient formulation:
With[{r = 4}, SeriesCoefficient[CumulantGeneratingFunction[UniformDistribution[{0, 1}], t], {t, 0, r}]r!]Possible Issues (2)
For some distributions with long tails, cumulants of only several low orders are defined:
Table[Cumulant[ParetoDistribution[1, 4], r], {r, 5}]Correspondingly, CumulantGeneratingFunction is undefined:
CumulantGeneratingFunction[ParetoDistribution[1, 4], t]CumulantGeneratingFunction is not always known in closed form:
CumulantGeneratingFunction[LogNormalDistribution[μ, σ], t]Use Cumulant to find cumulants directly:
Cumulant[LogNormalDistribution[μ, σ], 3]Neat Examples (1)
Visualize cgf over complex plane for some univariate distributions:
dists = {NegativeBinomialDistribution[10, 1 / 3], PoissonDistribution[3], BorelTannerDistribution[5 / 6, 10], ExponentialDistribution[1], BirnbaumSaundersDistribution[1, 1 / 3], HyperbolicDistribution[2, 1, 1, 2]};Table[Plot3D[Re[CumulantGeneratingFunction[𝒟, x + I y]]//Evaluate, {x, -2, 2}, {y, -4, 4}, Mesh -> None, ImageSize -> 200, PlotLabel -> 𝒟], {𝒟, dists}]History
Text
Wolfram Research (2010), CumulantGeneratingFunction, Wolfram Language function, https://reference.wolfram.com/language/ref/CumulantGeneratingFunction.html.
CMS
Wolfram Language. 2010. "CumulantGeneratingFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CumulantGeneratingFunction.html.
APA
Wolfram Language. (2010). CumulantGeneratingFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CumulantGeneratingFunction.html
BibTeX
@misc{reference.wolfram_2026_cumulantgeneratingfunction, author="Wolfram Research", title="{CumulantGeneratingFunction}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/CumulantGeneratingFunction.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_cumulantgeneratingfunction, organization={Wolfram Research}, title={CumulantGeneratingFunction}, year={2010}, url={https://reference.wolfram.com/language/ref/CumulantGeneratingFunction.html}, note=[Accessed: 13-June-2026]}