// linear_model_latent_factors.stan data { int n; // number of observations int p; // number of grid points vector[n] y; // responses matrix[n, p] X; // factor matrix int q; // number of latent factors real u; real v; real a; real b; } transformed data { matrix[n, n] vXXTI = v * X * X' + identity_matrix(n); } parameters { matrix[n, q] Z; // latent factor matrix } model { matrix[n, n] S = u * Z * Z' + vXXTI; y ~ multi_student_t(2*a,rep_vector(0, n), b * S / a); }