问题标签 [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 - R2jags :: JAGS“初始化模型”
我通过包“R2jags”为占用模型运行 JAGS。
我的模型运行良好,但大部分时间花在控制台读取“初始化模型”的阶段,即 1.05 小时的总运行时间。40分钟。以下是此阶段发生的情况(根据 JAGS 文档):
- 选择初始值(我通过 R 中的列表将它们传递给 JAGS)
- RNG = 选择随机数生成器。(我使用默认设置)
- 采样器被选中。(我对此没有直接影响,但可以加载某些“模块”,需要尝试这是否加快了进程,但对此表示怀疑)
我的“初始化”需要这么长时间?我对这种行为感到很困惑......
r - 错误:运行 HMM 时替换的长度为零 R
我正在尝试使用包 MHMM BAYES 运行 HMM。我已经按照教程中的说明设置了我的代码(https://cran.r-project.org/web/packages/mHMMbayes/vignettes/tutorial-mhmm.html)见下文
但是,当我尝试运行模型时,出现以下错误:
我尝试检查类似的问题,但它们似乎没有帮助。
python - 选择不标准化分层贝叶斯回归(pymc3)中的自变量时如何缩放超先验
背景
社区中有很多关于如何标准化自变量(减去平均值然后除以标准差)有利于提高 MCMC 采样效率的讨论,而不是数学要求(John K. Kruschke,https: //stats.stackexchange.com/q/273209 . Andrew Gelman 等人 (2008, p. 4-5) 和 Osvaldo Martin (2018, p. 96) 提到的其他主要好处是自变量允许我们使用相同的弱信息先验/超先验,随后意味着所有系数都可以用 z 分数来解释。
因此,我们有两个选择:i)标准化自变量,在这种情况下先验的规模可以保持不变,或者 ii)不标准化自变量,在这种情况下,需要手动设置先验的规模. 这是我的问题所指的第二个选项。
业务问题
我正在为购物类别(即男士沐浴露)构建一个层次模型。因变量是数量,其中每个观察值都是每周的 SKU(库存单位)水平。层次结构使得产品线中的每个 SKU 与该产品线中的所有其他 SKU 共享相同的系数。产品线是同一品牌内的一组 SKU,它们是几乎相同的产品,只有不同的气味/颜色等。我们还将因变量除以 SKU 级别的平均值,以便模型可以估计当您在同一产品线中有一些小批量 SKU 和一些大批量 SKU 时,这些系数是有意义的。
在下面的简单示例中,有 3 个变量和截距。变量的比例如下: rrp - 推荐零售价。大多数 SKU 是 $20-$60 discount_amount - 此变量经过 atan 转换以形成“S”形;比例为 0-1 mu_comp_launch_steal - 此变量的值是竞争对手产品发布蚕食的数量(数量);比例从 0 到 ~5000 不等,具体取决于产品
Question: how do I scale the hyperpriors when choosing not to standardize the independent variables?
使用 pm.Model() 作为分层模型:
参考
[1] John K. Kruschke ( https://stats.stackexchange.com/users/16592/john-k-kruschke),MCMC贝叶斯方法 - 居中和标准化,URL(版本:2017-04-11):https: //stats.stackexchange.com/q/273209
[2] Andrew Gelman、Aleks Jakulin、Maria Grazia Pittau、Yu-Sung Su。“逻辑和其他回归模型的信息量较弱的默认先验分布。” 应用统计年鉴,2(4) 1360-1383 2008 年 12 月。第 1363 页。
[3] 奥斯瓦尔多·马丁。使用 Python 进行贝叶斯分析:使用 PyMC3 和 ArviZ 进行统计建模和概率编程的介绍。第 2 版。2018. 第 96 页奥斯瓦尔多·马丁。“使用 Python 进行贝叶斯分析”。第 96 页。
svm - 我可以使用多类 SVM 来解决推理问题吗?
我有一个问题,我想找到属于每个班级的概率,我有 3 个班级。我知道我们可以考虑贝叶斯推理并解决它,但我想也许我可以使用多类 SVM 代替?您一般建议如何改进贝叶斯推理方法?
r - 错误:所有列表元素必须是列表本身:在 tidybayes 中使用 spread_draws 函数时出错
在玩 tidybayes 包时(我从小插图中模拟的代码复制了数据:http://mjskay.github.io/tidybayes/articles/tidybayes.html ),我继续偶然发现错误:错误:全部使用 spread_draws 函数(或 tidybayes 中的任何其他函数,就此而言)时,列表元素必须是列表本身。这是来自小插图的模拟数据:
这是拟合模型的代码:
但是,即使在尝试使用 get_variables 函数时,我也会遇到与上述相同的错误。有没有其他人遇到过类似的问题或能够解决这个问题?
这是会话信息。
如果您需要任何其他信息,或者如果我监督提供了某些信息,请告诉我!
非常感谢您的帮助,一切顺利。
tensorflow - 更改 tensorflow_probability Convolution3DFlipout 层中的默认先验和后验
默认先验Convolution3DReparametrization()
是tfp.layers.default_multivariate_normal_fn
均值 0 和标准差 1 的各向同性高斯。后面是tfp_layers_util.default_mean_field_normal_fn()
。例如,是否可以为先验和后验指定分层模型,prior~N(0,sigma)
并且sigma~Gamma(a1,b1)
?我怎样才能在 Tensorflow 概率中实现这一点,可能是tfd.JointDistributionSequential
?的源代码tfp_layers_util.default_mean_field_normal_fn()
如下:
bayesian - 如何从形状 > 1 的 PyMC3 参数中获取所有值?
我在 PyMC3 中建立了一个未合并的模型:
我知道如果 的形状beta
为 1,我可以使用以下方法获得最大概率估计:
但由于形状大于 1,我应该得到更多的 1 值。如何提取该值?
model - 如何将营销组合建模中每个渠道的先前 LAG 设置到此代码中
这是一个 MARKETING MIX MODEL 考虑 adstock 效应,其中 Delta 和 Peak 受先验影响,而 Lag 固定为 8。我想知道如何更改 STAN CODE 以便为每个频道提供不同的 LAG(我会修复滞后的先前 beta (2,6)。
data-manipulation - stan 操作和修复数据的语法
max_lag 是所有媒体的固定整数。我需要为每种媒体设置特定的延迟。那么,如何才能为每种媒体设置不同的延迟,以及数据和参数必须如何更改为语法?例如:max_lag_channel_media1 = 10;max_lag_channel_media2 = 4; max_lag_channel_media3 = 6
r - 无法在 JAGS/rjags 的分层漂移扩散模型中获得单独条件的参数估计
我在 JAGS 中运行分层漂移扩散模型,我改编自:Pleskac et al., 2018该实验是一个二选一的反应时间任务。
我的目标是为 3 个实验条件获得单独的参数估计值(muAlpha、muBeta、muDelta 和 muNDT)。此外,估计 muAlpha 和 muBeta 依赖于对 con1 (factor1) 的主体操作,而 muDelta 和 muNDT 取决于对 con2 (factor1*factor2) 的主体操纵。
我的问题是,只有第一个实验条件的后验估计(muAlpha、muBeta、muDelta 和 muNDT)在形状上看起来是合理的,而第二个和第三个实验条件的后验估计看起来像是均匀分布。
我发现另一个类似问题的问题,据我了解,模型中的嵌套索引存在错误。不幸的是,我无法弄清楚我在模型中错误指定的内容(见下文),如果有人能帮助我,我将不胜感激!
(如果要运行模型,则需要为 JAGS 安装JAGS Wiener 模块扩展。)