问题标签 [hierarchical-bayesian]
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.
r - ChoiceModelR 会改变案例的顺序吗?
我使用 ChoiceModelR 来分析联合设计。每个参与者必须回答 12 个选项集,每个选项集由 3 个选项和无选项组成。6 个变量描述了选择选项。
我的 ChoiceModelR 输入数据如下所示:
参与者 12628880 拥有前 12 * 3 = 36 行,接下来的 36 行属于参与者 12628881,依此类推。
我跑
我得到了所有 846 名参与者和所有 23 个变量的不同实现(不包括每个变量的参考实现)。我得到了 1000 个估计值,符合标准保持值 10。
我的问题:
我担心的是我的参与者的顺序。我希望,什么都没有改变,但我不确定。我希望(属于参与者 12628880)的前 36 行将在(so in )dataChoice_train
的顶层表示。hb.post.baseline$betadraw
hb.post.baseline$betadraw[1,,]
通过这种方式,我可以unique(dataChoice_train)
将参与者 ID 分配给我的 betadraws 文件。
有人可以证实这一点吗?有没有更好/更直接的方法将计算的 beta 分配给参与者?
提前致谢!
regression - 如何修复 MCMChregress 函数中似乎源于 R 参数的错误
我正在尝试使用 MCMChregress 运行贝叶斯分层模型,但不知道如何解决此错误表示的问题。我的代码如下。我认为问题与 R 和 r 参数以及它们与参数数量的关系有关。所以我没有包括数据集。让我知道是否有任何其他信息会有所帮助!
statistics - 当有每项观察时如何获取变量值
我是贝叶斯统计和 pymc3 的新手。在我的问题中,有工人和审稿人。工人被给予一组问题。工人给出的回答由审查者审查。所以评论是可观察的变量。基于这些观察,我需要计算响应的质量、工作人员的能力和审稿人的偏见。评论是二进制正确的(布尔值 1)和不正确的(布尔值 0) 我使用 pymc3 创建了以下模型并使用 find_map 函数来计算想要的变量..
当我对特定响应进行观察时,它正在计算该响应的质量,即工人的能力。它还给出了审稿人偏见的值。但是,如果观察结果类似于 [0,1,1,1,1] 来自多个审阅者。如何分别计算每个审稿人的偏见?
如果我再次观察到 2 个响应。我该如何进行?如何分别获得这些响应的质量?我可以给一个观察组一个时间。但能力只会针对该反应的观察来计算。但是,需要计算给予该人回复的所有评论的能力。帮我!
pymc3 - 为什么我的 PyMC3 分层模型中出现维度不匹配?
这本质上是Doing Bayesian Data Analysis, Second Edition (DBDA2)中的“Multiple Coins from Multiple Mints / Baseball Players”示例。我相信我的 PyMC3 代码在功能上是等效的,但一个有效,另一个无效。这是 PyMC 3.5 版。更详细地说,
假设我有以下数据。每一行都是一个观察:
一枚薄荷,几枚硬币
下面实现了 DBDA2 图 9.7,运行良好:
许多薄荷糖,许多硬币
然而,一旦这变成了一个层次模型(如 DBDA2 图 9.13 所示):
错误是:
因为该模型有 8 个硬币的 8 个 theta,但看到 20 行数据。
但是,如果对数据进行分组,每行代表单个硬币的最终统计数据,如下所示
并且最终的似然变量变成了Binomial,如下
一切正常。现在,后一种形式更有效,通常更受欢迎,但我相信前者也应该有效。所以我认为这主要是 PyMC3 问题(或者更可能是用户错误)。
引用 DBDA 第 1 版,
“BUGS 模型使用二项式似然分布来表示完全正确,而不是使用伯努利分布来进行个别试验。使用二项式只是为了方便缩短程序。如果数据被指定为逐项试验结果如果完全正确,则该模型可以包括一个试验循环并使用伯努利似然函数"
令我困扰的是,在第一个示例中(一个铸币厂,几个硬币),看起来 PyMC3 可以很好地处理单个观察而不是聚合观察。所以我相信第一种形式应该有效,但没有。
代码
http://nbviewer.jupyter.org/github/JWarmenhoven/DBDA-python/blob/master/Notebooks/Chapter%209.ipynb
参考
http://www.databozo.com/deep-in-the-weeds-complex-hierarchical-models-in-pymc3
https://stats.stackexchange.com/questions/157521/is-this-correct-hierarchical-bernoulli-model
r - 如何使用r中的brms包处理面板数据
我有一个面板数据集(随着时间的推移对不同个体的几次观察),我想为其构建一个简单的贝叶斯多级模型。因此,我想使用 brms 包。有谁知道如何处理 brms 包中的面板数据结构,因为我在 brms 包手册中找不到任何关于它的信息。在手册中只有横截面数据集的示例。提前谢谢了!
python - 如何估计高斯混合的一般协方差
我正在尝试使用 PyMC3 估计 3 个补丁高斯混合模型的协方差。均值和协方差完全未知,权重为[1,1,1]
。对于均值估计,可以使用tt.stack([vx,vy])
构建适当的数量。但是对于协方差,我想[sigma_x, sigma_y, rho]
用作随机变量。我尝试用tt.stack
代码来构建对应的协方差张量
但它引发了错误:
我该怎么做才能解决这个问题?还有其他有效的方法来估计协方差矩阵吗?
python - 我们如何在 PyMC3 的层次模型中预测新的看不见的组?
如果我们有一个分层模型,将来自不同站点的数据作为模型中的不同组,我们如何预测新组(我们以前从未见过的新站点)?例如使用以下逻辑回归模型:
在我们拟合这个模型之后,我们可以使用以下方法预测来自特定站点的新数据(即来自后验预测的样本):
但是如果我们有一个新的看不见的站点,从后验预测分布中采样的正确方法是什么?
stan - 分层线性混合模型
我已经实现了一个 stan 层次模型,其中组内的级别 1 是线性模型,科目高斯混合模型内的级别 2。这意味着从级别 1 获得的斜率被级别模型 GMM 用于聚类。当我运行模型时,它存在收敛问题。
警告:pystan:超过最大(平面)参数计数(1000):
跳过 n_eff 和 Rhat 的诊断测试。要运行所有诊断调用 pystan.check_hmc_diagnostics(fit)
WARNING:pystan:2 of 500 迭代以分歧 (0.4 %) 结束。
警告:pystan:尝试使用大于 0.8 的 adapt_delta 运行以消除分歧。
WARNING:pystan:Chain 1: E-BFMI = 0.0611
WARNING:pystan:E-BFMI 低于 0.2 表示您可能需要重新参数化模型
对改进模型有何评论?
r - 基本分层贝叶斯分析代码
我有这个用winBUGS编写的代码:
我在如何在 R/JAGS 中执行此操作时遇到问题。事实上,我什至不完全确定这段代码试图做什么(我认为计算后验?)。之前没用过winBUGS,对R也是新手。这也是我第一次上贝叶斯课,一介绍代码就迷茫了。
此外,我将如何计算比例差异的后验均值和标准差?或者如何找到p1
大于的后验概率p2
,以及是否显着?