从线性、指数和对数函数中确定最佳拟合曲线拟合函数

机器算法验证 回归 预测模型 模型选择 曲线拟合
2022-01-27 10:01:11

语境:

从关于数学堆栈交换的问题(我可以构建一个程序)中,有人有一组点,并希望对其拟合曲线,线性、指数或对数。通常的方法是首先选择其中一个(指定模型),然后进行统计计算。xy

但真正想要的是从线性、指数或对数中找到“最佳”曲线。

表面上,可以三者都试,根据最佳相关系数选择三者中最好的拟合曲线。

但不知何故,我觉得这不是很犹太。普遍接受的方法是首先选择你的模型,这三个中的一个(或其他链接函数),然后从数据中计算系数。事后采摘最好的是樱桃采摘。但对我来说,无论你是从数据中确定一个函数还是系数,它仍然是同一件事,你的过程是发现最好的……事情(假设哪个函数是 - 也 - 发现另一个系数)。

问题:

  • 基于拟合统计的比较,从线性、指数和对数模型中选择最佳拟合模型是否合适?
  • 如果是这样,最合适的方法是什么?
  • 如果回归有助于在函数中找到参数(系数),为什么不能有一个离散参数来选择三个曲线族中最好的一个?
4个回答
  • 您可能想查看名为Eureqa的免费软件。它的特定目标是使查找给定函数关系的函数形式和参数的过程自动化。
  • 如果您正在比较具有不同数量参数的模型,您通常会希望使用一种拟合度量来惩罚具有更多参数的模型。有丰富的文献表明拟合度量最适合模型比较,并且当模型不嵌套时问题会变得更加复杂。我很想听听其他人认为给定您的场景最合适的模型比较指数(顺便说一句,最近在我的博客上讨论了在比较曲线拟合模型的背景下的模型比较指数)。
  • 根据我的经验,使用非线性回归模型的原因超出了给定数据的纯统计拟合:
    1. 非线性模型在数据范围之外做出更合理的预测
    2. 非线性模型需要更少的参数来进行等效拟合
    3. 非线性回归模型通常应用于有大量先前研究和理论指导模型选择的领域。

这是一个在非常不同的领域都有效的问题。

最好的模型是可以预测在参数估计期间未使用的数据点的模型。理想情况下,可以使用数据集的子集计算模型参数,并评估另一个数据集的拟合性能。如果您对详细信息感兴趣,请使用“交叉验证”进行搜索。

所以第一个问题的答案是“否”。您不能简单地采用最佳拟合模型。图像您正在将具有 N 次的多项式拟合到 N 个数据点。这将是一个完美的契合,因为所有模型都将准确传递所有数据点。但是,该模型不会推广到新数据。

当您没有足够的数据以合理的方式通过交叉验证过程时,您可以使用 AIC 或 BIC 等指标。这些指标同时惩罚残差的幅度和模型中的参数数量,但对数据的生成过程做出了强有力的假设。由于这些指标对过度拟合很敏感,因此它们可以用作模型选择的代理。

由于很多人经常探索各种曲线与他们的数据的拟合,我不知道你的保留来自哪里。诚然,有一个事实是,一个二次方程总是至少和一个线性方程一样好,一个三次方程,至少和一个二次方程一样好,所以有一些方法可以测试添加这样一个非线性项的统计显着性,从而避免不必要的复杂性。但是测试许多不同形式的关系的基本做法只是很好的做法。事实上,可以从一个非常灵活的黄土回归开始,看看哪种曲线最适合拟合。

您确实需要在导致数据的科学/理论与数据告诉您的内容之间找到平衡。就像其他人所说的那样,如果你让自己适应任何可能的变换(任何次数的多项式等),那么你最终会过度拟合并得到一些无用的东西。

说服自己这一点的一种方法是通过模拟。选择其中一个模型(线性、指数、对数)并生成遵循该模型的数据(选择参数)。如果您的 y 值的条件方差相对于 x 变量的传播很小,那么一个简单的图将清楚地表明选择了哪个模型以及“真相”是什么。但是,如果您选择的一组参数从图中不明显(可能是对分析解决方案感兴趣的情况),那么分析这 3 种方法中的每一种,看看哪一种给出了“最佳”拟合。我希望您会发现“最佳”匹配通常不是“真正”匹配。

另一方面,有时我们希望数据尽可能多地告诉我们,我们可能没有科学/理论来完全确定关系的性质。Box 和 Cox 的原始论文(JRSS B,第 26 卷,第 2 期,1964 年)讨论了在 y 变量上的几个变换之间进行比较的方法,它们给定的变换集具有线性和对数作为特殊情况(但不是指数) ,但本文的理论中没有任何内容将您限制为仅限于他们的转换系列,可以扩展相同的方法以包括您感兴趣的 3 个模型之间的比较。