有可能用任意后验函数来定义斯坦模型吗
Is it possible to define a Stan model in terms of an arbitrary posterior function?
是否可以根据任意后验函数定义Stan模型?
我想的是类似于MCMCPack的MCMCmetrop1R()功能,其中用户定义了一个任意的后验函数。如果有一个很好的例子来说明如何使用C++API,我可以深入研究它
从某种意义上说,定义任意后验分布是Stan语言中所能做的一切。但是,如果你特别指的是后验分布,它不是Stan中已经定义的分布的组成,那么你可以使用increment_log_prob
函数向对数后验添加项,无论它们是数据可能性的一部分还是参数的先验。请参阅用户手册中题为"自定义概率函数"answers"用户定义函数"的章节。
在stan-users-Google组的FAQ下有一个例子,尽管它使用了不推荐使用的直接操作lp__
符号的语法,而不是使用increment_log_prob
函数来做同样的事情。现在.stan文件将是
data {
int<lower=1> N;
real<lower=0,upper=1> x[N];
}
transformed data {
real sum_log_x; // calculate this constant only once
sum_log_x <- 0.0;
for (i in 1:N)
sum_log_x <- sum_log_x + log(x[i]);
}
parameters {
real<lower=0> a;
real<lower=0> b;
}
model {
real summands[N];
// put priors on a and b here if you want
// log-likelihood
increment_log_prob(N * (log(a) + log(b)) + (a - 1) * sum_log_x);
for (i in 1:N) {
summands[i] <- (b - 1) * log1m(pow(x[i],a)); // log1m(y) := log(1 - y)
}
increment_log_prob(summands);
}
相关文章:
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 基于 QML 模型的组件在 android 上具有未定义的 modelData
- 目标c是否需要一个标准来定义像c++11这样的内存模型
- 将自定义 Java 数据模型传递给我的本机代码
- 如何在 C++ 中将火炬模型定义为函数的输入
- 如何使用 word 对象模型中的C++接口在 word 中添加自定义 XML 艺术
- 使用自定义模型从Qtreeview删除行
- 如何基于类定义构建对话框窗口?(比如Django的模型系统)
- Qt自定义树模型显示正确,但有缺陷且速度慢
- DirectX Toolkit加载了带有自定义HLSL着色器"顶点"着色器输入签名的模型
- 在 OpenCv 中将自定义模型设置为 CvSVM
- Qt:模型/视图-定义项目持有日期的格式
- 在 c++ 中为 Tensorflow 模型定义一个feed_dict
- Cocos2d-x自定义内存模型的优点是什么
- 如何在QT中为自定义模型实现removeRow()函数
- 在Qt中将数据从QAbstractTableModel初始化为自定义模型
- 渲染自定义模型时出现c++Directx 11设备上下文错误
- 当单击视图中的项时,从另一个小部件访问自定义模型数据
- resizeColumnToContent不能与自定义模型和委托一起工作
- 在QTableView的自定义模型中添加和删除项目