问题标签 [rstanarm]

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 回答
82 浏览

r - “rstanarm 不允许使用重复的组特定术语的公式”,我该如何解决这个问题?

在使用“rstanarm”对回归模型尝试贝叶斯方法时,不允许重复的组特定术语。有什么解决办法吗?

Formula = "SleepTime ~ 1 + WorkingHours + (1 + WorkingHours | JobClass) + Tenure + (1 + Tenure | JobClass)"

bayesian = stan_lmer(Formula, data = data_model)

Error in check_reTrms(group) : rstanarm does not permit formulas with duplicate group-specific terms. In this case JobClass is used as a grouping factor multiple times and (Intercept) is included multiple times. Consider using || or -1 in your formulas to prevent this from happening.

0 投票
1 回答
62 浏览

r - 如何为 rstanarm 中的固定系数指定“严格”先验?

如何为平均值在 1e-05 范围内、标准差 (sd) 在 1e-06 范围内的系数提供先验分布?

在 rstanarm 中为如此高精度(sd <= 1e-06)参数选择哪些分布?

1) 学生家庭

2)分级收缩族

3) 拉普拉斯家族

4)狄利克雷家族

5) 其他

我尝试过使用prior = normal(location = 1e-05, scale = 1e-06, autoscale = FALSE),但采样需要很多时间。

0 投票
1 回答
245 浏览

r - 如何在 rstanarm 中指定随机系数先验?

假设我有一个混合效应模型的以下公式:

然后我可以将固定斜率和固定截距的先验指定为:

但是我如何指定随机斜率的先验并使用截距

(或者)

如果我知道斜率和截距之间的方差以及它们之间的相关性。我无法理解如何为上述混合效果公式指定参数。

0 投票
1 回答
236 浏览

r - 在 rstanarm/bayesplot 图中设置单个颜色,而不是配色方案

我想知道是否可以将颜色直接应用于带有bayesplot的rstanarm模型的参数

例如来自https://mc-stan.org/bayesplot/articles/plotting-mcmc-draws.html

返回:

在此处输入图像描述

该文档描述了自定义方案或混合,但它们仍然适用于图中的每个参数:

在此处输入图像描述

plot 函数(带有 rstanarm 模型)不再接受col能够指定每个点的参数。无论如何为图中的每个参数指定一串颜色(或方案)?

编辑:根据@Limey 的评论,您可以将绘图修改为 ggobjects,但我没有看到一种直接访问原始绘图美学的方法。

例如,scale_colour_manual(或任何其他scale_colour_...)不会改变绘制的值:

(见上图,看起来一样)。另一个例子,我可以在原图之上绘制点:

在此处输入图像描述

并使它们更大以匹配(注意我在这里也将它们设为粉红色):

在此处输入图像描述

我也可以对每个误差条对象执行此操作,但此时我并没有真正修改原始图,而是在它的顶部绘制。在这种情况下,将 rstanarm 绘图函数全部丢弃并简单地手动执行,或者创建我自己的函数是有意义的,这很好。但是,如果有人知道如何plot(rstanarm_object)直接修改颜色,我仍然有兴趣听听。

0 投票
0 回答
67 浏览

r - 如何为模型外部的 rstanarm 中的变量转换参数指定先验分布?

假设,响应 y 可以通过以下通用方程建模:

y = a + b1*x1, 在哪里x1 = func(p,q,r)

rstanarm 提供的标准函数允许指定系数(b1)和截距的先验分布(a)

rstanarm 中的函数(例如 stan_lmer)是否规定为(p,q,r)模型外部的参数提供先验分布?

0 投票
1 回答
71 浏览

rstanarm - 如何在 rstanarm 中指定对数正态先验或用户定义的非负先验?

假设我有一个混合效应模型的以下公式: Precipitation ~ s(month,bs="cc")+s(time)+ humidity,random= ~(humidity|year) 并且我知道湿度只会对降水产生积极影响。所以我想为 rstanarm 中的湿度指定一个对数正态先验或其他非负先验。假设湿度的系数是beta。我会指定先验为log(beta) ~ normal(0,10^4)我应该怎么做?我不认为默认的指数分布是适当的先验。

0 投票
1 回答
119 浏览

r - Posterior_survfit() 没有使用 nd

我无法使用后验生存预测()生成后验预测。我正在尝试使用新的数据框,但它没有使用新的数据框,而是使用我用来拟合模型的数据集中的值。模型中的拟合变量是 New.Treatment(6 个处理 = 分类)、Openness(连续光指数 min=2.22、mean=6.903221 和 max=10.54)、subplot_by_site(categorical-720 个站点)、New.Species.name(分类 - 165 种)。我的新数据框有 94 行,而后验生存 () 给了我 3017800 行。请帮忙!

操作系统:Mac OS Catalina 10.15.6 R 版本:4.0 rstan 版本:2.21.2 rstanarm 版本:rstanarm_2.21.2 关于为什么它不起作用的任何建议。目前尚不清楚如何给出一个变量在交互中的影响的某种图,因为其他变量和相关的不确定性(即边际效应图)。在我的示例中,我有兴趣获取特定“开放性”值的值,而不是在后验结果中出现的每个特定时间。TIA。

0 投票
1 回答
76 浏览

r - 将 R2jags 对象转换为 Stanreg (rstanarm) 对象

我使用R2jags. 我喜欢这种jags语法,但我发现生成的输出R2jags不容易使用。我最近读到了这个rstanarm包。它具有许多有用的功能,并得到tidybayesbayesplot软件包的良好支持,便于模型诊断和可视化。但是,我不喜欢用rstanarm. 理想情况下,我想两全其美,即编写模型R2jags并将输出转换为Stanreg对象以使用rstanarm函数。

那可能吗?如果是这样,怎么做?

0 投票
0 回答
58 浏览

r - 从 stan_glm 模型中使用 CI 提取系数:fixef 命令出错:错误:无法组合 `..1$fixef`和`..3$fixef`

目标:在 stan_glm 模型的一个命令中估计具有置信区间的系数。

尝试使用 fixef() 提取我的 stan_glm 模型的系数 CI 时,出现以下错误。我尝试使用来自bayr 的fixef() 而不是rstanarm,因为它可以方便地提供置信区间。

这是我尝试过的最简单的模型:

我首先认为这可能是库中的冲突,所以我尝试以不同的顺序激活使用 fixef (rstanarm, bayr) 的库,但这没有帮助。目前我使用以下库(按此顺序):

看门人、避风港、data.table、modeest、dplyr、tidyverse、readxl、gridExtra、rstanarm、devtools、mascutils、bayr

关于该错误的来源有什么建议吗?

编辑: rstanarm::fixef(M1)有效,但给出没有置信区间的系数。bayr::fixef() 会自动给他们。我试过也试过以下:

0 投票
1 回答
274 浏览

r - 从另一个参考水平获取模型估计,而不运行新模型?

我想知道是否有一种简单的方法可以更改截距中的值,也许是数学上的,而无需重新运行大型模型。举个例子:

输出:

现在我可以将参考电平更改为 6 cyl,并且可以查看现在 8 cyl 与 6 cyl 而不是 4 cyl 的比较:

输出:

我想知道有没有办法在不重新运行模型的情况下获得这些值?您可以看到从 4 cyl 到 6 cyl 的比较在每个模型中都是相同的(-5.965.96),但是我将如何获得任一模型中“其他”系数的估计值(例如-2.55来自第一个模型)。当然,在这种情况下,运行另一个模型只需要几分之一秒。但是对于非常大的模型,无需重新运行即可更改参考电平会很方便。是否有相对简单的方法可以将所有估计值和标准误差转换为基于不同的参考水平,还是这样做太复杂了?

lme4,glmmTMB或模型的任何解决方案rstanarm将不胜感激。