# mn: The Multinomial Distribution In MGLM: Multivariate Response Generalized Linear Models

 rmn R Documentation

## The Multinomial Distribution

### Description

`rmn` generates random number vectors given `alpha`. The function `rmn(n, size, alpha)` calls `rmultinom(n, size, prob)` after converting `alpha` to probability. `dmn` computes the log of multinomial probability mass function.

### Usage

```rmn(n, size, alpha)

dmn(Y, prob)
```

### Arguments

 `n` number of random vectors to generate. `size` a scalar or a vector. `alpha` a vector or a matrix. `Y` the multivariate count matrix with dimension n x d, where n = 1,2,… is number of observations and d=2,… is number of categories. `prob` the probability parameter of the multinomial distribution. `prob` can be either a vector of length d or a matrix with matching size of `Y`. If `prob` is a vector, it will be replicated n times to match the dimension of `Y`. If the sum(s) of `prob` is not 1, it will be automatically scaled to have sum 1.

### Details

A multinomial distribution models the counts of d possible outcomes. The counts of categories are negatively correlated. y=(y_1, …, y_d) is a d category count vector. Given the parameter vector p = (p_1, …, p_d), 0 < p_j < 1, sum_{j=1}^d p_j = 1, the function calculates the log of the multinomial pmf

P(y|p) = C_{y_1, …, y_d}^{m} prod_{j=1}^{d} p_j^{y_j},

where m = sum_{j=1}^d y_j. Here, C_k^n, often read as "n choose k", refers the number of k combinations from a set of n elements.

The parameter p can be one vector, like the result from the distribution fitting function; or, p can be a matrix with n rows, like the estimate from the regression function,

p_j = (exp(X β_j)) / (1 + sum_{j'=1}^{d-1} exp(Xβ_{j'})),

where j=1,…,d-1 and p_d = 1/(1 + sum_{j'=1}^{d-1} exp(Xβ_{j'})). The d-th column of the coefficient matrix β is set to 0 to avoid the identifiability issue.

### Value

The function `dmn` returns the value of logP(y|p). When `Y` is a matrix of n rows, the function returns a vector of length n.

The function `rmn` returns multinomially distributed random number vectors

### Author(s)

Yiwen Zhang and Hua Zhou

### Examples

```m <- 20
prob <- c(0.1, 0.2)
dm.Y <- rdirmn(n=10, m, prob)
pdfln <- dmn(dm.Y, prob)
```

MGLM documentation built on April 14, 2022, 1:07 a.m.