Skip to content

Commit c6bf4e9

Browse files
Merge pull request #839 from louisfh/issue_809_GP_cov_functions
Issue 809 gp cov functions
2 parents 9599d87 + 343a670 commit c6bf4e9

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

src/bibtex/all.bib

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1867,6 +1867,7 @@ @article{Magnusson+etal:2024:posteriordb
18671867
author={Magnusson, M{\aa}ns and Torgander, Jakob and B{\"u}rkner, Paul-Christian and Zhang, Lu and Carpenter, Bob and Vehtari, Aki},
18681868
journal={arXiv preprint arXiv:2407.04967},
18691869
year={2024}
1870+
}
18701871

18711872
@article{egozcue+etal:2003,
18721873
title={Isometric logratio transformations for compositional data analysis},

src/stan-users-guide/gaussian-processes.qmd

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ data {
183183
array[N] real x;
184184
}
185185
transformed data {
186-
matrix[N, N] K = cov_exp_quad(x, 1.0, 1.0);
186+
matrix[N, N] K = gp_exp_quad_cov(x, 1.0, 1.0);
187187
vector[N] mu = rep_vector(0, N);
188188
for (n in 1:N) {
189189
K[n, n] = K[n, n] + 0.1;
@@ -345,7 +345,7 @@ parameters {
345345
}
346346
model {
347347
matrix[N, N] L_K;
348-
matrix[N, N] K = cov_exp_quad(x, alpha, rho);
348+
matrix[N, N] K = gp_exp_quad_cov(x, alpha, rho);
349349
real sq_sigma = square(sigma);
350350
351351
// diagonal elements
@@ -414,7 +414,7 @@ model {
414414
vector[N] f;
415415
{
416416
matrix[N, N] L_K;
417-
matrix[N, N] K = cov_exp_quad(x, alpha, rho);
417+
matrix[N, N] K = gp_exp_quad_cov(x, alpha, rho);
418418
419419
// diagonal elements
420420
for (n in 1:N) {
@@ -550,12 +550,12 @@ modeled hierarchically.
550550
The implementation of automatic relevance determination in Stan is
551551
straightforward, though it currently requires the user to directly code the
552552
covariance matrix. We'll write a function to generate the Cholesky of the
553-
covariance matrix called `L_cov_exp_quad_ARD`.
553+
covariance matrix called `L_gp_exp_quad_cov_ARD`.
554554

555555

556556
```stan
557557
functions {
558-
matrix L_cov_exp_quad_ARD(array[] vector x,
558+
matrix L_gp_exp_quad_cov_ARD(array[] vector x,
559559
real alpha,
560560
vector rho,
561561
real delta) {
@@ -592,7 +592,7 @@ parameters {
592592
model {
593593
vector[N] f;
594594
{
595-
matrix[N, N] L_K = L_cov_exp_quad_ARD(x, alpha, rho, delta);
595+
matrix[N, N] L_K = L_gp_exp_quad_cov_ARD(x, alpha, rho, delta);
596596
f = L_K * eta;
597597
}
598598
@@ -772,7 +772,7 @@ transformed parameters {
772772
vector[N] f;
773773
{
774774
matrix[N, N] L_K;
775-
matrix[N, N] K = cov_exp_quad(x, alpha, rho);
775+
matrix[N, N] K = gp_exp_quad_cov(x, alpha, rho);
776776
777777
// diagonal elements
778778
for (n in 1:N) {
@@ -858,7 +858,7 @@ transformed parameters {
858858
vector[N] f;
859859
{
860860
matrix[N, N] L_K;
861-
matrix[N, N] K = cov_exp_quad(x, alpha, rho);
861+
matrix[N, N] K = gp_exp_quad_cov(x, alpha, rho);
862862
863863
// diagonal elements
864864
for (n in 1:N) {
@@ -944,17 +944,17 @@ functions {
944944
matrix[N2, N2] cov_f2;
945945
matrix[N2, N2] diag_delta;
946946
matrix[N1, N1] K;
947-
K = cov_exp_quad(x1, alpha, rho);
947+
K = gp_exp_quad_cov(x1, alpha, rho);
948948
for (n in 1:N1) {
949949
K[n, n] = K[n, n] + square(sigma);
950950
}
951951
L_K = cholesky_decompose(K);
952952
K_div_y1 = mdivide_left_tri_low(L_K, y1);
953953
K_div_y1 = mdivide_right_tri_low(K_div_y1', L_K)';
954-
k_x1_x2 = cov_exp_quad(x1, x2, alpha, rho);
954+
k_x1_x2 = gp_exp_quad_cov(x1, x2, alpha, rho);
955955
f2_mu = (k_x1_x2' * K_div_y1);
956956
v_pred = mdivide_left_tri_low(L_K, k_x1_x2);
957-
cov_f2 = cov_exp_quad(x2, alpha, rho) - v_pred' * v_pred;
957+
cov_f2 = gp_exp_quad_cov(x2, alpha, rho) - v_pred' * v_pred;
958958
diag_delta = diag_matrix(rep_vector(delta, N2));
959959
960960
f2 = multi_normal_rng(f2_mu, cov_f2 + diag_delta);
@@ -981,7 +981,7 @@ parameters {
981981
model {
982982
matrix[N1, N1] L_K;
983983
{
984-
matrix[N1, N1] K = cov_exp_quad(x1, alpha, rho);
984+
matrix[N1, N1] K = gp_exp_quad_cov(x1, alpha, rho);
985985
real sq_sigma = square(sigma);
986986
987987
// diagonal elements
@@ -1095,7 +1095,7 @@ parameters {
10951095
model {
10961096
matrix[N, D] f;
10971097
{
1098-
matrix[N, N] K = cov_exp_quad(x, 1.0, rho);
1098+
matrix[N, N] K = gp_exp_quad_cov(x, 1.0, rho);
10991099
matrix[N, N] L_K;
11001100
11011101
// diagonal elements

0 commit comments

Comments
 (0)