Previous Page | Next Page

Module Library

RANDMULTINOMIAL Function

generates a random sample from a multinomial distribution

RANDMULTINOMIAL( N, NumTrials, Prob ) ;

The inputs are as follows:

is the number of desired observations sampled from the distribution.

is the number of trials for each observation. , for .

Prob

is a vector of probabilities with and .

The multinomial distribution is a multivariate generalization of the binomial distribution. For each trial, is the probability of event , where the are mutually exclusive and .

The RANDMULTINOMIAL function returns an matrix that contains observations of random draws from the multinomial distribution. Each row of the resulting matrix is an integer vector with . That is, for each row, indicates how many times event occurred in trials.

If follows a multinomial distribution with trials and probabilities , then

  • the probability density function for is

         
  • the expected value of is .

  • the variance of is .

  • the covariance of with is .

  • if then is constant.

  • if then is Binomial and is Binomial.

The following example generates 1000 samples from a multinomial distribution with three mutually exclusive events. For each sample, 10 events are generated. Each row of the returned matrix x represents the number of times each event was observed. The example then computes the sample mean and covariance and compares them with the expected values. Here are the code and the output:

   call randseed(1);
   prob = {0.3,0.6,0.1};
   NumTrials = 10;
   N = 1000;
   x = RANDMULTINOMIAL(N,NumTrials,prob);
   ExpectedValue = NumTrials * prob`;
   Cov = -NumTrials*prob*prob`;
   /* replace diagonal elements of Cov with Variance */
   Variance = -NumTrials*prob#(1-prob);
   d = nrow(prob);
   do i = 1 to d;
      Cov[i,i] = Variance[i];
   end;

   SampleMean = x[:,];
   n = nrow(x);                    
   y = x - repeat( SampleMean, n );
   SampleCov = y`*y / (n-1);
   print SampleMean, ExpectedValue, SampleCov, Cov;

            SampleMean                          ExpectedValue

     2.971     5.972     1.057              3        6        1

            SampleCov                               Cov

     2.0622212 -1.746559 -0.315663        -2.1     -1.8     -0.3
     -1.746559 2.3775936 -0.631035        -1.8     -2.4     -0.6
     -0.315663 -0.631035 0.9466977        -0.3     -0.6     -0.9

For further details about sampling from the multinomial distribution, see Gentle (2003), or Fishman (1996).

Previous Page | Next Page | Top of Page