【发布时间】:2019-09-03 01:12:29
【问题描述】:
我正在尝试从边缘化高斯混合模型的后验分布进行模拟。这是我的代码:
data {
int<lower=0> d;
int<lower=0> n;
int<lower=0> k;
row_vector[d] y[n];
vector[d] mu0;
cov_matrix[d] sig0;
real<lower=0> alpha;
}
parameters {
vector[d] mu[k];
cov_matrix[d] sig[k];
// simplex[k] pi;
}
model {
cholesky_factor_cov[d] chol_sig[k];
for(i in 1:k)
chol_sig[i]=cholesky_decompose(sig[i]);
vector[k] lps;
for( i in 1:k){
target+= multi_normal_cholesky_lpdf(mu[i] | mu0, chol_sig[i]);
target+= inv_wishart_lpdf(sig[i] | d+10, sig0);
}
for (i in 1:n) {
// lps = log_thet;
for (j in 1:k)
lps[j] = multi_normal_cholesky_lpdf(y[i] | mu[j], chol_sig[j]);
target += log_sum_exp(lps);
}
}
它抛出以下错误:
SYNTAX ERROR, MESSAGE(S) FROM PARSER:
Variable "cholesky_factor_cov" does not exist.
error in 'model728c4ff59f3c_mixture' at line 34, column 22
-------------------------------------------------
32: // }
33: model {
34: cholesky_factor_cov[d] chol_sig[k];
^
35: for(i in 1:k)
-------------------------------------------------
Error in stanc(file = file, model_code = model_code, model_name = model_name, :
failed to parse Stan model 'mixture' due to the above error.
我不能在 STAN 模型中声明“cholesky_factor_cov”类型的变量吗?请帮忙。
【问题讨论】: