TransformedDistribution[expr,xdist]
represents the transformed distribution of expr where the random variable x follows the distribution dist.
TransformedDistribution[expr,{x1,x2,…}dist]
represents the transformed distribution of expr where {x1,x2,…} follows the multivariate distribution dist.
TransformedDistribution[expr,xproc]
represents the transformed distribution where expr contains expressions of the form x[t], referring the value at time t from the random process proc.
TransformedDistribution[expr,{x1dist1,x2dist2 ,…}]
represents a transformed distribution where x1, x2, … are independent and follow the distributions dist1, dist2, ….
TransformedDistribution
TransformedDistribution[expr,xdist]
represents the transformed distribution of expr where the random variable x follows the distribution dist.
TransformedDistribution[expr,{x1,x2,…}dist]
represents the transformed distribution of expr where {x1,x2,…} follows the multivariate distribution dist.
TransformedDistribution[expr,xproc]
represents the transformed distribution where expr contains expressions of the form x[t], referring the value at time t from the random process proc.
TransformedDistribution[expr,{x1dist1,x2dist2 ,…}]
represents a transformed distribution where x1, x2, … are independent and follow the distributions dist1, dist2, ….
Details and Options
- xdist can be entered as x
dist
dist or x \[Distributed] dist. - TransformedDistribution will simplify to known special distributions whenever possible.
- Assumptions on parameters can be specified using the options Assumptions->assum.
- TransformedDistribution can be used with such functions as Mean, CDF, RandomVariate, etc.
Examples
open all close allBasic Examples (3)
Simple transformations of random variables:
TransformedDistribution[2 u + b, uNormalDistribution[μ, σ]]TransformedDistribution[u + v, {uPoissonDistribution[Subscript[μ, 1]], vPoissonDistribution[Subscript[μ, 2]]}]TransformedDistribution[Exp[u], uNormalDistribution[μ, σ]]TransformedDistribution[{{1, 2}, {-1, 3}}.{u1, u2} + 3, {u1, u2}BinormalDistribution[0.3]]Transformed distributions can be used like any other distribution:
𝒟 = TransformedDistribution[u ^ 2, uBetaDistribution[4, 3]]Plot[PDF[𝒟, x], {x, 0, 1}, Filling -> Axis]PDF[𝒟, x]RandomVariate[𝒟]Shift a discrete distribution:
𝒟 = TransformedDistribution[u + 2, uZipfDistribution[.2]]DiscretePlot[{PDF[ZipfDistribution[.2], x], PDF[𝒟, x]}, {x, 0, 12}, PlotRange -> All, ExtentSize -> 1 / 2]CDF[𝒟, x]Scope (61)
Basic Uses (6)
𝒟1 = TransformedDistribution[2 u, uBetaDistribution[2, 3]];
𝒟2 = TransformedDistribution[u / 2, uBetaDistribution[2, 3]];Compare the PDFs with the probability density function of the original distribution:
Plot[{PDF[BetaDistribution[2, 3], x], PDF[𝒟1, x], PDF[𝒟2, x]}, {x, 0, 2}, Filling -> Axis, PlotRange -> All, PlotLegends -> {"U", "2 U", "U / 2"}]N /@ Median /@ {BetaDistribution[2, 3], 𝒟1, 𝒟2}𝒟 = TransformedDistribution[u + 5, uPoissonDistribution[4]];DiscretePlot[{PDF[PoissonDistribution[4], x], PDF[𝒟, x]}, {x, 0, 16}, PlotLegends -> {"U", "U + 5"}]Generate random numbers following shifted distribution:
ListPlot[{RandomVariate[𝒟, 100], {{0, Mean[𝒟]}, {100, Mean[𝒟]}}}, Joined -> {False, True}, Filling -> {1 -> Axis}]Use Assumptions to specify conditions on a parameter in the transformation:
𝒟 = TransformedDistribution[a x + b, xExponentialDistribution[2], Assumptions -> a > 0];SurvivalFunction[𝒟, x]SurvivalFunction[TransformedDistribution[a x + b, xExponentialDistribution[2]], x]Define a nonlinear transformation of a discrete distribution:
𝒟 = TransformedDistribution[u ^ 2, uGeometricDistribution[1 / 12]];PDF[𝒟, x]//FullSimplifyProbability density function is defined on integer square roots:
DiscretePlot[PDF[𝒟, x], {x, Table[i ^ 2, {i, 0, 15}]}]{Mean[𝒟], Variance[𝒟]}Find the distribution of the sum of two different variables:
𝒟 = TransformedDistribution[u + v, {uRayleighDistribution[a], vNormalDistribution[μ, σ]}];pdf = PDF[𝒟, x]//SimplifyCompare the resulting distribution with the summands:
Block[{a = 2, μ = 0, σ = 1}, Plot[{pdf, PDF[RayleighDistribution[a], x], PDF[NormalDistribution[μ, σ], x]}, {x, -3, 8}, Filling -> Axis, PlotStyle -> {Thick, Automatic, Automatic}, PlotLegends -> {"𝒟", "Rayleigh", "Normal"}]]The mean of is the sum of the means:
Mean[𝒟]Mean /@ {RayleighDistribution[a], NormalDistribution[μ, σ]}FullSimplify[Total[%] - %%]Find the distribution of the product:
𝒟 = TransformedDistribution[u v, {uExponentialDistribution[1 / 2], vExponentialDistribution[1 / 3]}];pdf = PDF[𝒟, x]Compare all three distributions:
d1 = ExponentialDistribution[1 / 2];
d2 = ExponentialDistribution[1 / 3];
Plot[{pdf, PDF[d1, x], PDF[d2, x]}, {x, 0, 6}, Filling -> Axis, PlotStyle -> {Thick, Automatic, Automatic}, PlotLegends -> {U V, Ud1, Vd2}]{Skewness[𝒟], Kurtosis[𝒟]}Quantity Uses (4)
Consistent use of Quantity in the transformation function yields QuantityDistribution:
TransformedDistribution[Quantity[25, "Meters" / "Seconds"]Quantity[t, "Seconds"], tExponentialDistribution[λ]]TransformedDistribution[ Quantity[x, "Millimeters"] + Quantity[y, "Centimeters"], {xCauchyDistribution[], yNormalDistribution[]}]Define a transformation with Quantity to obtain QuantityDistribution:
TransformedDistribution[Quantity[x, "Meters"], xLogNormalDistribution[μ, σ]]Transformations of QuantityDistribution:
TransformedDistribution[x ^ 2, xQuantityDistribution[NormalDistribution[0, 1], "Feet"]]TransformedDistribution[x + y, {xQuantityDistribution[GammaDistribution[2, 3], "Minutes"], yQuantityDistribution[GammaDistribution[5, 3], "Minutes"]}]Use Quantity[x,u1]QuantityDistribution[dist,u2] to indicate that x is the magnitude of the random variable relative to unit u1:
len𝒟 = NormalDistribution[Quantity[100, "Meters"], Quantity[1, "Meters"]]TransformedDistribution[x / 100, Quantity[x, "Centimeters"]len𝒟]The preceding is equivalent to the following:
TransformedDistribution[QuantityMagnitude[x, "Centimeters"] / 100, xlen𝒟]Transformations (9)
𝒟 = TransformedDistribution[ArcSin[u], uBetaDistribution[4, 3]];pdf = PDF[𝒟, x]//PiecewiseExpandThe domain has been automatically chosen so it is a probability distribution:
NIntegrate[pdf, {x, -∞, ∞}]Plot[pdf, {x, 0, π / 2}, Filling -> Axis]CharacteristicFunction[𝒟, t]Create a piecewise continuous distribution:
𝒟 = TransformedDistribution[E ^ (-Abs[u]), uUniformDistribution[{-2, 1}]];Plot[PDF[𝒟, x]//Evaluate, {x, 0, 1.2}, Filling -> Axis, PlotRange -> All]PDF[𝒟, x]{Mean[𝒟], Variance[𝒟]}Transformation composed of few functions:
𝒟 = TransformedDistribution[Log[u ^ 2 + 1], uNormalDistribution[2, 3]];pdf = PDF[𝒟, x]//FullSimplifyCompare with the original distribution:
Plot[{pdf, PDF[NormalDistribution[2, 3], x]}, {x, -1, 7}, Filling -> Axis, PlotLegends -> {Log[Z ^ 2 + 1], Z}]Find the distribution of the maximum of two different distributions:
𝒟 = TransformedDistribution[Max[u, v], {uExponentialDistribution[1 / 2], vExponentialDistribution[1 / 3]}];pdf = PDF[𝒟, x]Cumulative distribution function and survival function:
sf = SurvivalFunction[𝒟, x]cdf = CDF[𝒟, x]cdf + sf//PiecewiseExpandhf = pdf / sf//PiecewiseExpandPartition[MapThread[Plot[#1, {x, 0, 10}, Filling -> Axis, PlotLabel -> #2]&, {{pdf, sf, hf, cdf}, {"PDF", "SF", "HF", "CDF"}}], 2, 2]//GridMean[𝒟]//NNotice it is larger than the means of both original distributions:
{Mean[ExponentialDistribution[1 / 2]], Mean[ExponentialDistribution[1 / 3]]}Find the distribution of a product of powers of two independent distributions:
𝒟 = TransformedDistribution[u v ^ 2, {u, v}ProductDistribution[NormalDistribution[0, 1], KumaraswamyDistribution[2, 4]]];Visualize distribution by smooth histogram and histogram based on a random sample:
sample = RandomVariate[𝒟, 10 ^ 4];Show[Histogram[sample, {-.55, .55, .025}, "PDF"], SmoothHistogram[sample, PlotStyle -> Thick, PlotRange -> All]]Add two bivariate distributions:
𝒟 = TransformedDistribution[{u, v} + {w, z}, {u, v, w, z}ProductDistribution[BinormalDistribution[{0, 0}, {1, 1}, .2], BinormalDistribution[{-1, 2}, {1, 1}, .7]]]Visualize the distribution of the sum:
SmoothHistogram3D[RandomVariate[𝒟, 10 ^ 3]]Scale a bivariate distribution:
𝒟 = TransformedDistribution[.5 {u, v}, {u, v}DirichletDistribution[{1, 2, 3}]];Visualize the probability density function:
SmoothHistogram3D[RandomVariate[𝒟, 10 ^ 4]]Create a multivariate distribution given its marginals:
𝒟 = TransformedDistribution[{u, v}, {uNormalDistribution[], vExponentialDistribution[λ]}];pdf1 = PDF[𝒟, {x, y}]It is the same as using product kernel in copula construction:
𝒟2 = CopulaDistribution["Product", {NormalDistribution[], ExponentialDistribution[λ]}];pdf2 = PDF[𝒟2, {x, y}]Simplify[pdf1 - pdf2]Plot the distribution function:
Block[{λ = 3}, Plot3D[pdf1, {x, -3, 3}, {y, 0, 2}, PlotRange -> All]]Dimension-reducing transformation of a multivariate distribution:
𝒟 = TransformedDistribution[x + y, {x, y}DirichletDistribution[{1, 2, 4}]];PDF[𝒟, x]{Mean[𝒟], Variance[𝒟]}Parametric Distributions (7)
Prove a relation between distributions:
𝒟 = TransformedDistribution[u ^ 2, uNakagamiDistribution[μ, ω]]CDF[𝒟, x]//FullSimplifyCDF[GammaDistribution[μ, ω / μ], x]FullSimplify[% - %%, x > 0]Create a heavy-tail distribution using exponential transformation:
𝒟 = TransformedDistribution[Exp[u], uLindleyDistribution[δ]];pdf = PDF[𝒟, x]//Refine[#, δ > 0]&Block[{δ = 2}, Plot[pdf, {x, 0, 10}, Filling -> Axis]]The moments exist only for the orders less than
:
Integrate[x ^ k Refine[pdf, x > 1], {x, 1, ∞}, Assumptions -> δ > 0 && k > 0]𝒟 = TransformedDistribution[GCD[u, v], {uPoissonDistribution[30], vPoissonDistribution[20]}];Histogram[RandomVariate[𝒟, 10 ^ 4], {0.5, 15.5, 1}, "PDF"]Transformation of two identically distributed independent variables:
𝒟 = TransformedDistribution[u ^ 2 + 3v, {u, v} ProductDistribution[{ExponentialDistribution[3], 2}]];Plot[PDF[𝒟, x]//Evaluate, {x, 0, 2}, Filling -> Axis]PDF[𝒟, x]CharacteristicFunction[𝒟, t]CumulantGeneratingFunction[𝒟, ConditionalExpression[t, t < 0]]Add two discrete independent distributions:
𝒟 = TransformedDistribution[u + 2v, {uDiscreteUniformDistribution[{2, 9}], vBenfordDistribution[10]}];Cumulative distribution function:
DiscretePlot[CDF[𝒟, x]//Evaluate, {x, 0, 30}, ExtentSize -> Right]Table[Moment[𝒟, i], {i, 5}]//NTable[CentralMoment[𝒟, i], {i, 5}]//NTable[Cumulant[𝒟, i], {i, 5}]//NTable[FactorialMoment[𝒟, i], {i, 5}]//NCreate an arbitrary two-dimensional distribution:
𝒟 = TransformedDistribution[{u - v , u + v}, {uNormalDistribution[], vNormalDistribution[]}];Plot3D[PDF[𝒟, {x, y}]//Evaluate, {x, -3, 3}, {y, -3, 3}]PDF[𝒟, {x, y}]The components are uncorrelated:
Correlation[𝒟]//MatrixFormDefine a bivariate discrete distribution:
𝒟 = TransformedDistribution[{x, 2y}, {x, y} ProductDistribution[{GeometricDistribution[1 / 3], 2}]];Generate a pseudorandom sample:
sample = RandomVariate[𝒟, 10 ^ 4];Histogram3D[sample, 30, "PDF"]{Mean[sample]//N, Mean[𝒟]}//Column{StandardDeviation[sample], StandardDeviation[𝒟]}//N//ColumnNonparametric Distributions (3)
Shift an EmpiricalDistribution:
ed = EmpiricalDistribution[RandomVariate[PoissonDistribution[3], 20]];
𝒟 = TransformedDistribution[u + 5, ued];Compare cumulative distribution functions:
DiscretePlot[{Legended[CDF[ed, x], "ed"], Legended[CDF[𝒟, x], "𝒟"]}, {x, 0, 15}, Filling -> Axis, ExtentSize -> Right, PlotStyle -> {Automatic, Thick}]Scale a HistogramDistribution:
hd = HistogramDistribution[RandomVariate[NormalDistribution[], 10 ^ 3]];
𝒟 = TransformedDistribution[1 / 2 u, uhd];Compare probability density functions:
Plot[{Legended[PDF[hd, x], "hd"], Legended[PDF[𝒟, x], "𝒟"]}, {x, -3, 3}, Exclusions -> None, Filling -> Axis, PlotStyle -> {Automatic, Thick}]Define a transformed SmoothKernelDistribution:
skd = SmoothKernelDistribution[RandomVariate[MaxwellDistribution[3], 10 ^ 3]];
𝒟 = TransformedDistribution[2u - 1, uskd];pdfs = {PDF[skd, x], PDF[𝒟, x]};Plot[pdfs, {x, 0, 2Max[skd["Domain"]]}, Filling -> Axis, PlotStyle -> {Automatic, Thick}, PlotLegends -> {"skd", "𝒟"}]Derived Distributions (9)
Complex transformations can be done in steps:
𝒟 = TransformedDistribution[ArcSin[u] ^ 2, uBetaDistribution[1, 3]];The direct calculation may take longer than calculation in steps:
PDF[𝒟, x]//AbsoluteTimingSplit the transformation to find the probability density function:
𝒟1 = TransformedDistribution[ArcSin[u], uBetaDistribution[1, 3]];AbsoluteTiming[PDF[𝒟1, x]//FullSimplify]𝒟2 = TransformedDistribution[v ^ 2, v𝒟1, Assumptions -> λ > 0];AbsoluteTiming[PDF[𝒟2, x]//FullSimplify]Find a transformation of a MixtureDistribution:
ℳ = MixtureDistribution[{1, 2}, {NormalDistribution[-1, 1], NormalDistribution[2, 1 / 2]}];
𝒟 = TransformedDistribution[u + 3, uℳ];PDF[𝒟, x]Plot[{PDF[ℳ, x], PDF[𝒟, x]}, {x, -4, 7}, PlotRange -> All, Filling -> Axis, PlotLegends -> {"ℳ", "𝒟"}]The mean is shifted by the same amount as the distribution:
{Mean[ℳ], Mean[𝒟]}Find a transformation of a ParameterMixtureDistribution:
ℳ = ParameterMixtureDistribution[PoissonDistribution[μ], μGammaDistribution[4, 3]];
𝒟 = TransformedDistribution[u / 2, uℳ];Cumulative distribution function:
CDF[𝒟, x]DiscretePlot[{CDF[ℳ, x], CDF[𝒟, x]}, {x, 0, 12}, ExtentSize -> Right, PlotLegends -> {"ℳ", "𝒟"}]Standard deviation is scaled by the same factor as the distribution:
{StandardDeviation[ℳ], StandardDeviation[𝒟]}Find a transformation of a TruncatedDistribution:
𝒫 = TruncatedDistribution[{0, ∞}, StudentTDistribution[3]];
𝒟 = TransformedDistribution[Sqrt[u], u𝒫];Plot[{PDF[𝒫, x], PDF[𝒟, x]}, {x, 0, 3}, PlotRange -> All, Filling -> Axis, PlotLegends -> {"𝒫", "𝒟"}]Table[Moment[𝒟, r], {r, 5}]Table[CentralMoment[𝒟, r], {r, 5}]Find a transformation of a CensoredDistribution:
𝒫 = CensoredDistribution[{18, 24}, BinomialDistribution[30, 2 / 3]];
𝒟 = TransformedDistribution[Log[u], u𝒫];Plot the probability density function:
pts = Table[Log[i], {i, 10, 30}];DiscretePlot[PDF[𝒟, x]//Evaluate, {x, pts}, PlotRange -> All, PlotStyle -> PointSize[Medium]]Find a transformation of an OrderDistribution:
𝒫 = OrderDistribution[{WeibullDistribution[2, 3], 10}, 2];
𝒟 = TransformedDistribution[Exp[u], u𝒫];PDF[𝒟, x]Plot[{PDF[𝒫, x], PDF[𝒟, x]}//Evaluate, {x, 0, 6}, Filling -> Axis, PlotRange -> All, PlotLegends -> {"𝒫", "𝒟"}]Mean[𝒟]The mean is not the exponent of the mean of the original distribution:
{%, Exp[Mean[𝒫]]}//NFind a transformation of a MarginalDistribution:
ℳ = MarginalDistribution[MultinomialDistribution[13, {.2, .3, .4, .1}], 2];
𝒟 = TransformedDistribution[u + 1, uℳ];PDF[𝒟, x]DiscretePlot[PDF[𝒟, x], {x, 0, 12}, ExtentSize -> 1 / 2]Transform a CopulaDistribution:
𝒞 = CopulaDistribution[{"FGM", 1 / 3}, {UniformDistribution[{0, 1}], UniformDistribution[{0, 1}]}];
𝒟 = TransformedDistribution[{u + 2, v / 3}, {u, v}𝒞];Plot3D[PDF[𝒟, {x, y}]//Evaluate, {x, 1.8, 3.2}, {y, -0.2, 0.6}]PDF[𝒟, {x, y}]//FullSimplifyDefine a transformation of a ProductDistribution:
𝒫 = ProductDistribution[GammaDistribution[2, 3], GammaDistribution[3, 2]];
𝒟 = TransformedDistribution[{u + v, v - u}, {u, v}𝒫];Plot3D[PDF[𝒟, {x, y}], {x, 0, 20}, {y, -15, 15}]PDF[𝒟, {x, y}]//SimplifyRandom Processes (4)
Define transformations on the values of a random process:
TransformedDistribution[Exp[w[t]], wWienerProcess[μ, σ]]This is equivalent to the exponential transformation of SliceDistribution:
TransformedDistribution[Exp[x], xWienerProcess[μ, σ][t]]A time ordering is implied for multiple distinct time stamps:
TransformedDistribution[Max[w[t1], w[t2]], wWienerProcess[]]Use Assumptions to give an explicit ordering:
TransformedDistribution[Max[w[t1], w[t2]], wWienerProcess[], Assumptions -> t1 > t2]Mean[%]TransformedDistribution supports coincident use of both processes and distributions:
TransformedDistribution[u ^ p[t], {uUniformDistribution[], pPoissonProcess[μ]}]Variance[%]Find the slice distribution of a product of a process and a distribution:
𝒟 = TransformedDistribution[d * p[t], {dTriangularDistribution[Quantity[{90, 110}, "Volts"], Quantity[100, "Volts"]], pTelegraphProcess[μ]}]Cumulative distribution function:
CDF[𝒟, Quantity[x, "Volts"]]Simulate the slice distribution at time
for switch rate
:
sample = RandomVariate[𝒟 /. {t -> 10, μ -> 1 / 3}, 10 ^ 6];Histogram[sample, "Scott", "PDF", AxesOrigin -> {0, 0}, AxesLabel -> Automatic, PlotRange -> All]Automatic Simplifications (19)
Continuous Distributions (9)
Special transformations of NormalDistribution:
TransformedDistribution[a x + b, xNormalDistribution[μ, σ]]TransformedDistribution[x + y, {xNormalDistribution[Subscript[μ, 1], Subscript[σ, 1]], yNormalDistribution[Subscript[μ, 2], Subscript[σ, 2]]}]TransformedDistribution[x ^ 2 + y ^ 2, {xNormalDistribution[], yNormalDistribution[]}]TransformedDistribution[Sqrt[x ^ 2 + y ^ 2], {xNormalDistribution[], yNormalDistribution[]}]TransformedDistribution[Sqrt[x ^ 2 + y ^ 2 + z ^ 2], {xNormalDistribution[], yNormalDistribution[], zNormalDistribution[]}]TransformedDistribution[x / y, {xNormalDistribution[], yNormalDistribution[]}]TransformedDistribution[Exp[u], uNormalDistribution[μ, σ]]TransformedDistribution[Exp[a x + b], xNormalDistribution[μ, σ]]Special transformations of ExponentialDistribution:
TransformedDistribution[ k u, uExponentialDistribution[λ]]TransformedDistribution[x - y, {x, y}ProductDistribution[{ExponentialDistribution[m], 2}]]TransformedDistribution[ k Exp[x], xExponentialDistribution[λ]]TransformedDistribution[Min[u, v], {uExponentialDistribution[Subscript[λ, 1]], vExponentialDistribution[Subscript[λ, 2]]}]TransformedDistribution[x + y + z, {x, y, z}ProductDistribution[{ExponentialDistribution[m], 3}]]TransformedDistribution[Exp[-x], xExponentialDistribution[1]]TransformedDistribution[Sqrt[x], xExponentialDistribution[1]]TransformedDistribution[α - β Log[u], uExponentialDistribution[1]]TransformedDistribution[α + β Log[u], uExponentialDistribution[1]]TransformedDistribution[β * 1 / u ^ (1 / α), uExponentialDistribution[1], Assumptions -> α > 0 && β > 0]TransformedDistribution[β * u ^ (1 / α), uExponentialDistribution[1], Assumptions -> α > 0 && β > 0]Special transformations of UniformDistribution:
TransformedDistribution[2x + 3, xUniformDistribution[{0, 1}]]TransformedDistribution[Tan[x], xUniformDistribution[{-Pi / 2, Pi / 2}]]TransformedDistribution[Sin[x], xUniformDistribution[{-Pi, Pi}]]TransformedDistribution[x + y, {x, y}ProductDistribution[{UniformDistribution[{min, max}], 2}]]Special transformations between SinghMaddalaDistribution and DagumDistribution:
TransformedDistribution[1 / x, xSinghMaddalaDistribution[p, a, c]]TransformedDistribution[1 / x, xDagumDistribution[p, a, c]]Special transformation of ChiSquareDistribution:
TransformedDistribution[(u / n) / (v / m), {uChiSquareDistribution[n], vChiSquareDistribution[m]}]Special transformations of StudentTDistribution:
TransformedDistribution[u σ + μ, uStudentTDistribution[ν]]TransformedDistribution[x ^ 2, xStudentTDistribution[ν]]Special transformation of BetaDistribution:
TransformedDistribution[x ^ α, xBetaDistribution[1, b]]TransformedDistribution[1 - x, xBetaDistribution[a, b]]Special transformations of BinormalDistribution:
TransformedDistribution[Sqrt[x ^ 2 + y ^ 2], {x, y}BinormalDistribution[{a, b}, {c, d}, e]]TransformedDistribution[{α x + γ, β y + δ}, {x, y}BinormalDistribution[{a, b}, {c, d}, e]]Special transformation of ParetoDistribution:
TransformedDistribution[Min[u, v], {uParetoDistribution[k, α1], vParetoDistribution[k, α2]}]Discrete Distributions (7)
Special transformations of BernoulliDistribution:
TransformedDistribution[x + y + z, {x, y, z}ProductDistribution[{BernoulliDistribution[p], 3}]]Special transformation of BorelTannerDistribution:
TransformedDistribution[x + y, {xBorelTannerDistribution[α, n], yBorelTannerDistribution[α, m]}]Special transformations of GeometricDistribution:
TransformedDistribution[x + y, {x, y}ProductDistribution[{GeometricDistribution[p], 2}]]TransformedDistribution[Min[x, y], {xGeometricDistribution[Subscript[p, 1]], yGeometricDistribution[Subscript[p, 2]]}]Special transformations of PoissonDistribution:
TransformedDistribution[x + y + z, {x, y, z}ProductDistribution[PoissonDistribution[Subscript[μ, 1]], PoissonDistribution[Subscript[μ, 2]], PoissonDistribution[Subscript[μ, 3]]]]TransformedDistribution[x - y, {xPoissonDistribution[Subscript[μ, 1]], yPoissonDistribution[Subscript[μ, 2]]}]Special transformation of PoissonConsulDistribution:
TransformedDistribution[x + y + z, {xPoissonConsulDistribution[Subscript[μ, 1], λ], yPoissonConsulDistribution[Subscript[μ, 2], λ], zPoissonConsulDistribution[Subscript[μ, 3], λ]}]Special transformation of PolyaAeppliDistribution:
TransformedDistribution[x + y + z, {xPolyaAeppliDistribution[Subscript[θ, 1], p], yPolyaAeppliDistribution[Subscript[θ, 2], p], zPolyaAeppliDistribution[Subscript[θ, 3], p]}]Special transformations of SkellamDistribution:
TransformedDistribution[x + y + z, {xSkellamDistribution[Subscript[μ, 1], Subscript[μ, 2]], ySkellamDistribution[Subscript[μ, 3], Subscript[μ, 4]], zSkellamDistribution[Subscript[μ, 5], Subscript[μ, 6]]}]TransformedDistribution[x - y, {xSkellamDistribution[Subscript[μ, 1], Subscript[μ, 2]], ySkellamDistribution[Subscript[μ, 3], Subscript[μ, 4]]}]Multivariate Distributions (3)
The multinormal distribution is closed under affine transformation:
A = (| | | |
| --- | --- | --- |
| a11 | a12 | a13 |
| a21 | a22 | a23 |
| a31 | a32 | a33 |);b = {b1, b2, b3};Σ = (| | | |
| --------- | --------- | --------- |
| σ1^2 | ρ12 σ1 σ2 | ρ13 σ1 σ3 |
| ρ12 σ1 σ2 | σ2^2 | ρ23 σ2 σ3 |
| ρ13 σ1 σ3 | ρ23 σ2 σ3 | σ3^2 |);TransformedDistribution[A.{u, v, w} + b, {u, v, w}MultinormalDistribution[{μ1, μ2, μ3}, Σ]] == MultinormalDistribution[A.{μ1, μ2, μ3} + b, Expand[A.Σ.A]]M = (| | | |
| - | - | -- |
| 1 | 2 | 3 |
| 4 | 5 | -6 |
| 7 | 8 | 9 |);c = {1, 2, 3};
Σ2 = (| | | |
| ----- | ----- | ----- |
| 3 | 1 / 3 | 3 / 2 |
| 1 / 3 | 2 / 3 | -1 |
| 3 / 2 | -1 | 4 |);TransformedDistribution[M.{u, v, w} + c, {u, v, w}MultinormalDistribution[{1, -2, 2}, Σ2]]Multivariate Student
distribution is closed under affine transformations:
A = (| | |
| --- | --- |
| a11 | a12 |
| a21 | a22 |);b = {b1, b2};Σ = {{1, ρ}, {ρ, 1}};TransformedDistribution[A.{u, v} + b, {u, v}MultivariateTDistribution[Σ, ν]]% == MultivariateTDistribution[b, A.Σ.A//Expand, ν]Transformation creating LogMultinormalDistribution:
TransformedDistribution[Exp[{u, v}], {u, v}BinormalDistribution[{Subscript[μ, 1], Subscript[μ, 2]}, {Subscript[σ, 1], Subscript[σ, 2]}, ρ]]Options (1)
Assumptions (1)
Compute the PDF for an affine transformation of a Weibull distribution:
𝒟1 = TransformedDistribution[a x + 5, xNormalDistribution[2, 1]];PDF[𝒟1, x]Use Assumptions to specify the condition
:
𝒟2 = TransformedDistribution[a x + 5, xNormalDistribution[2, 1], Assumptions -> a > 0];PDF[𝒟2, x]Applications (8)
Two points are chosen randomly and independently from the interval
, according to a uniform distribution. Compute the expected distance between the two points:
Mean[TransformedDistribution[Abs[x - y], {x, y}UniformDistribution[{{0, 1}, {0, 1}}]]]Two archers shoot at a target. The distance of each shot from the center of the target is uniformly distributed from 0 to 10 inches, independent of the other shot. Find the probability that the losing shot is more than 5 inches away from the target:
LosingShot𝒟 = TransformedDistribution[Max[x, y], {x, y}UniformDistribution[{{Quantity[0, "Inches"], Quantity[10, "Inches"]}, {Quantity[0, "Inches"], Quantity[10, "Inches"]}}]];Probability[z > Quantity[5, "Inches"], zLosingShot𝒟]Romeo and Juliet have a date at a given time, and each, independently, will be late by an amount of minutes that is exponentially distributed with parameter
. Find the distribution of the difference between their times of arrival:
LateForDate𝒟 = TransformedDistribution[x - y, {x, y}ProductDistribution[{ExponentialDistribution[Quantity[λ, 1 / "Minutes"]], 2}]]Probability that they miss each other by at least t minutes:
Probability[Abs[z] >= Quantity[t, "Minutes"], zLateForDate𝒟, Assumptions -> t > 0]A driver travels with an average speed of 65 mph for a distance of 120 miles. Assuming the speed has normal distribution with standard deviation of 3 mph and there was no road work, find the distribution of time it takes the driver to cover the distance:
time𝒟 = TransformedDistribution[Quantity[120, "Miles"] / v, vTruncatedDistribution[{Quantity[0, "Miles"/"Hours"], ∞}, NormalDistribution[Quantity[65, "Miles"/"Hours"], Quantity[3, "Miles"/"Hours"]]]];pdf = PDF[time𝒟, Quantity[t, "Hours"]]//Refine[#, t > 0]&Plot the probability density function:
Plot[pdf, {t, 1.5, 2.5}, Filling -> Axis, AxesLabel -> {"h"}]Find the median travel time in hours:
Median[time𝒟]N[%]The Young modulus
and the shear modulus
of a bar have been measured as
and
, respectively. Assuming a symmetric triangular distribution for measurement uncertainty, and that respective coverage intervals have 90% coverage probability, determine the uncertainty of Poisson's ratio
:
{μ𝒴, σ𝒴, μ𝒢, σ𝒢} =
Quantity[{209.2, 1.2, 81.2, 1.5}, "Kilonewtons" / "Millimeters" ^ 2];𝒻 = InverseCDF[TriangularDistribution[{-1, 1}], (1 + Quantity[90, "Percent"]) / 2];
y𝒟 = TriangularDistribution[{μ𝒴 - σ𝒴 / 𝒻, μ𝒴 + σ𝒴 / 𝒻}];
s𝒟 = TriangularDistribution[{μ𝒢 - σ𝒢 / 𝒻, μ𝒢 + σ𝒢 / 𝒻}];Confirm that measurements are contained in given intervals with 90% probability:
Probability[Abs[μ𝒴 - 𝒴] < σ𝒴, 𝒴y𝒟]Probability[Abs[μ𝒢 - 𝒢] < σ𝒢, 𝒢s𝒟]Use TransformedDistribution to define the distribution for uncertainty of Poisson's ratio:
pr𝒟 = TransformedDistribution[(𝒴/2𝒢) - 1, {𝒴y𝒟, 𝒢s𝒟}]Compare to the linear approximation:
lin[e_, {x_, x0_}, {y_, y0_}] := Block[{f = Function@@{{x, y}, e}}, f[x0, y0] + f^(1, 0)[x0, y0](x - x0) + f^(0, 1)[x0, y0](y - y0)]lin𝒟[𝒟_] := NormalDistribution[Mean[𝒟], StandardDeviation[𝒟]]prApprox𝒟 = TransformedDistribution[lin[(𝒴/2𝒢) - 1, {𝒴, μ𝒴}, {𝒢, μ𝒢}], {𝒴lin𝒟[y𝒟], 𝒢lin𝒟[s𝒟]}]Find the mean ratio using the exact and the approximate distributions:
{μpr, μprApprox} = {Mean[pr𝒟], Mean[prApprox𝒟]}Find the standard deviation of the ratio using the exact and the approximate distributions:
{σpr, σprApprox} = {StandardDeviation[pr𝒟], StandardDeviation[prApprox𝒟]}Compute the Poisson's ratio measurement density function:
pdf = PDF[pr𝒟, r];Visualize the density function and compare it to the normal approximation:
Plot[{pdf, PDF[prApprox𝒟, r]}, {r, μpr - 4σpr, μpr + 4 σpr}, PlotRange -> All, Exclusions -> None]Concentration-time curve for the circulation of a medication injected in a bloodstream is described by lagged normal distribution:
LaggedNormal𝒟[τ_, tc_, σ_] = TransformedDistribution[x + y, {xNormalDistribution[tc, σ], yExponentialDistribution[1 / τ]}];pdf = PDF[LaggedNormal𝒟[τ, Subscript[t, c], σ], t]Compute the first several moments:
{Mean[LaggedNormal𝒟[τ, Subscript[t, c], σ]], Variance[LaggedNormal𝒟[τ, Subscript[t, c], σ]], CentralMoment[LaggedNormal𝒟[τ, Subscript[t, c], σ], 3]}Plot the distribution density:
Plot[pdf /. {τ -> 1.3, Subscript[t, c] -> 5.3, σ -> 0.7}, {t, 0, 12}, Filling -> Axis]Find the distribution of the distance between the origin and the points placed according to DirichletDistribution on a plane:
𝒟 = TransformedDistribution[Sqrt[u ^ 2 + v ^ 2], {u, v}QuantityDistribution[DirichletDistribution[{3, 2, 1}], "Centimeters"]];pdf = PDF[𝒟, Quantity[x, "Centimeters"]]Plot the probability density function:
Plot[pdf, {x, 0, 1}, Exclusions -> None, Filling -> Axis]Find the mean distance to the origin:
Mean[𝒟]N[%]Use TransformedDistribution to create a discrete probability distribution with noninteger support:
With[{x0 = 0, x1 = 1, dx = 1 / 12}, TransformedDistribution[x0 + dx * k, Distributed[k, ProbabilityDistribution[Piecewise[{{0.25, x == 1 / 12}, {0.5, x == 1 / 6}, {0.25, x == 1 / 4}}] /. x -> x0 + dx * k, {k, 0, (x1 - x0) / dx, 1}]]]]PDF[%, 1 / 12]Properties & Relations (8)
TransformedDistribution uses local names for the variables in the input:
𝒟 = TransformedDistribution[x ^ 2, xBetaDistribution[2, 3]]Hence subsequent computations can be done with the original variable name:
PDF[𝒟, x]The support of the PDF may change under a transformation:
𝒟 = TransformedDistribution[x + 3, xTriangularDistribution[{2, 4}]];Plot[{Legended[PDF[TriangularDistribution[{2, 4}], x], XTriangularDistribution[{2, 4}]], Legended[PDF[𝒟, x], X + 3]}//Evaluate, {x, 0, 8}, PlotRange -> All, Filling -> Axis]Applying the identity transformation to a distribution leaves it unchanged:
TransformedDistribution[x, xExponentialDistribution[2]]Components of the identity transformation give marginal distributions:
TransformedDistribution[x, {x, y}DirichletDistribution[{1, 3, 4}]]MarginalDistribution[DirichletDistribution[{1, 3, 4}], 1]Compute the probability of an event for a transformed distribution:
Probability[x ^ 2 + x < 6, xTransformedDistribution[y ^ 2 + 1, yNormalDistribution[0, 1]]]Substituting transformation into the event:
Probability[(y ^ 2 + 1) ^ 2 + (y ^ 2 + 1) < 6, yNormalDistribution[0, 1]]%% - %//SimplifyCompute the expectation of an expression for a transformed distribution:
Expectation[x ^ 2 + x, xTransformedDistribution[y ^ 2 + 1, yNormalDistribution[0, 1]]]Substituting transformation into the expression:
Expectation[(y ^ 2 + 1) ^ 2 + (y ^ 2 + 1), yNormalDistribution[0, 1]]CensoredDistribution is a special case of TransformedDistribution:
𝒟1 = CensoredDistribution[{2, 3}, NormalDistribution[]];𝒟2 = TransformedDistribution[Piecewise[{{2, x ≤ 2}, {x, 2 ≤ x ≤ 3}, {3, x > 3}}], xNormalDistribution[]];CDF[𝒟1, y]CDF[𝒟2, y]%% - %//FullSimplifyOrderDistribution is a special case of TransformedDistribution:
Table[PDF[OrderDistribution[{NormalDistribution[], 3}, k], w], {k, 3}]Table[PDF[TransformedDistribution[RankedMin[{x, y, z}, k], {x, y, z}ProductDistribution[{NormalDistribution[], 3}]], w], {k, 3}]FullSimplify[%% - %]In particular, the extreme cases correspond to Min and Max:
{RankedMin[{x, y, z}, 1] - Min[x, y, z], RankedMin[{x, y, z}, 3] - Max[x, y, z]}//FullSimplifySliceDistribution relates TransformedProcess to TransformedDistribution:
𝒟1 = TransformedProcess[3b[t] + 5, bPoissonProcess[2], t][s];
𝒟2 = TransformedDistribution[3b + 5, bPoissonProcess[2][s]];The resulting distributions are equal:
CDF[𝒟1, x] == (CDF[𝒟2, x]//FunctionExpand)Possible Issues (3)
Let
be a sum of random variates
. Distribution of
may be different from distribution of
:
𝒟z = TransformedDistribution[x + y, {xNormalDistribution[], yNormalDistribution[]}]TransformedDistribution[z - x, {z𝒟z, xNormalDistribution[]}]Distribution of the sum of two independent identically distributed variates
may be different from that of
:
𝒟s = TransformedDistribution[x + y, {xExponentialDistribution[1], yExponentialDistribution[1]}]𝒟d = TransformedDistribution[2x, xExponentialDistribution[1]]Compare distribution densities:
Plot[{PDF[𝒟s, x], PDF[𝒟d, x]}, {x, 0, 10}, Filling -> Axis]Autoevaluation may fail for complicated expressions:
tr = TransformedDistribution[k * u / (1 - u), uBetaDistribution[a, b]]Evaluating TransformedDistribution in steps may allow special rules to be recognized:
𝒟1 = TransformedDistribution[u / (1 - u), uBetaDistribution[a, b]]𝒟2 = TransformedDistribution[k * y, y𝒟1]Compare the probability density functions:
PDF[tr, x] - PDF[𝒟2, x]//FullSimplify[#, a > 0 && b > 0 && k > 0]&Text
Wolfram Research (2010), TransformedDistribution, Wolfram Language function, https://reference.wolfram.com/language/ref/TransformedDistribution.html (updated 2016).
CMS
Wolfram Language. 2010. "TransformedDistribution." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/TransformedDistribution.html.
APA
Wolfram Language. (2010). TransformedDistribution. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TransformedDistribution.html
BibTeX
@misc{reference.wolfram_2026_transformeddistribution, author="Wolfram Research", title="{TransformedDistribution}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/TransformedDistribution.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_transformeddistribution, organization={Wolfram Research}, title={TransformedDistribution}, year={2016}, url={https://reference.wolfram.com/language/ref/TransformedDistribution.html}, note=[Accessed: 13-June-2026]}