Re: Solve for parameters of a truncated normal distribution
- To: mathgroup at smc.vnet.net
- Subject: [mg122932] Re: Solve for parameters of a truncated normal distribution
- From: Barrie Stokes <Barrie.Stokes at newcastle.edu.au>
- Date: Thu, 17 Nov 2011 06:03:57 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201111151050.FAA23783@smc.vnet.net>
Andrzej , Bobby
Speaking of nice graphics:
If you combine Bobby's mods to my ContourPlot ...
X = TruncatedDistribution[{0, \[Infinity]},
NormalDistribution[\[Mu], \[Sigma]]];
{mean, var} = FullSimplify@Through[{Mean, Variance}@X];
Manipulate[
Column@{Style[ "contour height is " <> ToString[ height],
FontFamily -> "Arial", FontSize -> 11.5 ],
Show[{ContourPlot[
mean == height, {\[Mu], 0.01, 3}, {\[Sigma], 0.01, 3},
ContourStyle -> {Red}, ImageSize -> 350],
ContourPlot[var == height, {\[Mu], 0.01, 3}, {\[Sigma], 0.01, 3},
ContourStyle -> {Blue}]},
FrameLabel -> {"\[Mu]", "\[Sigma]"}]}, {{height, 1}, 0.1, 3,
0.001}]
with these plots from Andrzej's code (rotate both plots to reveal the "underside") ...
X = TruncatedDistribution[{0, \[Infinity]},
NormalDistribution[\[Mu], \[Sigma]]];
m = Mean[X];
v = Variance[X];
and then ...
Plot3D[{m, v, 1}, {\[Mu], 0.01, 3}, {\[Sigma], 0.01, 3},
PlotStyle -> {Blue, Green, Gray}]
and ...
Plot3D[{m, v, 2}, {\[Mu], 0.01, 3}, {\[Sigma], 0.01, 3},
PlotStyle -> {Blue, Green, Gray}]
the difference between height=1 and height=2 is clearly revealed.
Cheers
Barrie
>>> On 16/11/2011 at 8:46 pm, in message <201111160946.EAA06190 at smc.vnet.net>,
Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
> On 15 Nov 2011, at 11:50, paul 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.
>>
>>
>
> Your first mistake is to use functions (Solve and NSolve) which are not
> intended for such purposes at all. NSolve can only solve (numerically)
> polynomial equations and systems of such. Your equations are certainly not of
> this kind. Solve (in version 8) can also solve certain univariate
> transcendental equations but not systems of such. So again, there is no point
> at all of trying either of these functions on your system.
>
> The only function that might work is FindRoot. However, before one even
> starts, one has to have some reason for believing such a solution exists.
> Now, looking at the graphs below, I see no such reason. So do you have one?
>
> X = TruncatedDistribution[{0, \[Infinity]},
> NormalDistribution[\[Mu], \[Sigma]]];
>
> m = Mean[X];
>
> v = Variance[X];
>
> Plot3D[{m, v, 1}, {\[Mu], 0.1, 2}, {\[Sigma], 0.1, 2},
> PlotStyle -> {Blue, Green, Black}]
>
> Andrzej Kozlowski
- References:
- Solve for parameters of a truncated normal distribution
- From: paul <paulvonhippel@yahoo.com>
- Solve for parameters of a truncated normal distribution