如何在预测变量*和*响应中传播测量不确定性以进行多维、非参数回归(以及执行此操作的软件)?

机器算法验证 Python matlab 非线性回归 测量误差 斯坦
2022-03-27 13:23:17

背景

变量误差模型定义为:

考虑自变量测量误差的回归模型。相比之下,标准回归模型假设这些回归量已经被精确测量,或者没有错误地观察到;因此,这些模型仅考虑因变量或响应中的错误。

无论数据是实验数据还是计算数据(例如通过基于物理的模拟),自变量的不确定性都很常见。这在加工、结构和性能测量中存在不确定性的材料科学中尤为重要。此外,这种不确定性不一定对所有参数都是恒定的(温度传感器可能在温度范围的限制下具有更高的不确定性,材料结构的各个方面可能已由单独的仪器确定,性能测量是从多个来源中挖掘的数据, ETC。)。另见不确定性量化我确信这也适用于其他学科(例如物理学、化学、生物学、工程学)。

现有方法

不是在寻找什么

找什么

一种迎合多维、非参数回归的方法,在预测变量响应中传播测量不确定性(即不确定性传播,而不仅仅是加权点),最好是与之配套的软件(Mathematica、MATLAB、Python、R、Stan 等.)。多维是指预测变量(即响应是标量的)。

理想情况下,这将是可以解释的并且可以通过以下方式执行的内容:

mdl = some_function(X, Xsd, y, ysd)
ypred, ysd2, cov = mdl(X2, Xsd2)

输入

  1. 矩阵/预测变量数组 ( )X X
  2. 矩阵/预测不确定性数组(Xsd σX
  3. 响应值向量 ( )y y
  4. 响应不确定性向量 ( )ysd σ
  5. 新预测变量的矩阵/数组 ( )X2 X2
  6. (可选)新预测不确定性矩阵/数组(Xsd2 σX2

输出

  1. 新响应向量 ( )ypred ypred
  2. 新响应不确定性向量 ( )ysd2 σ2
  3. (可选)预测变量协方差矩阵(cov Σ2
假设不确定性是指正态分布的标准偏差。在转向其他发行版之前,我可以从更简单的假设开始。

更新

  • 这似乎是通过 BoTorch 支持的,这是一个基于 Python 的包(参见教程),稍后将在 Meta 的自适应实验平台中公开最终可能会尝试这个并将其充实为答案。如果其他人想尝试并提供 MWE,这也是受欢迎的。

有关的

1个回答

R 中更有趣的选择之一是rstan,您可以在其中使用 Stan 建模语言自己编写代码(这往往是令人惊奇的,因为它可以为我们过去很长时间无法做到的模型产生推理)。但是,入门可能有点挑战性,听起来您想要一个更高级别的界面。

这可能是brms使用 R 模型语法并在后台生成 Stan 代码的包。通过该绕道(通过 R 中的 brms 生成 Stan 代码,然后将生成的 Stan 代码与pystan- 或其他语言(如MathematicaStanMatlabStan )中的任何其他 Stan-tie-ins - 然后您也可以在 Stan 中使用它)一起使用。其中brms用于具有测量误差的预测器的me()功能,以及用于非线性模型的大量建模选项(这取决于你到底在想什么,这是否被涵盖)并且它还支持高斯过程,但我不确定从你所描述的内容中你可以在多大程度上按照你想要的方式将它们组合在一起(如果不是你最好查看 - 通常是精心挑选/高效的 - Stan 代码,该代码brms生成并且必须按照您在 Stan 中手动想要的方式将其完全组合在一起)。