- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我读了here可以(我直接解释)调用 Stan来自 C++ 程序的例程。
我有一些复杂的对数似然函数,我用 C++ 编写了这些函数,但我真的不知道如何使用 Stan 语言编写它们。是否可以使用我已经用 C++ 编写的对数似然函数在 Stan 中调用 Monte Carlo 例程?如果有,有这方面的例子吗?
这似乎是一件很自然的事情,但我找不到任何关于如何做到这一点的例子或指示。
最佳答案
经过进一步审查(您可能想取消接受我之前的回答),您可以尝试这样做:在 functions
中编写一个带有用户定义函数的 .stan 程序。具有正确签名(和解析)但基本上什么都不做的 block 。像这样
然后,使用 CmdStan 编译该模型,这将生成一个 .hpp 文件作为中间步骤。编辑
functions {
real foo_log(real[] y, vector beta, matrix X, real sigma) {
return not_a_number(); // replace this after parsing to C++
}
}
data {
int<lower=1> N;
int<lower=1> K;
matrix[N,K] X;
real y[N];
}
parameters {
vector[K] beta;
real<lower=0> sigma;
}
model {
y ~ foo(beta, X, sigma);
// priors here
}foo_log
正文中的 .hpp 文件调用您的模板化 C++ 函数以及 #include 定义您的东西的头文件。然后重新编译并执行二进制文件。
这可能对你有用,但如果你所做的任何事情都有广泛的用处,我们希望你能贡献 C++ 的东西。
关于c++ - 从 C++ 程序调用 Stan 例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862831/
我看到一些示例中使用了 //,但是否还有其他允许的注释字符。 Stan 中的注释字符是什么?什么是完整的评论规则? 最佳答案 来自Stan reference manual : 23.1. Comme
我需要将数据作为具有不同长度的向量列表和具有相同行数但具有不同列数的矩阵列表传递。有没有办法在Rstan中传递数据? 最佳答案 答案本质上是否定的,Stan语言不允许不规则的数据结构,例如不同长度的向
我需要将数据作为具有不同长度的向量列表和具有相同行数但具有不同列数的矩阵列表传递。有没有办法在Rstan中传递数据? 最佳答案 答案本质上是否定的,Stan语言不允许不规则的数据结构,例如不同长度的向
我刚开始学习 stan,有几个问题。我正在尝试在 stan 中做一个有序的 probit 模型。我有一些问题。首先,下面的模型抛出一条错误消息 Stan model does not contain
我现在在 Stan 中学习建模的绳索很有趣。现在我正在努力研究我的受试者间和受试者内混合析因实验设计模型。有不同的受试者组,每个受试者都表示他们对三种不同饮料(水、无咖啡因和咖啡)中的每一种饮料减少咖
我正在尝试使用 RSTAN 拟合随机效应模型。我的设计矩阵有 198 列。它是如此之宽,因为我的原始数据框是一堆因子变量,我将其转换为二进制指标以尝试在 STAN 中拟合模型。我可以使用从一两个预测变
鉴于示例数据 sampleDT 和模型 lm.fit 和 brm.fit 下面,我想: estimate, extract and add to the data frame the values o
我正在使用这里定义的函数:Extreme value analysis and user defined probability functions in Stan for modeling the
我想学习如何在 stan 中使用 Dirichlet 分布。 我有一个表格,其中包含因子变量的六个级别中每个级别的观察总数: counts n factor_var -
有没有办法从 stan 中的偏态正态分布中提取数据?如果不是,有没有办法从正态分布中提取然后转换为偏正态分布? 更新 我在 stan 手册中找到了 y~skew_normal(mu, sigma, a
当从 stan 启动标准示例时 webpage像下面这样: schools_code J; // number of schools real y[J]; // estimated treat
我在学习rstan目前我正在解决 Gelman 的“贝叶斯数据分析”中的练习。作为引用,这是关于第 3 章中的示例 5。 它总是失败: Initialization failed after 100
有没有办法在 Stan 中构造一个带有单纯形列的矩阵?我要构建的模型类似于以下模型,其中我的模型算作狄利克雷多项式: data { int g; int c; int counts[g,
假设我有 gamma=10 的泊松分布。我想拟合一个高斯分布,它可以最小化泊松分布的 KL 散度。这可以通过变分推理来实现。我如何使用 Stan 进行此优化? reference manual有一个关
是否可以根据任意后验函数定义 Stan 模型? 我在想类似于 MCMCPack 的 MCMCmetrop1R() 功能,用户可以在其中定义任意后验函数。如果有一个很好的例子说明如何去做,我愿意深入研究
我是 stan 的新手,我正在实现概率矩阵分解模型。 给定一个用户-项目评分矩阵: item user 1 3 NA 4
我在 PySTAN 工作。假设我的可能性是:p1 * p2 其中p1 ~ N(x, xerr) 和 p2 = 0.823 if t = 0 1 if t = 1 我的模型是: mod
我最近遇到了高斯过程模型,并且碰巧认为它们可能是我实验室一直在研究的问题的解决方案。我有一个关于交叉验证的开放和相关问题,但我想将我的建模/数学问题与我的编程问题分开。因此,这是第二个相关帖子。如果更
我有一个 R 包,它使用 Rcpp 来实现一些内部功能。这些函数不会导出供用户直接访问(请参阅 rcpptest 存储库中的最小可重现示例)。 我现在正尝试将 Stan 代码添加到 src/ 目录,以
根据STAN homepage , STAN 能够进行惩罚最大似然 (BFGS) 优化。我正在使用 R 包 rstan 但我还没有找到如何使用此方法的方法。我试图查看 ?stan 对 stan() 函
我是一名优秀的程序员,十分优秀!