# How do I rotate the CDF or PDF of a distribution about an arbitrary point?

Please look at the the image of the cdf and how it rotates about a specific point:

https://pubs.aeaweb.org/na101/home/literatum/publisher/aea/journals/content/aer/2006/aer.2006.96.issue-3/aer.96.3.756/production/pdfimages_v02/master.img-000.jpg

The tricky thing is to figure out how the parameters of the distribution map to the rotation point. ANY parameter change will cause a rotation somewhere, but I want to be able to control where the rotation occurs.

I think that the underlying pdf probably can't be symmetric if you want to control the rotation point. For instance, in the case of a normal distribution, you probably have to change both the mean and the variance in a particular way to control the rotation point.

How do I control the rotation point?

I would like to use a t distribution or normal distribution. I need to control the rotation point of a pdf as well.

• You need to figure out the math that allows you to manipulate the CDF of a distribution the way you want. That is not a Mathematica problem. Once you have the math / statistics figured out, then attempt to implement the solution in Mathematica. If you get stuck anywhere along that path, we will be happy to help. Jun 8, 2018 at 4:37
• @Mo_hazard Please do not vandalize your own question. Jun 11, 2018 at 18:36

## 1 Answer

Maybe something like this: Using standard normal distribution (NormalDistribution[]) as the base, find the parameter μ[σ, x0] so that CDF of NormalDistribution[μ[σ, x0], σ] crosses the CDF of standard normal at x0:

ClearAll[x, x0, σ, mu]
mu[σ_, x0_] := First@FullSimplify[μ /.
Solve[{CDF[NormalDistribution[], x0] ==
CDF[NormalDistribution[μ, Rationalize @ σ], Rationalize @ x0],
x0 < μ, σ < 1}, {μ}, Reals]]

Manipulate[dist = NormalDistribution[mu[σ, x0], σ];
Labeled[Row[{Plot[Evaluate@{PDF[NormalDistribution[], x], PDF[dist, x]}, {x, -4, 4},
Axes -> False, Frame -> True,
MeshFunctions -> {PDF[NormalDistribution[], #] - PDF[dist, #] &},
Mesh -> {{0}}, MeshStyle -> PointSize[Large], ImageSize -> 300],
Plot[Evaluate@{CDF[NormalDistribution[], x], CDF[dist, x]}, {x, -4, 4},
Axes -> False, Frame -> True,
GridLines -> {{x0}, None}, ImageSize -> 300]}],
Style[#, 20] &@Row[{"x0 = ", x0, " && σ =", σ, " && mu[σ,x0] =", mu[σ, x0]}], Top],
{{x0, -1}, -4, 0}, {{σ, .5}, .01, 1}]


• " Solve was unable to solve the system with inexact coefficients. The answer was obtained by solving a corresponding exact system and numericizing the result." -- I am getting this error message. Jun 11, 2018 at 14:46
• @Mo_hazard, I updated with a fix. Please let me know if the new version works.
– kglr
Jun 12, 2018 at 9:13