如何解决使用 STAN 交叉验证贝叶斯模型中的选定参数
为了简化我的问题,我使用 STAN 拟合线性模型,y~ normal(a+b*x,sigma)。我只想交叉验证估计的 b 和 sigma,这意味着仍然需要使用验证数据集来估计截距。但是,STAN 没有剪切操作,所以我不知道如何执行此操作。 感谢您的帮助。
STAN 代码如下,
data{
int nTrain;
int nTest;
int nBeta;
matrix[nTrain,nBeta] xTrain;
matrix[nTest,nBeta] xTest;
vector[nTrain] yTrain;
vector[nTest] yTest;
}
parameters{
vector[nTrain] aTrain;
vector[nTest] aTest;
vector[nBeta] b;
real<lower=0> tau;
}
model{
yTrain ~ normal(aTrain+XTrain*b,1/tau);
yTest ~ normal (aTest+XTest*b,1/tau);//I kNow this statement is wrong because test data inference the estimation of b and tau but do not kNow how to avoid this in stan
aTrain~ normal(0,10);
aTest ~ normal(0,10);
b ~ normal(0,10);
tau ~ gamma(0.01,0.01);
}
generated quantities{
real yPred[nTest]=normal_rng(aTest+XTest*b,1/tau);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。