All of the methods described in the previous can be implemented as MC
methods that use only
random numbers. This includes the
methods that use
random numbers, which can be obtained from
numbers via the inverse
distribution, and the methods
that use sequences of random orthogonal matrices, because each orthogonal
matrix can be generated from a sequence of
,
(see Fang and Wang, 1994). Therefore all of the MC methods discussed so
far, can be viewed as MC methods for integrals of the form
When the input for a particular problem is given, there is usually no
way of knowing how large
needs to be before we have
, so some type of iterative algorithm is required.
We have implemented all of our MC algorithms in the following iterative form.
This is usually a two iteration algorithm. We initially use a relatively
small
(we set
for all MC algorithms) to estimate the
variance
for
, assuming
. Then we try to pick an
so that the next iteration completes the calculation. We choose the smallest
satisfying
and
.
The algebraic rearrangement of this inequality provides the heuristic formula
used at step (5a). In practice, we sometimes require more than two iterations,
which is why we have implemented the algorithm in the form given.
The updating formulas for
and
are
algebraically equivalent to
and
if the algorithm requires
iterations, with sample sizes
, so that the final
.
This type of weighted combination of values for iterative MC algorithms
was used by Lepage (1978). If
, then
, and
, which
provides some motivation for the choice of weighting.
The type of testing that we use consists of applying several algorithms
to a set of randomly selected MVT problems,
, for selected values of
,
and
, and with
chosen large enough to allow
the algorithms to terminate. We generate random covariance matrices
which are random correlation matrices using the algorithm described by
Marsaglia and Olkin (1984). We generate random limit vectors
with components
,
with components
, and random
, where all
,
and
are
random numbers. The distributions that we have
chosen for
and
were picked after some experimentation to
produce average MVT values in the range .2-.8 for
in the range 2-20.
We compute the average time taken by each method for each
, and the
average, denoted by
, for
(the ratio of the number of correct digits produced to the number of digits
requested). The ``correct''
values used for our tests were determined
using our most efficient algorithm (QSMVN, described later in this section)
with input error tolerance set at
.
We also count the number of times
and the
average of
(the number of wrong digits) for these
events. A 433 MHZ DEC Alpha workstation was used for the computations, with
all algorithms implemented in double precision in FORTRAN.
We first present some test results, for
,
for three methods which will be denoted MCAR, MCSR, MCSVT.
These methods use simple Monte Carlo algorithms based on equations
(8), (9) and (12), respectively.
The results, obtained using
samples, are
given in Figure 2. The number given in parentheses next to
the name of each method is the
statistic for that method, averaged
over all of the
values. All of the methods were reliable, terminating
typically with a results that had approximately
correct decimal digits.
We also tested the algorithms based on equation (10, with
),
denoted by MCSR1, and equation (14), denoted by MCSVN,
but the results were similar to (with MCSR1 results slightly better than)
the results for MCSVN at this accuracy level.
A standard method for improving for overall performance of MC algorithms is
to use simple antithetic variates. This method replaces
by
, with
, in the MC sum.
In this case we redefine
and
to be given by
The methods that use equation (10) are already symmetrized.
We tested the other algorithms, but with this ``symmetrized'' modification
included, at the
accuracy level and the
results (again with
samples) are given in Figure 3.
The times are clearly lower for the symmetrized algorithms, with more
significant improvements for the MCSR and MCSVN methods. The times
for then MCAR method also showed some improvement, but they were still
significantly higher than the times for the other methods.
The clear loser at this accuracy level is the MCAR method
(acceptance-rejection). We will not present any further results for this
method, although we have carried out additional tests of MCAR and obtained
similar results, when compared with other methods. We do not recommend this
method for the efficient computation of MVT probabilities.
For a final test at this accuracy level we added the variable prioritization preconditioning step, described near the end of Section 2.3, to the symmetrized algorithms. Some of the results (based on 100 samples) are given in Figure 4. The times are even lower for all of the prioritized algorithms, with the most significant improvement for the MCSVN method. All of the tests described in the rest of this paper used symmetrized algorithms with prioritization.
In order to more carefully compare the MC methods we carried out another test
at a higher accuracy level, using the methods MCSVT, MCSVN, MCSR, MVSR1
and MCSR2 (based on equation (10) with
). Some of the results are
given in Figure 5. All of the SR test results
appear to exhibit the overall increase in time taken as function of dimension,
but with times for the odd
larger than expected. This occurs because
the
values needed for these methods require the evaluation of a
series (determined from a succession of integrations by parts) which ends with
an extra
value when
is odd, and the computation of this
value is what requires increases the time when
is an odd integer.