  The Poisson multinomial distribution (PMD) describes the distribution of the
sum of $n$ independent but non-identically distributed random vectors, in which
each random vector is of length $m$ with 0/1 valued elements and only one of
its elements can take value 1 with a certain probability. Those probabilities
are different for the $m$ elements across the $n$ random vectors, and form an
$n \times m$ matrix with row sum equals to 1. We call this $n\times m$ matrix
the success probability matrix (SPM). Each SPM uniquely defines a PMD. The PMD
is useful in many areas such as, voting theory, ecological inference, and
machine learning. The distribution functions of PMD, however, are usually
difficult to compute. In this paper, we develop efficient methods to compute
the probability mass function (pmf) for the PMD using multivariate Fourier
transform, normal approximation, and simulations. We study the accuracy and
efficiency of those methods and give recommendations for which methods to use
under various scenarios. We also illustrate the use of the PMD via three
applications, namely, in voting probability calculation, aggregated data
inference, and uncertainty quantification in classification. We build an R
package that implements the proposed methods, and illustrate the package with
examples.
