Re: Solve for parameters of a truncated normal
- To: mathgroup at smc.vnet.net
- Subject: [mg122913] Re: Solve for parameters of a truncated normal
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Wed, 16 Nov 2011 04:44:25 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201111151050.FAA23783@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
The problem is not algebraic, so you'll need FindRoot and good initial guesses. Here's my first attempt, which might work but doesn't: X = TruncatedDistribution[{0, \[Infinity]}, NormalDistribution[mu, sigma]]; sub0 = mu -> sigma t mean0 = Mean@X /. sub0; sub1 = First@Solve[mean0 == 1, sigma] var1 = Variance@X /. sub0 /. sub1 // FullSimplify; sub2 = FindRoot[var1 == 1, {t, -7}] solution = Thread[{mu, sigma} -> ({mu, sigma} /. sub0 /. sub1 /. sub2)] mu -> sigma t {sigma -> (E^(t^2/2) (1 + Erf[t/Sqrt[2]]))/( Sqrt[2/\[Pi]] + E^(t^2/2) t + E^(t^2/2) t Erf[t/Sqrt[2]])} {t -> -6.89244} {mu -> -49.3683, sigma -> 7.16266} Through[{Mean, Variance}@X] /. solution {0.999461, 0.} (Variance 0, not 1.) To get a hint at WHY it doesn't work, consider the VERY noisy plot Plot[var1, {t, -20, 10}] Increasing precision smooths it out: p = Plot[var1, {t, -100, 100}, WorkingPrecision -> 20] but doesn't show a value with variance 1: Cases[p, Line[x_] :> Max@x[[All, -1]], Infinity] {0.9998} We can go back to FindRoot and try more precision, but the result is sub2 = FindRoot[var1 == 1, {t, 10}, WorkingPrecision -> 20] {t -> -150.04497603233965416} with a FindRoot::lstol error. t -> - Infinity if we keep looking, so no solution appears to exist. Bobby On Tue, 15 Nov 2011 04:50:44 -0600, paul <paulvonhippel at yahoo.com> wrote: > I'm trying to solve the following problem: > X = TruncatedDistribution[{0, \[Infinity]}, > NormalDistribution[\[Mu], \[Sigma]]] > Solve[Mean[X] == 1 && Variance[X] == 1, {\[Mu], \[Sigma]}, Reals] > > I get an error message: "This system cannot be solved with the methods > available to Solve." It doesn't help if I replace Solve with NSolve. > > In case I've made a mistake in defining the problem, I should say that > I'm looking for the parameters of a normal distribution so that, if > the normal is truncated on the left at zero, the result will be a > truncated distribution whose mean and variance are both 1. It seems to > me Mathematica should be able to solve this, at least numerically. > > Many thanks for any suggestions. > > -- DrMajorBob at yahoo.com
- References:
- Solve for parameters of a truncated normal distribution
- From: paul <paulvonhippel@yahoo.com>
- Solve for parameters of a truncated normal distribution