问题标签 [stan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1162 浏览

r - 如何使用 R 中的 arm 或 rstanarm 包模拟感兴趣的数量?

我想知道如何从使用Rarm中的包或rstanarm包估计的回归模型中模拟感兴趣的数量。我是贝叶斯方法和 R 的新手,并且已经使用Zelig包一段时间了。我之前问过一个类似的问题,但我想知道是否可以使用这些包估计的后验分布来模拟这些数量。

Zelig您可以为独立值设置所需的值,并计算结果变量的结果(预期值、概率等)。一个例子:

因此Zelig将 x 保持在其平均值 (20.56),并在 z = 10 时模拟感兴趣的数量。在这种情况下,y 约为 71。

使用相同的模型arm

并使用rstanarm

有没有办法用这两个包估计的后验分布来模拟 z = 10 和 x 等于它的平均值并得到 y 的期望值?非常感谢!

0 投票
2 回答
3861 浏览

r - 超过 R 中的最大 DLL 数

我正在使用 RStan 从大量高斯过程 (GP) 中进行采样,即使用函数 stan()。对于我适合的每个 GP,都会加载另一个 DLL,这可以通过运行 R 命令看到

我遇到的问题是,因为我需要安装这么多独特的 GP,我超过了可以加载的 DLL 的最大数量,此时我收到以下错误:

据我所知,这是在基本 R 代码的 Rdynload.c 中设置的,如下所示:

所以,我的问题是,可以做些什么来解决这个问题?从源代码构建具有更大 MAX_NUM_DLLS 的 R 不是一种选择,因为我的代码将由不熟悉该过程的合作者运行。我尝试过使用 dyn.unload() 卸载 DLL 的简单方法,希望在再次需要时重新加载它们。卸载工作正常,但是当我再次尝试使用 fit 时,R 毫不奇怪地崩溃并出现如下错误:

我也尝试过分离 RStan,希望 DLL 会被自动卸载,但即使在卸载包后它们仍然存在(正如预期的那样,在分离的帮助中给出以下内容:“分离通常不会卸载任何动态加载的编译代码(DLL)”)。

从这个问题来看,可以在不重新启动 R 的情况下卸载 Rcpp 包 DLL 吗?,似乎library.dynam.unload()在解决方案中可能有一些作用,但我没有成功使用它来卸载 DLL,而且我怀疑在卸载 DLL 后我会遇到与以前相同的段错误。

编辑:添加一个最小的、功能齐全的例子:

R代码:

此代码要求以下模型定义位于文件 gp-sim.stan 的工作目录中(此模型是 Stan 包含的示例之一):

注意:此代码需要相当长的时间才能运行,因为它正在创建约 100 个 Stan 模型。

0 投票
2 回答
874 浏览

stan - stan 中允许的注释字符是什么?

我已经看到//在某些示例中使用过,但还有其他允许的注释字符。

Stan 中的注释字符是什么?全套评论规则是什么?

0 投票
1 回答
391 浏览

stan - 有没有为 Stan 提供语法高亮的 vim 插件?

Vim 中是否有对 Stan 的语法高亮支持?

0 投票
0 回答
468 浏览

r - 如何处理超过 10GB 的 stan 结果

我有一个预测时间序列的模型。所以我只有 5 个参数——然后我用它来计算时间序列,作为生成 7200x3 矩阵的转换参数——然后将其与观察结果进行比较。

到目前为止一切顺利 - 仅进行 100 次迭代时按预期工作。但是现在我使用 SNOW 来并行化这个计算来创建 6x1000 迭代。花了一个小时 - 但看起来不错。唯一的问题是我无法再加载生成的 rdata 文件。它的大小为 11GB - 可能就是这样。

我需要增加模拟的数量——所以我需要找到一种方法来处理这种大小的数据。其他人如何处理这个问题?

代码

(试图做一个简单的例子 - 所以它是可读的)

R 脚本

模型的相关部分

更新

我按照建模语言手册p41中的示例成功地重新组织了代码- 现在不再存储状态空间。不幸的是,我仍然需要这些轨迹(至少在这个开发阶段)。因此,我将保持开放状态,希望有人有一个聪明的解决方案。

0 投票
1 回答
2909 浏览

r - stan/R 中的均匀分布导致抽样误差

我正在学习rstan,目前我正在解决 Gelmans “贝叶斯数据分析”中的练习。作为参考,这是关于第 3 章中的示例 5。

它不断失败:

这是我的 R 代码:

有趣的是 - 如果我将第二个 tru_val 采样更改tru_val[i] ~ normal(o_data[i],0.5);为模型,则评估结果会很好。

到目前为止,我尝试了 stan 代码:

  • 重新排列抽样语句
  • 引入辅助变量
  • 明确地写increment_log_p陈述
  • 更改变量名以防我不小心使用了关键字
  • 在 stan 代码中添加打印语句
  • 将 mu 设置为 10
  • 放松/扩大均匀分布中的约束
  • 以及以上的组合

我注意到一些令人惊讶的事情,因为我打印了 tru_val 的值 - 无论语句的顺序如何 - 我都让它打印大约 0 的值,通常在 -2 和 +2 之间 - 即使我设置mu <- 10; sigma <- 1;(在数据部分)和采样语句tru_val[i] ~ uniform(9.5,10.5). 我真的不明白它是如何获得这些数字的。

我真的希望有人可以对此有所启发。

0 投票
4 回答
1599 浏览

r - 如何在 Stan 中运行机器人模型?

我想在 Stan 中运行稳健的逻辑回归(robit)。该模型在 Gelman & Hill 的“使用回归和多级方法的数据分析”(2006 年,第 124 页)中提出,但我不确定如何实现它。我检查了Stan 的 Github 存储库参考手册,但不幸的是我仍然感到困惑。这是我用来模拟常规逻辑回归的一些代码。我应该添加什么,以便错误跟随,例如,在具有 7 个自由度的分布时?无论如何,如果我运行多级分析,它会是相同的程序吗?

谢谢!

0 投票
1 回答
1101 浏览

r - Stan 错误:需要不受约束的变量声明。发现单纯形

在 Stan 中,我收到以下错误:

我不太明白是什么问题。当我使用real pi[7]而不是simplex[7] pi,我得到了不同的错误:

我也不明白...我的整个代码:

0 投票
2 回答
1314 浏览

r - JAGS 会评估 dcat 的所有父节点,还是只评估需要的一个?

假设我们有以下语句:

让我们这么说吧Y[1] = 5。jags 会评估所有pi[1,1:100]节点,还是唯一需要的节点,即pi[1,5]

根据我的经验,似乎 JAGS 评估所有父节点的效率很低,因为在我摆脱 dcat 后,我​​的模型加速了 3 倍。我必须使用多个 for 循环来处理不同的结果Y[i]

现在我意识到,dcat在 JAGS 中实际上不需要sum(pi[]) = 1,并且dcat它将归一化pi[]以使其总和为 1。这意味着它必须评估所有节点。

这是非常可悲的。是否有任何智能等价物dcat只会评估唯一需要的一个父节点?WinBUGS 和斯坦呢?

0 投票
1 回答
2619 浏览

r - 如何在 STAN 中运行最大似然优化 (BFGS)?

根据STAN 主页,STAN 能够进行惩罚最大似然 (BFGS) 优化。我正在使用 R 包rstan,但我还没有找到任何方法来使用这种方法。我试图查看?stan该函数的帮助stan(),但唯一可用的选项算法是"NUTS"and "HMC"

我正在使用 rstan 2.5.0 版。