5
$\begingroup$

I think this is a rather basic question, but I am not sure if there is already a function in Mathematica to do what I need or if I have to write the code myself.

I have this simple code that gives me the probability corresponding to any number of sigma in a normal distribution:

Manipulate[
 Probability[μ - n*σ < x < μ + n*σ, x \[Distributed] NormalDistribution[μ, σ]], 
 {n, 1, 5}]

I would like to know how to do the inverse, that is getting the number of sigma corresponding to a given probability.

Thanks

$\endgroup$
  • 4
    $\begingroup$ How about Sqrt[2] InverseErf[p] $\endgroup$ – Simon Woods Sep 2 '16 at 10:12
  • $\begingroup$ Then you should specify, how this probability is given? It is unclear. I can imagine that you might gave a distribution of points P(x) obtained from experiment. Is it the case? Then it is one scenario. You might have a plot of a probability drawn by somebody else with unknown parameters. It is another one. May be something else? $\endgroup$ – Alexei Boulbitch Sep 2 '16 at 10:15
6
$\begingroup$

You can come up with the answer given by @SimonWoods using Reduce or Solve. For example:

Reduce[
  Probability[ μ - n σ < x < μ + n σ, x \[Distributed] NormalDistribution[ μ,σ]] == prob &&
  0 <= prob <= 1 && n > 0, n, Reals
]

0 < prob < 1 && n == Sqrt[2] InverseErf[prob]

Update

You may also have used InverseCDF, since the Normal-PDF is a symmetric function we know:

\begin{align*} Pr(X\le \mu-n \sigma) &= \Phi(\mu-n \sigma)= \frac{1-p}{2}\\ \Rightarrow \mu-n \sigma &=\Phi^{-1}\left(\frac{1-p}{2}\right) \end{align*}

So we do:

InverseCDF[ NormalDistribution[μ,σ], (1-prob)/2 ]//Simplify

ConditionalExpression[ μ - Sqrt[2] σ InverseErfc[ 1-prob ], -1<=prob<=1 ]

From this we immediately see that n = Sqrt[2] InverseErfc[ 1 - prob ] where InverseErfc[1-prob] is equivalent to InverseErf[ prob ].

$\endgroup$
3
$\begingroup$

Just use Variance, even for a symbolic distribution, for instance:

Variance[MeixnerDistribution[a, b, m, d]]

(* 1/2 a^2 d Sec[b/2]^2 *)

and then take the square root.

If you want to get the probability from a threshold try this:

Module[{a,x,σ},
 Manipulate[a=N[θ/((4*σ))];
  Plot[PDF[NormalDistribution[0,σ],x],{x,-6,6},
  ColorFunction->Function[x,If[Abs[x]>θ,Red,Green]],
  ColorFunctionScaling->False,
  Filling->Axis,
  PlotRange->{{-6,6},{-0.01,0.45}},
  PlotPoints->100,
  Ticks->{
   Union[{{-4*σ,"μ-4σ"},{-3*σ,"μ-3σ"},{-2*σ,"μ-2σ"},{-σ,"μ-σ"},{0,"μ"},{1*σ,"μ+σ"},{2*σ,"μ+2σ"},{3*σ,"μ+3σ"},{4*σ,"μ+4σ"}},{{θ,
   Text[Style[("" """")┬θ,16,Red]],{0.6,0.01},
   Directive[Red,Dashed]},{-θ,
   Text[Style[("" """")┬("-""θ"),16,Red]],{0.6,0.01},
   Directive[Red,Dashed]}}],None}],{{θ,1},0,4},{{a,1,"θ/σ"}},{{σ,1,"σ"},5,1,-0.1}]]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.