Marginal distribution of a single correlation from an LKJ distribution
Marginal distribution for the correlation in a single cell from a correlation matrix distributed according to an LKJ distribution.
dlkjcorr_marginal(x, K, eta, log = FALSE) plkjcorr_marginal(q, K, eta, lower.tail = TRUE, log.p = FALSE) qlkjcorr_marginal(p, K, eta, lower.tail = TRUE, log.p = FALSE) rlkjcorr_marginal(n, K, eta)
x | 
 vector of quantiles.  | 
K | 
 Dimension of the correlation matrix. Must be greater than or equal to 2.  | 
eta | 
 Parameter controlling the shape of the distribution  | 
log | 
 logical; if TRUE, probabilities p are given as log(p).  | 
q | 
 vector of quantiles.  | 
lower.tail | 
 logical; if TRUE (default), probabilities are P[X ≤ x] otherwise, P[X > x].  | 
log.p | 
 logical; if TRUE, probabilities p are given as log(p).  | 
p | 
 vector of probabilities.  | 
n | 
 number of observations. If   | 
The LKJ distribution is a distribution over correlation matrices with a single parameter, eta. For a given eta and a KxK correlation matrix R:
R ~ LKJ(eta)
Each off-diagonal entry of R, r[i,j]: i != j, has the following marginal distribution (Lewandowski, Kurowicka, and Joe 2009):
(r[i,j] + 1)/2 ~ Beta(eta - 1 + K/2, eta - 1 + K/2)
In other words, r[i,j] is marginally distributed according to the above Beta distribution scaled into (-1,1).
dlkjcorr_marginal gives the density
plkjcorr_marginal gives the cumulative distribution function (CDF)
qlkjcorr_marginal gives the quantile function (inverse CDF)
rlkjcorr_marginal generates random draws.
The length of the result is determined by n for rlkjcorr_marginal, and is the maximum of the lengths of
the numerical arguments for the other functions.
The numerical arguments other than n are recycled to the length of the result. Only the first elements
of the logical arguments are used.
Lewandowski, D., Kurowicka, D., & Joe, H. (2009). Generating random correlation matrices based on vines and extended onion method. Journal of Multivariate Analysis, 100(9), 1989–2001. doi: 10.1016/j.jmva.2009.04.008.
parse_dist() and marginalize_lkjcorr() for parsing specs that use the
LKJ correlation distribution and the stat_dist_slabinterval() family of stats for visualizing them.
library(dplyr)
library(ggplot2)
library(forcats)
theme_set(theme_ggdist())
expand.grid(
  eta = 1:6,
  K = 2:6
) %>%
  ggplot(aes(y = fct_rev(ordered(eta)), dist = "lkjcorr_marginal", arg1 = K, arg2 = eta)) +
  stat_dist_slab() +
  facet_grid(~ paste0(K, "x", K)) +
  labs(
    title = paste0(
      "Marginal correlation for LKJ(eta) prior on different matrix sizes:\n",
      "dlkjcorr_marginal(K, eta)"
    ),
    subtitle = "Correlation matrix size (KxK)",
    y = "eta",
    x = "Marginal correlation"
  ) +
  theme(axis.title = element_text(hjust = 0))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.