ASA053
Wishart Variate Generator
ASA053
is a MATLAB library which
returns samples from the Wishart distribution.
As far as I can tell, there are two mistakes in the printed text
of the algorithm; one involves incorrectly determining the number
of degrees of freedom for the ChiSquared distribution; the
other omits an absolute value sign when inverting the Wilson-Hilferty
formula, so that square roots of negative values are occasionally
requested. These mistakes have been corrected here.
Source code for many Applied Statistics Algorithms is available through
STATLIB.
Licensing:
The computer code and data files made available on this
web page are distributed under
the GNU LGPL license.
Languages:
ASA053 is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
asa053_test
WISHART,
a MATLAB library which
produces sample matrices from the Wishart or Bartlett distributions,
useful for sampling random covariance matrices.
Reference:
-
Stanley Sawyer,
Wishart Distributions and Inverse-Wishart Sampling,
Washington University,
30 April 2007, 12 pages.
-
William Smith, Ronald Hocking,
Algorithm AS 53, Wishart Variate Generator,
Applied Statistics,
Volume 21, Number 3, pages 341-345, 1972.
Original Source Code:
-
asa053_original.f,
the original text of the source code. Note that the
line "DF = N - I + 1" is believed (by me) to be incorrect,
and is replaced in the present version by "DF = NP - I + 1".
Source Code:
-
r8_uniform_01.m,
returns a pseudorandom R8 scaled to [0,1].
-
r8mat_print.m,
prints an R8MAT.
-
r8mat_print_some.m,
prints some of an R8MAT.
-
r8pp_print.m,
prints an R8PP matrix.
-
r8pp_print_some.m,
prints some of an R8PP matrix.
-
r8utp_print.m,
prints an R8UTP matrix.
-
r8utp_print_some.m,
prints some of an R8UTP matrix.
-
rnorm.m,
returns two independent standard random normal deviates.
-
timestamp.m,
prints the YMDHMS date as a timestamp.
-
wshrt.m,
returns sample deviates from the Wishart distribution.
Last revised on 13 November 2018.