MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: strange problems with Random

  • To: mathgroup at smc.vnet.net
  • Subject: [mg47830] Re: strange problems with Random
  • From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig-de>
  • Date: Thu, 29 Apr 2004 00:33:48 -0400 (EDT)
  • Organization: Uni Leipzig
  • References: <c6l8je$iud$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hi Andrzej,

as to see from Statistics`NormalDistribution` Mathamtica use the direct
method
with the two uniform variables U1=Random[] and U2=Random[] and compute

X1=Sqrt[- 2 Log[U1]]*Cos[2 Pi U2]

while RamdomArray[] use the pairs
X1=Sqrt[- 2 Log[U1]]*Cos[2 Pi U2], X2=Sqrt[- 2 Log[U1]]*Sin[2 Pi U2]

but always Random[] without any paramters is used. May be that using always
the
version with Cos[] in the equations above cause your problems (but it should
not).
The mean, variance, skewness of Mathematicas normal distribution look fine
and the histogram for 10^6 values show also a fine Gauss curve.

Regards
  Jens

"Andrzej Kozlowski" <akoz at mimuw.edu.pl> schrieb im Newsbeitrag
news:c6l8je$iud$1 at smc.vnet.net...
> Recently Mark Coleman wrote a message with the subject "Differences in
> Random Numbers" in which he described his experience of getting
> statistically incorrect answers when using
> Random[UniformDistribution[0,1]] instead of simple Random[]. Jens Kuska
> and Bill Rowe pointed out that the package  ContinuousDistributions
> contains the code
>
> UniformDistribution/: Random[UniformDistribution[min_:0, max_:1]] :=
> Random[Real, {min, max}]
>
> and that seemed to be it. However, I have now encountered a problem
> that makes me feel strongly that there is more to this problem than it
> seemed to me at first.
>
> I have been doing some Monte Carlo computations of values of of
> financial options for the Internet based course on this subject I am
> teaching for Warsaw University.  In the case of the simplest options,
> the so called vanilla european options, an exact formula (due to black
> and Scholes) is known. Neverheless, computations with Mathematica using
> the function
>
> Random[NormalDistribution[mu,sigma]] (for some fixed mu and sigma) have
> been giving answers which are consistently higher than the
> Black-Scholes value. On the other hand, when
> Random[NormalDistribution[mu,sigma]]  is replaced by the following code
> using a well known algorithm due to Marsaglia:
>
> RandomNormal=Compile[{mu, sigma}, Module[{va = 1., vb, rad =
>        2.0, den = 1.}, While[rad ³ 1.00, (va = 2.0*Random[] - 1.0;
>              vb = 2.0*Random[] - 1.0;
>              rad = va*va + vb*vb)];
>          den = Sqrt[-2.0*Log[rad]/rad];
>          mu + sigma*va*den]];
>
> the answers agree very closely with the Black-Scholes ones.
> I am not sure if this problem is related to the one mark mentioned but
> it seems quite likely.  One could in principle test it by replacing
> Random[] by Random[Uniformdistribution[0,1]] (after loading the
> Statistics`ContinuousDistributions`) package, but if one does that the
> code will no longer compile. That makes the function to slow for tests
> that are sufficiently precise, so I have not tested it.
>
> In any case, I am sure that using Random[Normal  ] consistently gives
> wrong answers. I looked at the Statistics`NormalDistributionPackage`
> but everything looks O.K. to me. I now tend to believe that the problem
> lies with Random itself, that is that  Random called with any
> parameters or perhaps some particular parameters may not be behaving
> correctly. Random[] called with no parameters does not seem to  suffer
> from any such problems.
>
>
> Andrzej Kozlowski
> Chiba, Japan
> http://www.mimuw.edu.pl/~akoz/
>



  • Prev by Date: PaddedForm bug?
  • Next by Date: Re: Invisible Words ... Font Problen?
  • Previous by thread: Re: strange problems with Random
  • Next by thread: Derivative of Sum