CDF
Details
- CDF[dist,x] gives the probability that an observed value will be less than or equal to x.
- CDF[dist,x] is equivalent to Probability[ξ≤x,ξdist].
- CDF[dist,{x1,…,xn}] is equivalent to Probability[ξ1≤x1∧⋯∧ξn≤xn,{ξ1,…,ξn}dist].
- CDF[dist,x] is equivalent to 1-SurvivalFunction[dist,x].
Examples
open all close allBasic Examples (4)
The CDF of a univariate continuous distribution:
CDF[StudentTDistribution[ν], x]Plot[CDF[StudentTDistribution[4], x], {x, -6, 6}, Filling -> Axis]The CDF of a univariate discrete distribution:
CDF[PoissonDistribution[μ], k]DiscretePlot[CDF[PoissonDistribution[3], k], {k, 0, 10}, ExtentSize -> Right, ExtentMarkers -> {"Filled", "Empty"}]The CDF of a bivariate continuous distribution:
Plot3D[CDF[BinormalDistribution[1 / 2], {x, y}], {x, -3, 3}, {y, -3, 3}]The CDF for a multivariate Poisson distribution:
DiscretePlot3D[CDF[MultivariatePoissonDistribution[5, {2, 3}], {x, y}], {x, 0, 12}, {y, 0, 12}, ExtentSize -> Right]Scope (24)
Parametric Distributions (7)
CDF[WeibullDistribution[2, 5], 4]CDF[NegativeBinomialDistribution[20, 1 / 3], 5]Obtain a machine-precision result:
CDF[WeibullDistribution[2, 5], 4.]Obtain a result at any precision for a continuous distribution:
CDF[WeibullDistribution[2, 5], N[4, 25]]Obtain a result at any precision for a discrete distribution with inexact parameters:
CDF[NegativeBinomialDistribution[20, N[1 / 3, 30]], 5]Obtain a symbolic expression for the CDF:
CDF[ChiSquareDistribution[ν], x]CDF[UniformDistribution[{{a, b}, {c, d}}], {x, y}]CDF[GammaDistribution[1, 2]]%[3]CDF threads elementwise over lists:
CDF[NormalDistribution[], {0.0, 0.2, 0.3}]CDF[BinormalDistribution[1 / 2], {{0.0, 0.0}, {0.2, 0.2}, {0.3, 0.3}}]Nonparametric Distributions (4)
CDF for nonparametric distributions:
r = RandomVariate[NormalDistribution[], 10 ^ 4];CDF[HistogramDistribution[r], 0.2]CDF[SmoothKernelDistribution[r], 0.2]CDF[KernelMixtureDistribution[r], 0.2]CDF[SurvivalDistribution[r], 0.2]CDF[EmpiricalDistribution[r], 0.2]CDF[NormalDistribution[], 0.2]Plot the CDF for a histogram distribution:
Plot[CDF[HistogramDistribution[RandomVariate[NormalDistribution[], 10 ^ 3]], x]//Evaluate, {x, -3, 3}, Filling -> Axis, Exclusions -> None]Closed-form expression for the CDF of a kernel mixture distribution:
CDF[KernelMixtureDistribution[RandomVariate[GammaDistribution[1, 2], 10
]], x]Plot of the CDF of a bivariate smooth kernel distribution:
Plot3D[CDF[SmoothKernelDistribution[RandomVariate[BinormalDistribution[1 / 3], 30]], {x, y}]//Evaluate, {x, -4, 4}, {y, -4, 4}, PlotRange -> {0, 1.2}]Derived Distributions (10)
Product of independent distributions:
CDF[ProductDistribution[TriangularDistribution[{2, 4}], TriangularDistribution[{1, 7}]], {x, y}]Plot3D[%, {x, 1, 5}, {y, 0, 8}, PlotRange -> All, Exclusions -> None]Component mixture distribution:
CDF[MixtureDistribution[{1, 4}, {NormalDistribution[a, b], NormalDistribution[c, d]}], x]Plot[% /. {a -> 0, b -> 1, c -> 6, d -> 3 / 2}, {x, -2, 10}, Filling -> Axis]Quadratic transformation of a discrete distribution:
CDF[TransformedDistribution[x ^ 2, xPoissonDistribution[2]], y]DiscretePlot[%, {y, 0, 50}]CDF[CensoredDistribution[{-2, 4}, CauchyDistribution[0, 1]], x]Plot[{CDF[CauchyDistribution[0, 1], x], %}, {x, -4, 6}, PlotStyle -> Thick, Filling -> Axis]CDF[TruncatedDistribution[{2, 3}, TriangularDistribution[{1, 4}]], x]Plot[{CDF[TriangularDistribution[{1, 4}], x], %}, {x, 1, 5}, Filling -> Axis, Exclusions -> None]Parameter mixture distribution:
CDF[ParameterMixtureDistribution[GeometricDistribution[r], rUniformDistribution[{1 / 2, 2 / 3}]], x]DiscretePlot[%, {x, 0, 5}, ExtentSize -> {0, 1}]CDF[CopulaDistribution[{"Frank", 3}, {ExponentialDistribution[2], ExponentialDistribution[5]}], {x, y}]Plot3D[%, {x, 0, 3}, {y, 0, 3}]Formula distribution defined by its PDF:
CDF[ProbabilityDistribution[(Sqrt[2] / Pi)(1 / (1 + x ^ 4)), {x, -Infinity, Infinity}], x]CDF[ProbabilityDistribution[{"CDF", Piecewise[{{-2 + x, 2 ≤ x ≤ 3}, {1, x > 3}}, 0]}, {x, -Infinity, Infinity}], x]Defined by its SurvivalFunction:
CDF[ProbabilityDistribution[{"SF", Piecewise[{{1 - 2(-2 + x) ^ 2, 2 ≤ x ≤ 5 / 2}, {2(3 - x) ^ 2, 5 / 2 < x ≤ 3}, {1, x < 2}}, 0]}, {x, -Infinity, Infinity}], x]CDF[MarginalDistribution[ProbabilityDistribution[E^-(y^2/2) π^-3 / 2 (1 + x^4)^-1, {x, -∞, ∞}, {y, -∞, ∞}], 2], y]The CDF for QuantityDistribution assumes the argument is a Quantity with compatible units:
𝒟 = ExponentialDistribution[Quantity[2.2, 1 / "Days"]]CDF[𝒟, t]This allows for direct quantity substitution:
% /. t -> Quantity[MixedMagnitude[{3, 20}], MixedUnit[{"Hours", "Minutes"}]]Compare with the direct use of the quantity argument:
CDF[𝒟, Quantity[MixedMagnitude[{3, 20}], MixedUnit[{"Hours", "Minutes"}]]]Random Processes (3)
Find the CDF for a SliceDistribution of a discrete-state random process:
CDF[PoissonProcess[μ][2], x]DiscretePlot[Evaluate[% /. μ -> 2], {x, 0, 15}, ExtentSize -> 0.5]A continuous-state random process:
CDF[WienerProcess[][2], x]Plot[%, {x, -1, 3}, Filling -> Axis]Find the multiple time-slice CDF for a discrete-state process:
CDF[PoissonProcess[μ][{2, 3}], {x, y}]DiscretePlot3D[Evaluate[% /. μ -> 2], {x, 0, 10}, {y, 0, 10}, ExtentSize -> 0.5]A multi-slice for a continuous-state process:
Plot3D[CDF[WienerProcess[][{2, 3}], {x, y}], {x, -3, 3}, {y, -3, 3}]Find the CDF for the StationaryDistribution of a discrete-state random process:
CDF[StationaryDistribution[QueueingProcess[λ, μ, 2]], x]//FullSimplifyDiscretePlot[Evaluate[% /. {μ -> 3, λ -> 2.9}], {x, 0, 10}, ExtentSize -> 0.5]Generalizations & Extensions (1)
CDF threads element-wise over lists:
CDF[NormalDistribution[], {0.2, 0.3}]{CDF[NormalDistribution[], 0.2], CDF[NormalDistribution[], 0.3]}CDF[BinormalDistribution[1 / 2], {{0.0, 0.0}, {0.2, 0.2}, {0.3, 0.3}}]Applications (5)
Plot the CDF for a standard normal distribution:
Plot[CDF[NormalDistribution[0, 1], x], {x, -3, 3}]Plot the CDF for a binomial distribution:
Plot[CDF[BinomialDistribution[20, .5], k], {k, 0, 20}]Compute the probability of
for a
distribution with 20 degrees of freedom:
CDF[StudentTDistribution[20], 3.5]NProbability[t ≤ 3.5, tStudentTDistribution[20]]Compute the probability of
for the same distribution:
1 - CDF[StudentTDistribution[20], 3.5]NProbability[t > 3.5, tStudentTDistribution[20]]2CDF[StudentTDistribution[20], -3.5]NProbability[Abs[t] > 3.5, tStudentTDistribution[20]]Perform a probability integral transform on data by mapping the CDF over it:
data = RandomVariate[NormalDistribution[], 10 ^ 4];tdata = CDF[NormalDistribution[], data];The transformed data is uniformly distributed if the original data came from the chosen distribution:
Histogram[tdata, Automatic, "PDF"]Comparing transformed data to a uniform distribution and comparing original data to original distribution should give identical results for all applicable tests:
Row[{DistributionFitTest[data, NormalDistribution[], {"TestStatisticTable", All}], DistributionFitTest[tdata, UniformDistribution[], {"TestStatisticTable", All}]}, Spacer[20]]Define a general survival distribution function (SDF) as used in actuarial science:
SDF[dist_, x_] := 1 - CDF[dist, x]SDF[ExponentialDistribution[.05], x]Plot[%, {x, 0, 100}, PlotRange -> All]Compare with the expression given by SurvivalFunction:
SurvivalFunction[ExponentialDistribution[.05], x]% - SDF[ExponentialDistribution[.05], x]//SimplifyDefine the force of mortality (FM):
FM[dist_, x_] := -D[SDF[dist, x], x] / SDF[dist, x]FM[ExponentialDistribution[λ], x]PiecewiseExpand[%]Compare with the expression given by HazardFunction:
HazardFunction[ExponentialDistribution[λ], x]Simplify[% - FM[ExponentialDistribution[λ], x], x > 0]Properties & Relations (12)
The probability of
for a univariate distribution is given by its CDF:
{Probability[x ≤ a, xNormalDistribution[]], CDF[NormalDistribution[], a]}{Probability[x ≤ 5, xGeometricDistribution[1 / 3]], CDF[GeometricDistribution[1 / 3], 5]}The probability of
for a multivariate distribution is given by its CDF:
Probability[x ≤ 1 / 2∧y ≤ 1 / 3, {x, y}DirichletDistribution[{1, 2, 3}]]CDF[DirichletDistribution[{1, 2, 3}], {1 / 2, 1 / 3}]A univariate CDF is 0 at
and 1 at
:
CDF[NormalDistribution[], -∞]CDF[NormalDistribution[], ∞]A multivariate CDF has value 0 at
and 1 at
:
CDF[BinormalDistribution[1 / 2], {-∞, -∞}]CDF[BinormalDistribution[1 / 2], {∞, ∞}]The CDF is the integral of the PDF for continuous distributions
:
Integrate[PDF[ExponentialDistribution[λ], x], {x, 0, y}, Assumptions -> λ > 0 && y∈Reals]//SimplifyCDF[ExponentialDistribution[λ], y]The CDF is the sum of the PDF for discrete distributions
:
Sum[PDF[GeometricDistribution[p], m], {m, -∞, Floor[n]}]//FullSimplifyCDF[GeometricDistribution[p], n]Simplify[% - %%, Im[n] == 0]CDF and InverseCDF are inverses for continuous distributions:
dist = ExponentialDistribution[λ];
assum = DistributionParameterAssumptions[dist];Simplify[InverseCDF[dist, CDF[dist, x]] == x, assum && x > 0]Simplify[CDF[dist, InverseCDF[dist, q]] == q, assum && 0 < q < 1]Compositions of CDF and InverseCDF give step functions for a discrete distribution:
dist = PoissonDistribution[2];Plot[CDF[dist, InverseCDF[dist, q]], {q, 0, 1}]Plot[InverseCDF[dist, CDF[dist, y]], {y, 0, 20}]CDF and Quantile are inverses for continuous distributions:
dist = ExponentialDistribution[λ];Assuming[x > 0 && λ > 0, Simplify[Quantile[dist, CDF[dist, x]] == x]]Assuming[1 > q > 0 && λ > 0, Simplify[CDF[dist, Quantile[dist, q]] == q]]The sum of the CDF and the survival function is 1:
CDF[UniformDistribution[], x]SurvivalFunction[UniformDistribution[], x]% + %%//SimplifyProbabilityPlot generates a parametric plot of the empirical CDF vs estimated CDF:
data = RandomVariate[ExponentialDistribution[1], 100];ProbabilityPlot[data, ExponentialDistribution[λ]]CDF is a right-continuous function with left limits:
DiscretePlot[CDF[BenfordDistribution[7], x], {x, 1, 8}, ExtentSize -> Right, ExtentMarkers -> {"Filled", "Empty"}]CDF[BenfordDistribution[7], x]//PiecewiseExpandPossible Issues (2)
Symbolic closed forms do not exist for some distributions:
CDF[StableDistribution[0, 1.8, -0.5, 1, 2], x]CDF[StableDistribution[0, 1.8, -0.5, 1, 2], 0.3]Substitution of invalid values into symbolic formulas can give results that are not meaningful:
CDF[CauchyDistribution[2, 3], y] /. {y -> 1.I}When CDF is given an explicit value as an argument, it does complete checking and does not produce invalid results:
CDF[CauchyDistribution[2, 3], 1.I]Neat Examples (1)
CDF for a bivariate censored distribution:
𝒟 = CensoredDistribution[{{1 / 3, 1 / 3}, {1 / 3, 1 / 4}}, DirichletDistribution[{3, 2, 4}]];Plot3D[{CDF[DirichletDistribution[{3, 2, 4}], {x, y}], CDF[𝒟, {x, y}]}//Evaluate, {x, -1 / 10, 3 / 4}, {y, -1 / 10, 4 / 5}, ExclusionsStyle -> Red, ImageSize -> Small, PlotPoints -> 35, ViewPoint -> #]& /@ {{2, 0, 1}, {-2, -2, 1}}Tech Notes
Related Guides
Text
Wolfram Research (2007), CDF, Wolfram Language function, https://reference.wolfram.com/language/ref/CDF.html (updated 2010).
CMS
Wolfram Language. 2007. "CDF." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2010. https://reference.wolfram.com/language/ref/CDF.html.
APA
Wolfram Language. (2007). CDF. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CDF.html
BibTeX
@misc{reference.wolfram_2026_cdf, author="Wolfram Research", title="{CDF}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/CDF.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_cdf, organization={Wolfram Research}, title={CDF}, year={2010}, url={https://reference.wolfram.com/language/ref/CDF.html}, note=[Accessed: 12-June-2026]}