Author: Raymond Kan and Preston Liang
Date: 2024-08-25

# Using the wishmom Package

#### Raymond Kan and Preston Liang

#### 2024-08-25

# Introduction

The `wishmom` package provides functions to compute the expectation of matrix-valued functions of \(\beta\)-Wishart and inverse \(\beta\)-Wishart distributions (\(\beta=1\): Real Wishart, \(\beta=2\): Complex Wishart, \(\beta=4\): Quaternion Wishart, \(\beta=8\): Octonion Wishart). The main functions in this package are `wishmom()` and `iwishmom()`, which handle the numerical computation of moments of \(\beta\)-Wishart and inverse \(\beta\)-Wishart distributions, respectively. The corresponding functions for generating analytical expressions of moments of \(\beta\)-Wishart and inverse \(\beta\)-Wishart distributions are `wishmom_sym()` and `iwishmom_sym()`. These programs are developed based on the results in Letac and Massam (2004) and Hillier and Kan (2024).

You can install the package and load it using:

    install.packages("wishmom")
    library("wishmom")

# Mathematical Background

## \(\beta\)-Wishart Distribution

The \(\beta\)-Wishart distribution is a fundamental distribution in multivariate statistics. When \(\beta=1,\;2,\;4,\;8\), it is the real Wishart, complex Wishart, quaternion Wishart, and octonion Wishart, respectively. The density function of \(W \sim W_m^\beta(n,\Sigma)\), i,e., a \(\beta\)-Wishart distribution with \(n\) degrees of freedom and an \(m \times m\) covariance matrix \(\Sigma\), is given by (when \(n > m-1\)) (see Díaz-García and Gutiérrez-Jáimez (2011, Corollary 1))

\[ f(W) = \frac{\left(\frac{\beta}{2}\right)^\frac{mn\beta}{2}}{\Gamma_m^{(\beta)}\left(\frac{n \beta}{2}\right) |\Sigma|^\frac{n \beta}{2}}|W|^{\frac{(n-m+1)\beta}{2}-1} \mbox{etr}\left(-\frac{\beta \Sigma^{-1}W}{2}\right), \]

where

\[ \Gamma_m^{(\beta)}(a) = \pi^\frac{m(m-1)\beta}{4}\prod_{i=1}^m \Gamma\left(a-\frac{(i-1)\beta}{2}\right). \]

Note that we do not require \(n\) to be an integer but the definition of the density of \(W\) requires \(\beta = 1,\;2,\;4\) or \(8\). However, if our interest is only on the functions of eigenvalues of \(W\), we can generalize this to any real \(\beta>0\). Therefore, for any symmetric functions (say power-sum) of the eigenvalues of \(W\), they can be well defined even when \(\beta\) is not equal to \(1,\; 2,\;4\) or \(8\). For \(W \sim W_m^\beta(n,\Sigma)\), the joint density of its eigenvalues \(\lambda_1 \geq \cdots \geq \lambda_m\) is given by (see Dresnky, Edelman, Genoar, Kan, and Koev (2021))

\[ f(\lambda_1,\ldots,\lambda_m) = \frac{| \Sigma|^{-\frac{n\beta}{2}}}{\mathcal{K}_m^ {(\beta)}\left(\frac{n\beta}{2}\right)} |\Lambda|^{\frac{(n-m+1)\beta}{2}-1} {}_0^{}F_0^{(\beta)}\left(-\frac{\beta}{2}\Lambda,\Sigma^{-1}\right)\prod_{1 \leq i < j \leq m}(\lambda_i-\lambda_j)^{\beta}, \] where \(\Lambda = \mbox{Diag}(\lambda_1,\ldots,\lambda_m)\),

\[ \mathcal{K}_m^{(\beta)}(a) = \frac{\left(\frac{2}{\beta}\right)^{ma}} {\pi^{\frac{m(m-1)\beta}{2}}} \frac{\Gamma_m^{(\beta)}\left(\frac{m\beta}{2}\right)\Gamma_m^{(\beta)}(a)}{\left[\Gamma\left(\frac{\beta}{2}\right)\right]^m}, \]

\[ {}_0^{}F_0^{(\beta)}(A,B) = \sum_{k=0}^\infty \sum_{\kappa \vdash k} \frac{C_\kappa^{(\beta)}(A)C_\kappa^{(\beta)}(B)} {k!C_\kappa^{(\beta)}(I_m)}, \]

and \(C_\kappa^{(\beta)}(X)\) is the Jack function of the eigenvalues of \(X\).

Instead of using \(\beta\), we use \(\alpha = 2/\beta\) in our programs to describe the type of Wishart distribution. Therefore, \(\alpha=2\) is for real Wishart, \(\alpha=1\) is for complex Wishart, and \(\alpha =1/2\) is for quaternion Wishart.

## Moments of Matrix-valued Functions of \(\beta\)-Wishart and Inverse \(\beta\)-Wishart Distributions

Let \(\lambda = (\lambda_1,\ldots, \lambda_k)\) be an integer partition of a positive integer \(k\), where \(|\lambda|= \lambda_1+\ldots+\lambda_k=k\), with \(\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_k \geq 0\). The power-sum symmetric function \(p_\lambda(W)\) of \(W\) corresponding to a partition \(\lambda\) is defined as

\[ p_{\lambda}(W) = \prod_{i=1}^{\ell(\lambda)}p_{\lambda_i}(W), \]

where \(\ell(\lambda)\) is the number of non-zero parts of \(\lambda\), and \(p_i(W) = \mbox{tr}(W^i)\). We are interested in computing

\[ \mathbb{E}[W^rp_{\lambda}(W)]\;\;\;\;\mbox{and} \;\;\;\; \mathbb{E}[W^{-r}p_{\lambda}(W^{-1})], \]

where \(W \sim W^{\beta}_m(n,\Sigma)\).

The method that we use is based on a generalization of the recurrence relations given in Hillier and Kan (2024) for which the cases of \(\beta = 1\) and \(2\) were developed. Specifically, we have the following recurrence relations:

\[\begin{align} \mathbb{E}[W^{r+1}p_{\lambda}(W)] & = \left[n+\left(\frac{2}{\beta}-1\right)r\right]\Sigma \mathbb{E}[W^{r} p_{\lambda}(W)]+ \sum_{j=1}^{r} \Sigma \mathbb{E}[W^{r-j}p_j(W)p_{\lambda}(W)] \nonumber \\ & \;\;\;\;{}+\frac{2}{\beta}\sum_{i=1}^{\ell(\lambda)}\lambda_i \Sigma \mathbb{E}\left[W^{r+\lambda_i}p_{\lambda_{(i)}}(W)\right], \\ \Sigma^{-1}\mathbb{E}[W^{-r}p_{\lambda}(W^{-1})] & = \left[\tilde{n}-\left(\frac{2}{\beta}-1\right)r\right]\mathbb{E}[W^{-(r+1)}p_{\lambda}(W^{-1})] -\sum_{j=1}^{r} \mathbb{E}[W^{-r-1+j}p_j(W^{-1})p_{\lambda}(W^{-1})] \nonumber \\ & \;\;\;\;{}-\frac{2}{\beta} \sum_{i=1}^{\ell(\lambda)}\lambda_i \mathbb{E}[W^{-r-1-\lambda_i}p_{\lambda_{(i)}}(W^{-1})], \end{align}\] where \(\tilde{n}= n-m+1-(2/\beta)\) and \(\lambda_{(i)}\) is \(\lambda\) with its \(i\)-th element removed. Together with the boundary conditions \(\mathbb{E}[W] = n\Sigma\) and \(\mathbb{E}[W^{-1}] = \Sigma^{-1}/\tilde{n}\), we can obtain \(\mathbb{E}[E^rp_{\lambda}(W)]\) and \(\mathbb{E}[W^{-r}p_{\lambda}(W^{-1})]\). Note that \(\mathbb{E}[W^{-r}p_{\lambda}(W^{-1})]\) exists if and only if \(\tilde{n}>2(r+|\lambda|)\).

Let \(k=r+|\lambda|\). Hillier and Kan (2024) show that \[\begin{align} \mathbb{E}[W^{r}p_{\lambda}(W)] & = \sum_{i=1}^k\left[\sum_{\rho \vdash k-i} c_{\lambda,\rho}p_{\rho}(\Sigma)\right]\Sigma^i, \\ \mathbb{E}[W^{-r}p_{\lambda}(W^{-1})] & = \sum_{i=1}^k\left[\sum_{\rho \vdash k-i}\tilde{c}_{\lambda,\rho}p_{\rho}(\Sigma^{-1})\right]\Sigma^{-i}, \end{align}\] where \(c_{\lambda,\rho}\) and \(\tilde{c}_{\lambda,\rho}\) are constants that depend on \(n\) and \(\tilde{n}\), respectively, but they do not depend on \(\Sigma\). In addition, we have \[\begin{align} \mathbb{E}[p_{\lambda}(W)] & = \sum_{\kappa \vdash k} h_{\kappa}p_{\kappa}(\Sigma), \\ \mathbb{E}[p_{\lambda}(W^{-1})] & = \sum_{\kappa \vdash k} \tilde{h}_{\kappa}p_{\kappa}(\Sigma^{-1}), \end{align}\] where \(h_{\kappa}\) and \(\tilde{h}_{\kappa}\) are constants that depend on \(n\) and \(\tilde{n}\), repsectively, but they do not depend on \(\Sigma\).

Using the recurrence relations, Hillier and Kan (2024) develop efficient algorithms for computing the constants \(c_{\lambda,\rho}\), \(\tilde{c}_{\lambda,\rho}\), \(h_{\kappa}\) and \(\tilde{h}_{\kappa}\).

# Main Functions in the Package

There are four main functions in this package: `wishmom()`, `iwishmom()`, `wishmom_sym()`, and `iwishmom_sym()`. The first two are used to numerically compute \(\mathbb{E}[W^rp_{\lambda}(W)]\) and \(\mathbb{E}[W^{-r}p_{\lambda}(W^{-1})]\), respectively. The last two are used to generate an analytical expression of \(\mathbb{E}[W^rp_{\lambda}(W)]\) and \(\mathbb{E}[W^{-r}p_{\lambda}(W^{-1})]\), respectively.

## Moments of \(\beta\)-Wishart:

### wishmom()

The function `wishmom()` computes \(\mathbb{E}\left[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}W^{iw}\right]\) numerically, where \(W \sim W_m^\beta(n, \Sigma)\). When \(iw=0\), it computes \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}]\).

#### Arguments

- `n`: degrees of freedom of the \(\beta\)-Wishart distribution
- `S`: covariance matrix of the \(\beta\)-Wishart distribution
- `f`: a vector of nonnegative integers \(f_j\) that represents the power for \(\mbox{tr}(W^j)\), \(j=1,\ldots, r\)
- `iw`: Power of \(W\)
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

When \(iw=0\), it returns \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}]\). When \(iw \neq 0\), it returns \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}W^{iw}]\).

#### Examples

    # Example 1: For E[tr(W)^4] with W ~ W_m^1(n,S), where n and S are defined below:
    n <- 20
    S <- matrix(c(25, 49,
                  49, 109), nrow=2, ncol=2)
    wishmom(n, S, 4) # iw = 0, for real Wishart distribution
    #> [1] 8.705084e+13

    # Example 2: For E[tr(W)^2*tr(W^3)*W^2] with W ~ W_m^1(n,S), where n and S, are defined below:
    n <- 20
    S <- matrix(c(25, 49,
                  49, 109), nrow=2, ncol=2)
    wishmom(n, S, c(2, 0, 1), 2, 2) # iw = 2, for real Wishart distribution
    #>              [,1]         [,2]
    #> [1,] 9.039462e+23 1.956948e+24
    #> [2,] 1.956948e+24 4.258714e+24

    # Example 3: For E[tr(W)^2*tr(W^3)] with W ~ W_m^2(n,S), where n and S are defined below:
    n <- 20
    S <- matrix(c(25, 49 + 2i,
                  49 - 2i, 109), nrow=2, ncol=2)
    wishmom(n, S, c(2, 0, 1), 0, 1) # iw = 0, for complex Wishart distribution
    #> [1] 2.078126e+17

    # Example 4: For E[tr(W)*tr(W^2)^2*tr(W^3)^2*W] with W ~ W_m^2(n,S), where n, S, are defined below:
    n <- 20
    S <- matrix(c(25, 49 + 2i,
                  49 - 2i, 109), nrow=2, ncol=2)
    wishmom(n, S, c(1, 2, 2), 1, 1) # iw = 1, for complex Wishart distribution
    #>                            [,1]                       [,2]
    #> [1,] 3.418999e+41+5.014362e+20i 6.943130e+41-2.833930e+40i
    #> [2,] 6.943130e+41+2.833930e+40i 1.532151e+42-2.882805e+22i

### wishmom_sym()

The function `wishmom_sym()` generates an analytical expression of \(\mathbb{E}\left[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}W^{iw}\right]\), where \(W \sim W_m^\beta(n, \Sigma)\). When \(iw=0\), it generates an analytical expression of \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}]\).

#### Arguments

- `f`: a vector of nonnegative integers \(f_j\) that represents the power for \(\mbox{tr}(W^j)\), \(j=1,\ldots, r\)
- `iw`: Power of \(W\)
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)
- `latex`: The type of output
  - `TRUE`: LaTeX expression
  - `FALSE`: Dataframe (default)

#### Output

When \(iw = 0\), the output is an analytical expression of \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}]\). When \(iw \neq 0\), the output is an analytical expression of \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^j)^{f_j}W^{iw}]\). If `latex = FALSE` (default), the output is a data frame that stores the coefficients for the analytical expression. If `latex = TRUE`, the output is a \(\LaTeX\) formatted string of the result in terms of \(n\) and \(\Sigma\).

#### Examples

    # Example 1: For E[tr(W)^4] with W ~ W_m^1(n,Sigma), represented as a dataframe:
    wishmom_sym(4) # iw = 0, for real Wishart distribution
    #>     kappa h_kappa
    #> 1       4      48
    #> 2     3,1     32n
    #> 3     2,2     12n
    #> 4   2,1,1   12n^2
    #> 5 1,1,1,1     n^3

    # Example 2: For E[tr(W)*tr(W^2)W] with W ~ W_m^1(n,Sigma), represented as a dataframe:
    wishmom_sym(c(1,1), 1) # iw = 1, for real Wishart distribution
    #>   i   rho          c
    #> 1 1     3    4n^2+4n
    #> 2 1   2,1 n^3+n^2+4n
    #> 3 1 1,1,1        n^2
    #> 4 2     2  2n^2+2n+8
    #> 5 2   1,1         6n
    #> 6 3     1 4n^2+4n+16
    #> 7 4  <NA>     24n+24

    # Example 3: For E[tr(W)^4] with W ~ W_m^2(n,Sigma), represented as a LaTeX string:
    writeLines(wishmom_sym(4, 0, 1, latex=TRUE)) # iw = 0, for complex Wishart distribution
    #> (6)p_{(4)}(\Sigma)
    #> +(8n)p_{(3,1)}(\Sigma)
    #> +(3n)p_{(2,2)}(\Sigma)
    #> +(6n^2)p_{(2,1,1)}(\Sigma)
    #> +(n^3)p_{(1,1,1,1)}(\Sigma)

    # Example 4: For E[tr(W)*tr(W^2)W] with W ~ W_m^2(n,Sigma), represented as a LaTeX string:
    writeLines(wishmom_sym(c(1, 1), 1, 1, latex=TRUE)) # iw = 1, for complex Wishart distribution
    #> [(2n^2)p_{(3)}(\Sigma)+(n^3+2n)p_{(2, 1)}(\Sigma)+(n^2)p_{(1, 1, 1)}(\Sigma)]\Sigma
    #> +[(n^2+2)p_{(2)}(\Sigma)+(3n)p_{(1, 1)}(\Sigma)]\Sigma^2
    #> +(2n^2+4)p_{(1)}(\Sigma)\Sigma^3
    #> +(6n)\Sigma^4

## Moments of Inverse \(\beta\)-Wishart:

### iwishmom()

The function `iwishmom()` computes \(\mathbb{E}\left[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}W^{-iw}\right]\) numerically, where \(W \sim W_m^\beta(n, \Sigma)\). When \(iw=0\), it computes \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}]\).

#### Arguments

- `n`: degrees of freedom of the \(\beta\)-Wishart distribution
- `S`: covariance matrix of the \(\beta\)-Wishart distribution
- `f`: a vector of nonnegative integers \(f_j\) that represents the power for \(\mbox{tr}(W^{-j})\), \(j=1,\ldots, r\)
- `iw`: Power of \(W^{-1}\)
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

When \(iw=0\), it returns \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}]\). When \(iw \neq 0\), it returns \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}W^{-iw}]\).

#### Examples

    # Example 1: For E[tr(W^{-1})^2] with W ~ W_m^1(n,S), where n and S are defined below:
    n <- 20
    S <- matrix(c(25, 49,
                  49, 109), nrow=2, ncol=2)
    iwishmom(n, S, 2) # iw = 0, for real Wishart distribution
    #> [1] 0.0006680892

    # Example 2: For E[tr(W^{-1})^2*tr(W^{-3})W^{-2}] with W ~ W_m^1(n,S), where n and S are defined below:
    n <- 20
    S <- matrix(c(25, 49,
                  49, 109), nrow=2, ncol=2)
    iwishmom(n, S, c(2, 0, 1), 2, 2) # iw = 2, for real Wishart distribution
    #>               [,1]          [,2]
    #> [1,]  1.328434e-10 -6.101692e-11
    #> [2,] -6.101692e-11  2.824292e-11

    # Example 3: For E[tr(W^{-1})^2*tr(W^{-3})] with W ~ W_m^2(n,S), where n and S are defined below:
    n <- 20
    S <- matrix(c(25, 49 + 2i,
                  49 - 2i, 109), nrow=2, ncol=2)
    iwishmom(n, S, c(2, 0, 1), 0, 1) # iw = 0, for complex Wishart distribution
    #> [1] 1.17985e-08

    # Example 4: For E[tr(W^{-1})*tr(W^{-2})^2*tr(W^{-3})^2*W^{-1}] with W ~ W_m^2(n,S), where n and S are defined below:
    n <- 30
    S <- matrix(c(25, 49 + 2i,
                  49 -2i, 109), nrow=2, ncol=2)
    iwishmom(n, S, c(1, 2, 2), 1, 1) # iw = 1, for complex Wishart distribution
    #>                             [,1]                        [,2]
    #> [1,]  1.348928e-21+0.000000e+00i -6.116211e-22+2.496413e-23i
    #> [2,] -6.116211e-22-2.496413e-23i  3.004350e-22+0.000000e+00i

### iwishmom_sym()

The function `iwishmom_sym()` generates an analytical expression of \(\mathbb{E}\left[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}W^{-iw}\right]\), where \(W \sim W_m^\beta(n, \Sigma)\). When \(iw=0\), it generates an analytical expression of \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}]\).

#### Arguments

- `f`: a vector of nonnegative integers \(f_j\) that represents the power for \(\mbox{tr}(W^{-j})\), \(j=1,\ldots, r\)
- `iw`: Power of \(W^{-1}\)
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)
- `latex`: The type of output
  - `TRUE`: LaTeX expression
  - `FALSE`: Dataframe (default)

#### Output

When \(iw = 0\), the output is an analytical expression of \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}]\). When \(iw \neq 0\), the output is an analytical expression of \(\mathbb{E}[\prod_{j=1}^r \mbox{tr}(W^{-j})^{f_j}W^{-iw}]\). If `latex = FALSE` (default), the output is a data frame that stores the coefficients for the analytical expression. If `latex = TRUE`, the output is a \(\LaTeX\) formatted string of the result in terms of \(\tilde{n}\) and \(\Sigma\), where \(\tilde{n} = n-m+1-\alpha\) and \(m\) is the dimension of the \(\beta\)-Wishart distribution.

#### Examples

    # Example 1: For E[tr(W^{-1})^4] with W ~ W_m^1(n,Sigma), represented as a dataframe:
    iwishmom_sym(4) # iw = 0, for real Wishart distribution
    #> $dataframe
    #>     kappa      h_kappa_numerator
    #> 1       4              240n1-288
    #> 2     3,1           64n1^2-256n1
    #> 3     2,2        12n1^2-60n1+216
    #> 4   2,1,1  12n1^3-72n1^2+36n1+72
    #> 5 1,1,1,1 n1^4-7n1^3+n1^2+35n1-6
    #>
    #> $denominator
    #> [1] "n1^8-7n1^7-11n1^6+107n1^5+34n1^4-388n1^3-24n1^2+288n1"

    # Example 2: For E[tr(W^{-1})*tr(W^{-2})W^{-1}] with W ~ W_m^1(n,Sigma), represented as a dataframe:
    iwishmom_sym(c(1,1), 1) # iw = 1, for real Wishart distribution
    #> $dataframe
    #>   i   rho          c_numerator
    #> 1 1     3 4n1^3-16n1^2-20n1+24
    #> 2 1   2,1 n1^4-6n1^3+3n1^2+6n1
    #> 3 1 1,1,1     n1^3-6n1^2+3n1+6
    #> 4 2     2    2n1^3-10n1^2+36n1
    #> 5 2   1,1       10n1^2-42n1+36
    #> 6 3     1 4n1^3-16n1^2+60n1-72
    #> 7 4  <NA>          40n1^2-48n1
    #>
    #> $denominator
    #> [1] "n1^8-7n1^7-11n1^6+107n1^5+34n1^4-388n1^3-24n1^2+288n1"

    # Example 3: For E[tr(W^{-1})^4] with W ~ W_m^2(n,Sigma), represented as a LaTeX string:
    writeLines(iwishmom_sym(4, 0, 1, latex=TRUE)) # iw = 0, for complex Wishart distribution
    #> [(30\tilde{n})p_{(4)}(\Sigma^{-1})
    #> +(16\tilde{n}^2-24)p_{(3,1)}(\Sigma^{-1})
    #> +(3\tilde{n}^2+18)p_{(2,2)}(\Sigma^{-1})
    #> +(6\tilde{n}^3-24\tilde{n})p_{(2,1,1)}(\Sigma^{-1})
    #> +(\tilde{n}^4-8\tilde{n}^2+6)p_{(1,1,1,1)}(\Sigma^{-1})]
    #> /(\tilde{n}^8-14\tilde{n}^6+49\tilde{n}^4-36\tilde{n}^2)

    # Example 4: For E[tr(W^{-1})*tr(W^{-2})W^{-1}] with W ~ W_m^2(n,Sigma), represented as a LaTeX string:
    writeLines(iwishmom_sym(c(1, 1), 1, 1, latex=TRUE)) # iw = 1, for complex Wishart distribution
    #> [[(2\tilde{n}^3-8\tilde{n})p_{(3)}(\Sigma^{-1})+(\tilde{n}^4-4\tilde{n}^2)p_{(2,1)}(\Sigma^{-1})+(\tilde{n}^3-4\tilde{n})p_{(1,1,1)}(\Sigma^{-1})]\Sigma^{-1}
    #> +[(\tilde{n}^3+6\tilde{n})p_{(2)}(\Sigma^{-1})+(5\tilde{n}^2)p_{(1,1)}(\Sigma^{-1})]\Sigma^{-2}
    #> +(2\tilde{n}^3+12\tilde{n})p_{(1)}(\Sigma^{-1})\Sigma^{-3}
    #> +(10\tilde{n}^2)\Sigma^{-4}]
    #> /(\tilde{n}^8-14\tilde{n}^6+49\tilde{n}^4-36\tilde{n}^2)

# Auxiliary Functions

Below is a list of auxiliary functions that are called by `wishmom`, `iwishmom`, `wishmom_sym`, and `iwishmom_sym`.

### ip_desc()

The function `ip_desc()` generates all integer partitions of a given integer `k` in a reverse lexicographical order.

#### Arguments

- `k`: A positive integer to be partitioned

#### Output

A matrix where each row represents an integer partition of `k`, listed in a reverse lexicographical order.

#### Examples

    # Example 1: List of integer partitions of 3
    ip_desc(3)
    #>      [,1] [,2] [,3]
    #> [1,]    3    0    0
    #> [2,]    2    1    0
    #> [3,]    1    1    1

    # Example 2: List of integer partitions of 5
    ip_desc(5)
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    5    0    0    0    0
    #> [2,]    4    1    0    0    0
    #> [3,]    3    2    0    0    0
    #> [4,]    3    1    1    0    0
    #> [5,]    2    2    1    0    0
    #> [6,]    2    1    1    1    0
    #> [7,]    1    1    1    1    1

### dkmap()

The function `dkmap()` computes the mapping matrix \(D_k\) discussed in Appendix B of Hillier and Kan (2024), modified for the general \(\beta\)-Wishart case. The returned matrix is \(D_k\) but with \(n\) in the diagonal elements removed.

#### Arguments

- `k`: The order of the mapping matrix \(D_k\) (a positive integer)
- `alpha`: The type of \(\beta\)-Wishart distribution (\(\alpha =2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

The mapping matrix \(D_k\) but with \(n\) removed from its diagonal.

#### Examples

    # Example 1: Compute the mapping matrix for k = 2, real Wishart
    dkmap(2)
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    2    1    1    0
    #> [2,]    2    1    0    1
    #> [3,]    4    0    0    0
    #> [4,]    0    4    0    0

    # Example 2: Compute the mapping matrix for k = 1, complex Wishart
    dkmap(1, 1)
    #>      [,1] [,2]
    #> [1,]    0    1
    #> [2,]    1    0

    # Example 3: Compute the mapping matrix for k = 2, quaternion Wishart
    dkmap(2, 1/2)
    #>      [,1] [,2] [,3] [,4]
    #> [1,] -1.0  1.0    1    0
    #> [2,]  0.5 -0.5    0    1
    #> [3,]  1.0  0.0    0    0
    #> [4,]  0.0  1.0    0    0

### denpoly()

The function `denpoly()` computes the coefficients of the denominator polynomial for the elements \(\tilde{\mathcal{H}}_k\) and \(\tilde{\mathcal{C}}_k\). The function returns a vector containing the coefficients in descending powers of \(\tilde{n}\), with the last element being the coefficient of \(\tilde{n}\).

#### Arguments

- `k`: The order of the polynomial (a positive integer)
- `alpha`: The type of \(\beta\)-Wishart distribution (\(\alpha =2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

A vector containing the coefficients of the denominator polynomial in descending powers of \(\tilde{n}\) for the elements of \(\mathcal{\tilde{H}}_k\) and \(\tilde{\mathcal{C}}_k\).

#### Examples

    # Example 1: Compute the denominator polynomial for k = 3 and alpha = 2
    # Output corresponds to the polynomial n1^5-3n1^4-8n1^3+12n1^2+16n1,
    # where n1 is \eqn{\tilde{n}}
    denpoly(3)
    #> [1]  1 -3 -8 12 16

    # Example 2: Compute the denominator polynomial for k = 2 and alpha = 1
    # Output corresponds to the polynomial n1^3-n1, where n1 is \eqn{\tilde{n}}
    denpoly(2, alpha = 1)
    #> [1]  1  0 -1

### qk_coeff()

The function `qk_coeff()` computes the coefficient matrix \(\mathcal{C}_k\), which is obtained based on Corollary 1 of Hillier and Kan (2024), after a modification for the general \(\beta\)-Wishart case. \(\mathcal{C}_k\) is represented as a 3-dimensional array where each slice along the third dimension represents a coefficient matrix of the polynomial in descending powers of \(n\).

#### Arguments

- `k`: The order of the \(\mathcal{C}_k\) matrix
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

A 3-dimensional array representing \(\mathcal{C}_k\), a matrix of constants that allow us to obtain \(\mathbb{E}[p_{\lambda}(W)W^r]\), where \(r+|\lambda|=k\) and \(W \sim W_m^{\beta}(n,\Sigma)\).

#### Examples

    # Example 1:
    qk_coeff(2) # For real Wishart distribution with k = 2
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]    1    1
    #> [2,]    2    0

    # Example 2:
    qk_coeff(3, 1) # For complex Wishart distribution with k = 3
    #> , , 1
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    1    0    0    0
    #> [2,]    0    1    0    0
    #> [3,]    0    0    1    0
    #> [4,]    0    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    0    2    1    0
    #> [2,]    2    0    0    1
    #> [3,]    2    0    0    1
    #> [4,]    0    2    1    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    1    0    0    1
    #> [2,]    0    1    1    0
    #> [3,]    0    2    0    0
    #> [4,]    2    0    0    0

    # Example 3:
    qk_coeff(2, 1/2) # For quaternion Wishart distribution with k = 2
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,] -0.5    1
    #> [2,]  0.5    0

### wish_ps()

The function `wish_ps()` computes the coefficient matrix \(\mathcal{H}_k\) that allows us to compute \(\mathbb{E}[p_{\kappa}(W)]\), which is obtained based on Proposition 5 of Hillier and Kan (2024), after a modification for the general \(\beta\)-Wishart case. \(\mathcal{H}_k\) is represented as a 3-dimensional array where each slice along the third dimension represents a coefficient matrix of the polynomial in descending powers of \(n\).

#### Arguments

- `k`: The order of the \(\mathcal{H}_k\) matrix
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

A 3-dimensional array representing \(\mathcal{H}_k\), a matrix of constants that allows us to obtain \(\mathbb{E}[p_{\kappa}(W)]\), where \(|\kappa|=k\) and \(W \sim W_m^{\beta}(n,\Sigma)\).

#### Examples

    # Example 1:
    wish_ps(3) # For real Wishart distribution with k = 3
    #> , , 1
    #>
    #>      [,1] [,2] [,3]
    #> [1,]    1    0    0
    #> [2,]    0    1    0
    #> [3,]    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3]
    #> [1,]    3    3    0
    #> [2,]    4    1    1
    #> [3,]    0    6    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3]
    #> [1,]    4    3    1
    #> [2,]    4    4    0
    #> [3,]    8    0    0

    # Example 2:
    wish_ps(4, 1) # For complex Wishart distribution with k = 4
    #> , , 1
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    1    0    0    0    0
    #> [2,]    0    1    0    0    0
    #> [3,]    0    0    1    0    0
    #> [4,]    0    0    0    1    0
    #> [5,]    0    0    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0    4    2    0    0
    #> [2,]    3    0    0    3    0
    #> [3,]    4    0    0    2    0
    #> [4,]    0    4    1    0    1
    #> [5,]    0    0    0    6    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    5    0    0    6    0
    #> [2,]    0    7    3    0    1
    #> [3,]    0    8    2    0    1
    #> [4,]    6    0    0    5    0
    #> [5,]    0    8    3    0    0
    #>
    #> , , 4
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0    4    1    0    1
    #> [2,]    3    0    0    3    0
    #> [3,]    2    0    0    4    0
    #> [4,]    0    4    2    0    0
    #> [5,]    6    0    0    0    0

    # Example 3:
    wish_ps(2, 1/2) # For quaternion Wishart distribution with k = 2
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,] -0.5    1
    #> [2,]  0.5    0

### qkn_coeff()

The function `qkn_coeff()` computes the inverse of the coefficient matrix \(\tilde{\mathcal{C}}_k\), which is obtained based on Corollary 2 of Hillier and Kan (2024), after a modification for the general \(\beta\)-Wishart case. \(\tilde{\mathcal{C}}_k^{-1}\) is represented as a 3-dimensional array where each slice along the third dimension represents a coefficient matrix of the polynomial in descending powers of \(\tilde{n}\).

#### Arguments

- `k`: The order of the \(\tilde{\mathcal{C}}_k\) matrix
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

A 3-dimensional array representing \(\tilde{\mathcal{C}}_k^{-1}\), a matrix of constants that allow us to obtain \(\mathbb{E}[p_{\lambda}(W^{-1})W^{-r}]\), where \(r+|\lambda|=k\) and \(W \sim W_m^{\beta}(n,\Sigma)\).

#### Examples

    # Example 1:
    qkn_coeff(2) # For real Wishart distribution with k = 2
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]   -1   -1
    #> [2,]   -2    0

    # Example 2:
    qkn_coeff(3, 1) # For complex Wishart distribution with k = 3
    #> , , 1
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    1    0    0    0
    #> [2,]    0    1    0    0
    #> [3,]    0    0    1    0
    #> [4,]    0    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    0   -2   -1    0
    #> [2,]   -2    0    0   -1
    #> [3,]   -2    0    0   -1
    #> [4,]    0   -2   -1    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    1    0    0    1
    #> [2,]    0    1    1    0
    #> [3,]    0    2    0    0
    #> [4,]    2    0    0    0

    # Example 3:
    qkn_coeff(2, 1/2) # For quaternion Wishart distribution with k = 2
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]  0.5   -1
    #> [2,] -0.5    0

### iwish_ps()

The function `iwish_ps()` computes the inverse of the coefficient matrix \(\tilde{\mathcal{H}}_k\) that allows us to compute \(\mathbb{E}[p_{\kappa}(W^{-1})]\), which is obtained based on Eq.(82) of Hillier and Kan (2024), after a modification for the general \(\beta\)-Wishart case. \(\tilde{\mathcal{H}}_k^{-1}\) is represented as a 3-dimensional array where each slice along the third dimension represents a coefficient matrix of the polynomial in descending powers of \(\tilde{n}\).

#### Arguments

- `k`: The order of the \(\tilde{\mathcal{H}}_k\) matrix
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

A 3-dimensional array representing \(\tilde{\mathcal{H}}_k^{-1}\), a matrix of constants that allows us to obtain \(\mathbb{E}[p_{\kappa}(W^{-1})]\), where \(|\kappa|=k\) and \(W \sim W_m^{\beta}(n,\Sigma)\).

#### Examples

    # Example 1:
    iwish_ps(3) # For real Wishart distribution with k = 3
    #> , , 1
    #>
    #>      [,1] [,2] [,3]
    #> [1,]    1    0    0
    #> [2,]    0    1    0
    #> [3,]    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3]
    #> [1,]   -3   -3    0
    #> [2,]   -4   -1   -1
    #> [3,]    0   -6    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3]
    #> [1,]    4    3    1
    #> [2,]    4    4    0
    #> [3,]    8    0    0

    # Example 2:
    iwish_ps(4, 1) # For complex Wishart distribution with k = 4
    #> , , 1
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    1    0    0    0    0
    #> [2,]    0    1    0    0    0
    #> [3,]    0    0    1    0    0
    #> [4,]    0    0    0    1    0
    #> [5,]    0    0    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0   -4   -2    0    0
    #> [2,]   -3    0    0   -3    0
    #> [3,]   -4    0    0   -2    0
    #> [4,]    0   -4   -1    0   -1
    #> [5,]    0    0    0   -6    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    5    0    0    6    0
    #> [2,]    0    7    3    0    1
    #> [3,]    0    8    2    0    1
    #> [4,]    6    0    0    5    0
    #> [5,]    0    8    3    0    0
    #>
    #> , , 4
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0   -4   -1    0   -1
    #> [2,]   -3    0    0   -3    0
    #> [3,]   -2    0    0   -4    0
    #> [4,]    0   -4   -2    0    0
    #> [5,]   -6    0    0    0    0

    # Example 3:
    iwish_ps(2, 1/2) # For quaternion Wishart distribution with k = 2
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]  0.5   -1
    #> [2,] -0.5    0

### qkn_coeffr()

The function `qkn_coeffr()` computes the coefficient matrix \(\tilde{\mathcal{C}}_k\) for the general \(\beta\)-Wishart case. Elements of \(\tilde{\mathcal{C}}_k\) are rational polynomials of \(\tilde{n}\). The output contains two components: `c` and `den`. `c` is a 3-dimensional array where each slice along the third dimension represents a coefficient matrix of the numerator polynomial in descending powers of \(\tilde{n}\), and `den` is a vector that represents the coefficients of the denominator polynomial in descending power of \(\tilde{n}\).

#### Arguments

- `k`: The order of the \(\tilde{\mathcal{C}}_k\) matrix
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

The output has two components: `c` and `den`. `c` is a 3-dimensional array representing the numerator polynomial of \(\tilde{\mathcal{C}}_k\), and `den` is a vector representing the denominator polynomial of \(\tilde{\mathcal{C}}_k\), where \(\tilde{\mathcal{C}}_k\) is a matrix of constants that allow us to obtain \(\mathbb{E}[p_{\lambda}(W^{-1})W^{-r}]\), where \(r+|\lambda|=k\) and \(W \sim W_m^{\beta}(n,\Sigma)\).

#### Examples

    # Example 1:
    qkn_coeffr(2) # For real Wishart distribution with k = 2
    #> $c
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]    0    1
    #> [2,]    2   -1
    #>
    #>
    #> $den
    #> [1]  1 -1 -2

    # Example 2:
    qkn_coeffr(3, 1) # For complex Wishart distribution with k = 3
    #> $c
    #> , , 1
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    1    0    0    0
    #> [2,]    0    1    0    0
    #> [3,]    0    0    1    0
    #> [4,]    0    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    0    2    1    0
    #> [2,]    2    0    0    1
    #> [3,]    2    0    0    1
    #> [4,]    0    2    1    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3] [,4]
    #> [1,]    0    0    0    2
    #> [2,]    0    0    2    0
    #> [3,]    0    4   -2    0
    #> [4,]    4    0    0   -2
    #>
    #>
    #> $den
    #> [1]  1  0 -5  0  4

    # Example 3:
    qkn_coeffr(2, 1/2) # For quaternion Wishart distribution with k = 2
    #> $c
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]  0.0  1.0
    #> [2,]  0.5  0.5
    #>
    #>
    #> $den
    #> [1]  1.0  0.5 -0.5

### iwish_psr()

The function `iwish_psr()` computes the coefficient matrix \(\tilde{\mathcal{H}}_k\) for the general \(\beta\)-Wishart case. Elements of \(\tilde{\mathcal{H}}_k\) are rational polynomials of \(\tilde{n}\). The output contains two components: `c` and `den`. `c` is a 3-dimensional array where each slice along the third dimension represents a coefficient matrix of the numerator polynomial in descending powers of \(\tilde{n}\), and `den` is a vector that represents the coefficients of the denominator polynomial in descending power of \(\tilde{n}\).

#### Arguments

- `k`: The order of the \(\tilde{\mathcal{C}}_k\) matrix
- `alpha`: The type of Wishart distribution (\(\alpha=2/\beta\)):
  - `1/2`: Quaternion Wishart
  - `1`: Complex Wishart
  - `2`: Real Wishart (default)

#### Output

The output has two components: `c` and `den`. `c` is a 3-dimensional array representing the numerator polynomial of \(\tilde{\mathcal{H}}_k\), and `den` is a vector representing the denominator polynomial of \(\tilde{\mathcal{H}}_k\), where \(\tilde{\mathcal{H}}_k\) is a matrix of constants that allow us to obtain \(\mathbb{E}[p_{\lambda}(W^{-1})]\), where \(|\lambda|=k\) and \(W \sim W_m^{\beta}(n,\Sigma)\).

#### Examples

    # Example 1:
    iwsih_psr(2) # For real Wishart distribution with k = 2
    #> $c
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]    0    1
    #> [2,]    2   -1
    #>
    #>
    #> $den
    #> [1]  1 -1 -2

    # Example 2:
    iwish_psr(4, 1) # For complex Wishart distribution with k = 4
    #> $c
    #> , , 1
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    1    0    0    0    0
    #> [2,]    0    1    0    0    0
    #> [3,]    0    0    1    0    0
    #> [4,]    0    0    0    1    0
    #> [5,]    0    0    0    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0    4    2    0    0
    #> [2,]    3    0    0    3    0
    #> [3,]    4    0    0    2    0
    #> [4,]    0    4    1    0    1
    #> [5,]    0    0    0    6    0
    #>
    #> , , 3
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    1    0    0   10    0
    #> [2,]    0    3    6    0    2
    #> [3,]    0   16   -6    0    1
    #> [4,]   10    0    0    1    0
    #> [5,]    0   16    3    0   -8
    #>
    #> , , 4
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0    4   -3    0    5
    #> [2,]    3    0    0    3    0
    #> [3,]   -6    0    0   12    0
    #> [4,]    0    4    6    0   -4
    #> [5,]   30    0    0  -24    0
    #>
    #> , , 5
    #>
    #>      [,1] [,2] [,3] [,4] [,5]
    #> [1,]    0    0    0    0    0
    #> [2,]    0   12   -9    0   -3
    #> [3,]    0  -24   18    0    6
    #> [4,]    0    0    0    0    0
    #> [5,]    0  -24   18    0    6
    #>
    #>
    #> $den
    #> [1]   1   0 -14   0  49   0 -36   0

    # Example 3:
    iwish_psr(2, 1/2) # For quaternion Wishart distribution with k = 2
    #> $c
    #> , , 1
    #>
    #>      [,1] [,2]
    #> [1,]    1    0
    #> [2,]    0    1
    #>
    #> , , 2
    #>
    #>      [,1] [,2]
    #> [1,]  0.0  1.0
    #> [2,]  0.5  0.5
    #>
    #>
    #> $den
    #> [1]  1.0  0.5 -0.5

# References

Díaz-García, José and Gutiérrez-Jáimez, Ramón (2011). On Wishart distribution: som extension. Linear Algebra and its Applications, 435, 1296-1310.

Drensky, Vesselin, Edelman, Alan, Genoar, Tierney, Kan, Raymond, and Koev, Plamen (2021). The Densities and Distributions of the Largest Eigenvalue and the Trace of a Beta-Wishart Matrix. Random Matrices: Theory and Applications, 10(1).

Letac, Gérard, and Massam, Héelène (2004). All invariant moments of the Wishart distribution. Scandinavian Journal of Statistics, 31, 295-318.

Hillier, Grant, and Kan, Raymond (2024). On the expectations of equivariant matrix-valued functions of Wishart and inverse Wishart Matrices. Scandinavian Journal of Statistics, 51, 697-723.