asa266
    
    
    
      asa266,
      a Fortran77 code which
      estimates the parameters of a Dirichlet probability density function.
    
    
      This is a version of Applied Statistics Algorithm 266.
    
    
      The assumption is that a given process is governed by a Dirichlet
      distribution with parameters ALPHA(I), I = 1 to N, positive quantities
      which are required to sum to 1.  Each observation of the process yields
      a vector of N data values.  After a number of observations of this sort,
      it is desired to estimate the the underlying parameters ALPHA of
      the Dirichlet distribution.
    
    
      There are a considerable number of routines required to get DIRICH
      to work.  In some cases, there are several versions of the routines,
      and they all were included, in order to provide a way to check
      results.  
    
    
      Also included is a routine DIRICHLET_SAMPLE, with which experiments
      can be carried out.  Values for the parameters ALPHA can be chosen,
      and data generated by DIRICHLET_SAMPLE.  Then DIRICH can analyze this
      data and attempt to determine the values of ALPHA.
    
    
      Another routine, dirichlet_mix_sample(), allows you to sample a
      probability distribution that is a weighted mixture of Dirichlet
      distributions.
    
    
      Licensing:
    
    
      The information on this web page is distributed under the MIT license.
    
    
      Languages:
    
    
      asa266 is available in
      a C version and
      a C++ version and
      a Fortran90 version and
      a MATLAB version and
      an Octave version.
    
    
      Related Data and Programs:
    
    
      
      asa266_test
    
    
      
      asa032,
      a Fortran77 library which
      evaluates the incomplete Gamma integral.
    
    
      
      ASA066,
      a Fortran77 library which
      evaluates the percentage points of the normal distribution.
    
    
      
      ASA091,
      a Fortran77 library which
      evaluates the percentage points of the Chi-Squared distribution.
    
    
      
      ASA103,
      a Fortran77 library
      which evaluates the digamma or psi function.
    
    
      
      ASA111,
      a Fortran77 library
      which evaluates the percentage points of the normal distribution.
    
    
      
      ASA121,
      a Fortran77 library
      which evaluates the trigamma function.
    
    
      
      ASA147,
      a Fortran77 library
      which evaluates the incomplete Gamma function.
    
    
      
      ASA239,
      a Fortran77 library
      which evaluates the percentage points of the Chi-Squared distribution
      and the incomplete Gamma function.
    
    
      
      ASA241,
      a Fortran77 library
      which evaluates the percentage points of the normal distribution.
    
    
      
      ASA245,
      a Fortran77 library
      which evaluates the logarithm of the Gamma function.
    
    
      
      BDMLIB,
      a Fortran77 library which
      estimates the weights in a Dirichlet mixtured based on sample data;
    
    
      
      NORMAL,
      a Fortran77 library which
      samples the normal distribution.
    
    
      
      PROB,
      a Fortran77 library which
      evaluates the PDF, CDF, mean and variance for a number of probability
      density functions.
    
    
      
      TEST_VALUES,
      a Fortran77 library which
      contains sample values
      for a number of distributions.
    
    
      
      TOMS291,
      a Fortran77 library
      which evaluates the logarithm of the Gamma function.
    
    
      
      UNIFORM,
      a Fortran77 library which
      samples the uniform distribution.
    
    
      Reference:
    
    
      
        - 
          AG Adams,
          Algorithm 39:
          Areas Under the Normal Curve,
          Computer Journal,
          Volume 12, Number 2, May 1969, pages 197-198.
         
        - 
          Joachim Ahrens, Ulrich Dieter,
          Computer Methods for Sampling from Gamma, Beta, Poisson and
          Binomial Distributions,
          Computing,
          Volume 12, Number 3, September 1974, pages 223-246.
         
        - 
          Joachim Ahrens, Ulrich Dieter,
          Generating Gamma Variates by a Modified Rejection Technique,
          Communications of the ACM,
          Volume 25, Number 1, January 1982, pages 47-54.
         
        - 
          Jerry Banks, editor,
          Handbook of Simulation,
          Wiley, 1998,
          ISBN: 0471134031,
          LC: T57.62.H37.
         
        - 
          JD Beasley, SG Springer,
          Algorithm AS 111:
          The Percentage Points of the Normal Distribution,
          Applied Statistics,
          Volume 26, Number 1, 1977, pages 118-121.
         
        - 
          Jose Bernardo,
          Algorithm AS 103:
          Psi ( Digamma ) Function,
          Applied Statistics,
          Volume 25, Number 3, 1976, pages 315-317.
         
        - 
          Donald Best, DE Roberts,
          Algorithm AS 91:
          The Percentage Points of the Chi-Squared Distribution,
          Applied Statistics,
          Volume 24, Number 3, 1975, pages 385-390.
         
        - 
          G Bhattacharjee,
          Algorithm AS 32:
          The Incomplete Gamma Integral,
          Applied Statistics,
          Volume 19, Number 3, 1970, pages 285-287.
         
        - 
          William Cody, Kenneth Hillstrom,
          Chebyshev Approximations for the Natural Logarithm of the
          Gamma Function,
          Mathematics of Computation,
          Volume 21, Number 98, April 1967, pages 198-203.
         
        - 
          William Cody, Anthony Strecok, Henry Thacher,
          Chebyshev Approximations for the Psi Function,
          Mathematics of Computation,
          Volume 27, Number 121, January 1973, pages 123-127.
         
        - 
          John Hart, Ward Cheney, Charles Lawson, Hans Maehly,
          Charles Mesztenyi, John Rice, Henry Thacher,
          Christoph Witzgall,
          Computer Approximations,
          Wiley, 1968,
          LC: QA297.C64.
         
        - 
          David Hill,
          Algorithm AS 66:
          The Normal Integral,
          Applied Statistics,
          Volume 22, Number 3, 1973, pages 424-427.
         
        - 
          Cornelius Lanczos,
          A precision approximation of the gamma function,
          SIAM Journal on Numerical Analysis, B,
          Volume 1, 1964, pages 86-96.
         
        - 
          Chi Leung Lau,
          Algorithm AS 147:
          A Simple Series for the Incomplete Gamma Integral,
          Applied Statistics,
          Volume 29, Number 1, 1980, pages 113-114.
         
        - 
          Allan Mcleod,
          Algorithm AS 245:
          A Robust and Reliable Algorithm for the Logarithm
          of the Gamma Function,
          Applied Statistics,
          Volume 38, Number 2, 1989, pages 397-402.
         
        - 
          A. Naryanan,
          Algorithm AS 266:
          Maximum Likelihood Estimation of the Parameters of the
          Dirichlet Distribution,
          Applied Statistics,
          Volume 40, Number 2, 1991, pages 365-374.
         
        - 
          Malcolm Pike, David Hill,
          Algorithm 291:
          Logarithm of Gamma Function,
          Communications of the ACM,
          Volume 9, Number 9, September 1966, page 684.
         
        - 
          BE Schneider,
          Algorithm AS 121:
          Trigamma Function,
          Applied Statistics,
          Volume 27, Number 1, 1978, pages 97-99.
         
        - 
          BL Shea,
          Algorithm AS 239:
          Chi-squared and Incomplete Gamma Integral,
          Applied Statistics,
          Volume 37, Number 3, 1988, pages 466-473.
         
        - 
          Michael Wichura,
          Algorithm AS 241:
          The Percentage Points of the Normal Distribution,
          Applied Statistics,
          Volume 37, Number 3, 1988, pages 477-484.
         
      
    
    
      Source Code:
    
    
      
    
    
    
      Last revised on 27 August 2023.