| ppi_param_tools {scorematchingad} | R Documentation |
PPI Parameter Tools
Description
The default parameterisation of the PPI model is a symmetric covariance-like matrix A_L, a location-like vector b_L and a set of Dirichlet exponents \beta. For p components, A_L has p-1 rows, b_L is a vector with p-1 elements and \beta is a vector with p elements.
For score matching estimation this form of the parameters must be converted into a single parameter vector using ppi_paramvec().
ppi_paramvec() also includes easy methods to set parameters to NA for estimation with ppi() (in ppi() the NA-valued elements are estimated and all other elements are fixed).
The reverse of ppi_paramvec() is ppi_parammats().
An alternative parametrisation of the PPI model uses a single p by p matrix A^* instead of A_L and b_L, and for identifiability A^* is such that 1^T A^* 1 = 0 where 1=(1,1,...,1) and 0=(0,0,..., 0) (Scealy and Wood 2023).
Convert between parametrisations using ppi_toAstar() and ppi_fromAstar().
Usage
ppi_paramvec(
p = NULL,
AL = NULL,
bL = NULL,
Astar = NULL,
beta = NULL,
betaL = NULL,
betap = NULL
)
ppi_parammats(paramvec)
ppi_toAstar(AL, bL)
ppi_fromAstar(Astar)
Arguments
p |
The number of components. If |
AL |
Either |
bL |
Either |
Astar |
The |
beta |
Either |
betaL |
Either |
betap |
Either |
paramvec |
A PPI parameter vector, typically created by |
Details
ppi_paramvec() returns a vector starting with the diagonal elements of A_L, then the off-diagonal elements extracted by upper.tri() (which extracts elements of A_L along each row, left to right, then top to bottom), then b_L, then \beta.
The Astar parametrisation rewrites the PPI density as proportional to
\exp(z^TA^*z)\prod_{i=1}^p z_i^{\beta_i},
where A^* (Astar) is a p by p matrix.
Because z lies in the simplex (in particular \sum z_i = 1), the density is the same regardless of the value of 1^T A^* 1=sum(Astar), where 1 is the vector of ones. Thus A_L and b_L specify A^* up to an additive factor. In the conversion ppi_toAstar(), A^* is returned such that 1^T A^* 1 = 0.
NULL values or NA elements are not allowed for ppi_toAstar() and ppi_fromAstar().
Value
ppi_paramvec(): a vector of length p + (p-1)(2 + (p-1)/2).
ppi_parammats(): A named list of A_L, b_L, and \beta.
ppi_toAstar(): The matrix A^*.
ppi_fromAstar(): A list of the matrix A_L, the vector b_L and a discarded constant.
PPI Model
The PPI model density is proportional to
\exp(z_L^TA_Lz_L + b_L^Tz_L)\prod_{i=1}^p z_i^{\beta_i},
where p is the dimension of a compositional measurement z, and z_L is z without the final (pth) component.
A_L is a p-1 \times p-1 symmetric matrix that controls the covariance between components.
b_L is a p-1 vector that controls the location within the simplex.
The ith component \beta_i of \beta controls the concentration of density when z_i is close to zero: when \beta_i \geq 0 there is no concentration and \beta_i is hard to identify; when \beta_i < 0 then the probability density of the PPI model increases unboundedly as z_i approaches zero, with the increasing occuring more rapidly and sharply the closer \beta_i is to -1.
See Also
Other PPI model tools:
dppi(),
ppi_robust(),
ppi(),
rppi()
Examples
ppi_paramvec(AL = "diag", bL = 0, betap = -0.5, p = 3)
vec <- ppi_paramvec(AL = rsymmetricmatrix(2), beta = c(-0.8, -0.7, 0))
ppi_parammats(vec)
Astar <- rWishart(1, 6, diag(3))[,,1]
ppi_fromAstar(Astar)
ppi_toAstar(ppi_fromAstar(Astar)$AL, ppi_fromAstar(Astar)$bL)