Helpful Stan Functions
Cholesky Correlation Matrix Constraint functions

Functions

vector corr_constrain_lp (vector x)
 
matrix cholesky_corr_constrain_lp (vector y, int K)
 

Detailed Description

Original code is in Stan-math https://github.com/stan-dev/math/blob/develop/stan/math/prim/fun/cholesky_corr_constrain.hpp#L48

vector corr_constrain_lp(vector x) {
int N = num_elements(x);
vector[N] tanh_x = tanh(x);
target += sum(log1m(square(tanh_x)));
return tanh_x;
}
matrix cholesky_corr_constrain_lp(vector y, int K) {
int k_choose_2 = (K * (K - 1)) %/% 2;
vector[k_choose_2] z = corr_constrain_lp(y);
matrix[K, K] x = rep_matrix(0, K, K);
int iter = 0;
x[1, 1] = 1;
for (i in 2 : K) {
real sum_sqs;
iter += 1;
x[i, 1] = z[iter];
sum_sqs = square(x[i, 1]);
if (i > 2) {
for (j in 2 : i - 1) {
iter += 1;
target += 0.5 * log1m(sum_sqs);
x[i, j] = z[iter] * sqrt(1.0 - sum_sqs);
sum_sqs += square(x[i, j]);
}
}
x[i, i] = sqrt(1.0 - sum_sqs);
}
return x;
}
matrix cholesky_corr_constrain_lp(vector y, int K)
Definition: cholesky_corr_constrain.stanfunctions:40
vector corr_constrain_lp(vector x)
Definition: cholesky_corr_constrain.stanfunctions:20

Function Documentation

◆ cholesky_corr_constrain_lp()

matrix cholesky_corr_constrain_lp ( vector  y,
int  K 
)

Cholesky Correlation Matrix Constraint

See https://mc-stan.org/docs/2_27/reference-manual/cholesky-factors-of-correlation-matrices-1.html

Author
Sean Pinkney
Parameters
yVector
KInt
Returns
Cholesky factor of correlation matrix

◆ corr_constrain_lp()

vector corr_constrain_lp ( vector  x)

Correlation Constraint

See https://mc-stan.org/docs/2_27/reference-manual/cholesky-factors-of-correlation-matrices-1.html

Author
Sean Pinkney
Parameters
xVector
Returns
vector \(\in (-1, 1)\)