问题标签 [brms]

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 投票
0 回答
62 浏览

r - brms::brm - 根据功能定义一些起始值

我想brms::brm仅为某些系数并根据函数手动设置模型的起始值(不是:先验)。

我当前的代码看起来像这样(你可以忽略x变量 and unit,我只想操纵zandas.factorF1的起始值as.factorF2):

此代码有效;但是,我想inits手动设置一些起始值 () 以从均匀分布中提取(X ~ U[0,1]),类似于先验。

我想要这样的东西(伪代码)

唯一的其他类似问题没有得到解答,也没有明确要求为某些系数起始值调用函数

我只找到inits = "0"(将所有起始值设置为 0)或默认的inits = "random". 有人可以建议如何做到这一点吗?提前致谢!

0 投票
1 回答
224 浏览

r - 如何将矩阵数据输入brms公式?

我正在尝试将矩阵数据输入到brm()函数中以运行信号回归。brm来自 brms 包,它提供了一个接口来使用 Stan 拟合贝叶斯模型。信号回归是指在更大的模型中使用另一个协变量对一个协变量进行建模,并且使用如下by参数:model <- brm(response ~ s(matrix1, by = matrix2) + ..., data = Data). 问题是,我无法使用“数据”参数输入矩阵,因为它只允许data.frame输入一个对象。

这是我的代码以及我试图绕过该约束而获得的错误...

首先,我的可重现代码导致模型构建:

如上所述,由于“数据”只允许输入一个 data.frame 对象,因此我尝试了其他输入矩阵数据的方法。这些方法包括:

1) 使用 as.matrix() 在 brm() 函数中制作矩阵

2)在公式之外制作矩阵,将其存储在变量中,然后在 brm() 函数中调用该变量

3) 使用 'data2' 参数输入包含矩阵的列表

以上均无效;每个人都有自己的错误,并且很难对其进行故障排除,因为我无法在网上找到与 brms 具有相似性质的答案或示例。

我能够在 mgcv 包中对 gam() 使用上述技术——您不必使用“数据”定义 data.frame,您可以调用在 gam() 公式之外定义的变量,您可以在 gam() 函数本身内制作矩阵。见下文:

似乎 brms 不太灵活...... :(

我的问题:有人对如何使我的 brm() 函数运行有任何建议吗?

非常感谢!

0 投票
1 回答
106 浏览

r - 为什么我的贝叶斯层次回归 (brms) 无法在我的模型中找到对象?

我的数据集基于动物的调查数据。我想运行以下形式的贝叶斯层次模型:

这给出了一个错误:

nlist 中的错误(模型、sdata、算法、后端、iter、预热、瘦、链,:找不到对象“Tlength”

如果我删除该偏移量,由于链,我会得到一个完全独立的错误:

链1:拒绝初始值:链1:在初始值处评估的梯度不是有限的。链 1:Stan 无法从这个初始值开始采样。

我认为变量的规模ndate可能会导致问题,但这并不能解决问题。如果我将其保留为高斯族,该模型将起作用,但这不适合我的数据。

我在这里包含了完整的数据集:

0 投票
0 回答
63 浏览

c++ - 在 Rccp 中编译 c++ 时缺少头文件/模板文件 c++ Big Sur

我对 c++ 一无所知,但是当我尝试编译 brms 模型时,我得到了错误消息。同样,当我编译 Rstan 程序时,也会发生完全相同的事情。大多数时候,我只剩下:

同样,如果我从源代码安装库,则会收到相同的错误消息(或缺少另一个标头)。到目前为止,我已经尝试在没有任何帮助的情况下(多次)删除和重新安装命令行工具,并且我在没有任何帮助的情况下尝试了这种 SO 方法。除了上述之外,我还能做什么?

我在 Big Sur 11.4(英特尔),R 4.1.0。

我目前正在运行没有任何 Makevars 文件,但我曾经运行过这个:

我的 Rprofile 也是空的。

0 投票
0 回答
54 浏览

r - 从预测的非线性模型数据中插值曲线,需要方程 R

我需要定义一个方程来表示模型中的一系列点。由于它们是来自已经拟合的非线性回归的预测,因此噪声不应该成为真正的问题。我已经看到了许多允许对曲线进行预测的示例,但我仍然对如何从样条等各种函数中检索方程感到困惑。

根据我为 brms 中的非线性回归提供的公式(b1^b2,其中 b1 ~ 1 + x 和 b2 ~ 1),我希望这种关系类似于某种幂函数 [ax^b 或可能(int + ax)^b]。

我知道这可能只是一个近似值 - 只要它相对相似就可以(将与模型一起绘制以进行比较)。非常感谢任何见解,如果我可以提供更多信息,请告诉我。在下面提供了示例数据。

绘制数据

编辑:回复@Bernhard

是的,我尝试使用这些输出,但没有发现它们非常接近曲线 - 也许我误解了如何使用它们。

因此,如果我的 brms 输出如下所示:

我怎样才能用它来重新创建方程?

例如,当我尝试

只是做一个快速比较: x 值 40 (6.61 + 0.98*40)^0.57 = exp(8.846) [以对数正态分布] = 6946.547

曲线

我知道它看起来不一样(因为它也在对数正态分布内),但希望 exp 值与下图相匹配?(根据 add_predictions,x 值为 40 对应于 5256.29)

模型视觉

0 投票
1 回答
122 浏览

c++ - 尝试使用 Rtools 3.5/Rv3.5.1 编译 rstan 时出现错误 126

我在 Windows 10 上使用 R v.3.5.1、R studio v 1.3.1093 和 Rtools 3.5。

我知道已经成功安装了 R 工具并找到了工具链,遵循https://github.com/stan-dev/rstan/wiki/Configuring-C---Toolchain-for-Windows并成功安装:

但是,当我尝试从源代码安装 rstan 时

我收到以下错误消息:

目前,我的 makevars.win 文件包含以下内容:

尽管我在 makevars 文件中尝试了各种不同的行,但仍然会出现上述错误 126 消息。

我可以成功安装 rstan/rstanarm/brms 等的二进制版本。但是当我尝试编译模型时它失败了。当我尝试这个并意识到二进制版本不起作用时,我在尝试安装源版本之前卸载了 rstan/rstanarm 和 brms。

任何解决此错误并成功安装 rstan 的帮助将不胜感激!

0 投票
1 回答
103 浏览

r - brms 包中存在 x 和 y 误差的线性回归

我正在尝试对我的数据进行线性回归,以计算出海平面变化的速度。但是,简单的线性回归将不起作用,因为我同时有 x(年龄)和 y(RSL)错误,例如:

限制性物质清单 RSL 错误 年龄 年龄错误
-0.31 0.05 1815 1
-0.29 0.07 1880 5
-0.29 0.05 1895年 5
-0.2 0.05 1935年 1

我一直在做一些研究,看起来变量误差方法或贝叶斯测量模型都可以使用https://www.r-bloggers.com/2021/04/how-to-estimate-models-with -我们的 covid-19 指数的测量误差/

我决定从贝叶斯测量模型开始,因为作者将其描述为更有利且更易于实现的模型。

我试图用我自己的数据复制他们的例子但是我得到了以下错误Error: The following variables can neither be found in 'data' nor in 'data2': 'Wap'

有谁知道我哪里出错了以及如何让模型运行?

注意在我的数据框中,我有 Ageupper 和 Agelower 以及 RSLupper RSLlower 但它们是高斯​​的,所以我只在代码中使用 Ageupper RSLupper 等。

谢谢

0 投票
1 回答
73 浏览

r - brms中的序数回归模型;错误=找不到函数累积(“logit”)

我正在尝试使用 brms 包运行序数 logit 模型,但出现错误“找不到函数“累积”。我将其更改为 family =“累积”并且能够使其工作。是这些不同?

0 投票
0 回答
33 浏览

r - 带有for循环功能的ggplot

我正在运行带有 brms 包的序数 logit 模型。我想写出参数后验分布的密度。

我能够构建模型,但我一次只能创建一个图。以下代码尝试通过提供变量名称来运行循环函数。但是,我无法在获得的结果中绘制密度。

在此处输入图像描述

0 投票
3 回答
380 浏览

r - mgcv GAM:`by`参数中有多个变量(平滑变化超过1个因子)

我需要在多个因素上建模一个平滑项。该by论点允许我为每个因子水平建模一个平滑,但我无法找到如何在多个因子上做到这一点。

我尝试了类似于以下的解决方案,但没有成功:

reprex 包于 2021-08-05 创建 (v2.0.0 )

欢迎任何帮助!