我正在尝试从该模型的后部进行采样: 在此处输入图像描述
x 为 10x1 向量,mu 为 10x1 向量,sigma 为 10x10 矩阵,psi_0 为 10x10 矩阵,粗体 1 为 5x1 单位向量,其余为标量。F 和 E 是我们分析中两组股票的下标(我们正在进行投资组合优化)。我尝试运行以下代码:
stancode <- "data {
int<lower=1> T;
matrix[T,10] data_total;
real<lower=0> sigma_squared;
real k;
real<lower=0> r_squared;
matrix[10,10] psi;
}
parameters {
vector[10] mu_var;
matrix[10,10] Sigma_var;
real alpha_energy_var;
real alpha_fin_var;
real beta;
}
transformed parameters {
vector[10] mu_mean;
mu_mean = [alpha_fin_var,alpha_fin_var,alpha_fin_var,alpha_fin_var,alpha_fin_var,alpha_energy_var,alpha_energy_var,alpha_energy_var,alpha_energy_var,alpha_energy_var]';
}
model {
target += normal_lpdf(beta | k, sqrt(r_squared));
target += inv_wishart_lpdf(Sigma_var | 12, psi);
target += normal_lpdf(alpha_energy_var | beta, sqrt(sigma_squared));
target += normal_lpdf(alpha_fin_var | beta, sqrt(sigma_squared));
target += multi_normal_lupdf(mu_var | mu_mean, Sigma_var);
target += multi_normal_lupdf(data_total | mu_var,Sigma_var);
}"
stanmodel <- stan_model(model_code = stancode, model_name="stanmodel")
(data_total 为数据矩阵,加上“_var”后缀只是为了与其余代码保持一致)
最后一行给了我一个错误: PARSER EXPECTED: "(",关于模型代码的倒数第二行。我在 Stack 上看到这种错误也让更多的专家开发人员感到困惑。
谁能帮我?我真的不明白出了什么问题。