回归分析和曲线拟合的区别

机器算法验证 回归 多重回归 术语 曲线拟合
2022-02-15 05:47:16

任何人都可以向我解释回归分析和曲线拟合(线性和非线性)之间的真正区别,如果可能的话,可以举个例子吗?

似乎两者都试图找到两个变量(依赖与独立)之间的关系,然后确定与所提出的模型相关的参数(或系数)。例如,如果我有一组数据,例如:

Y = [1.000 1.000 1.000 0.961 0.884 0.000] 
X = [1.000 0.063 0.031 0.012 0.005 0.000]

任何人都可以提出这两个变量之间的相关公式吗?我很难理解这两种方法之间的区别。如果您更喜欢用其他数据集来支持您的答案,那没关系,因为那个似乎很难拟合(也许只适合我)。

上述数据集代表xy接受者操作特征(ROC) 曲线的轴,其中y真阳性率(TPR) 和x误报率(FPR)。

我正在尝试拟合曲线,或者根据我最初的问题进行回归分析,但还不确定,在这些点中估计任何特定 FPR 的 TPR(反之亦然)。

首先,在两个自变量(TPR 和 FPR)之间找到这样的曲线拟合函数在科学上是否可以接受?

其次,如果我知道实际负例和实际正例的分布不正常,找到这样的函数是否科学上可以接受?

3个回答

我怀疑回归曲线拟合在统计科学和领域之间是否存在清晰一致的区别

没有限定的回归意味着线性回归和最小二乘估计。这并不排除其他或更广泛的意义:确实,一旦您允许 logit、Poisson、负二项式回归等,就很难看出什么建模不是某种意义上的回归。

曲线拟合确实暗示了可以在平面上或至少在低维空间中绘制的曲线。回归没有那么有界,可以预测多维空间中的表面。

曲线拟合可能使用也可能不使用线性回归和/或最小二乘。它可能是指拟合多项式(幂级数)或一组正弦和余弦项,或者以某种其他方式实际上符合线性回归的条件,即拟合参数中线性的函数形式。当非线性回归也是回归时,确实曲线拟合。

术语曲线拟合可以用于贬低、贬义、贬低或轻蔑的意义(“这只是曲线拟合!”)或(几乎完全相反)它可能指用特定的物理(生物、经济,无论如何)基本原理或量身定制以匹配特定类型的初始或限制行为(例如,始终是积极的,在一个或两个方向上受限,单调,具有拐点,具有单个转折点,振荡等)。

这里的几个模糊问题之一是,相同的函数形式在某些情况下最多只能是经验性的,而在其他情况下最多可以是优秀的理论。牛顿教导说,抛物线的轨迹可以是抛物线,因此很自然地由二次曲线拟合,而在社会科学中拟合年龄依赖性的二次曲线通常只是与数据中的某些曲率相匹配的捏造。指数衰变是放射性同位素的一个非常好的近似值,有时也不是太疯狂的猜测土地价值随着远离中心的距离而下降的方式。

你的例子没有得到我的明确猜测。这里的大部分要点是,使用非常小的数据集,并且没有关于变量是什么或预期它们如何表现的信息,建议模型形式可能是不负责任或愚蠢的。也许数据应该从 (0, 0) 急剧上升,然后接近 (1, 1),或者可能是别的什么。你告诉我们!

笔记。回归和曲线拟合都不限于单个预测变量或单个参数(系数)。

除了@NickCox 的出色回答 (+1),我还想分享我对这个有点模糊的术语主题的主观印象。我认为这两个术语之间相当微妙的区别在于以下几点。一方面,回归通常(如果不总是)意味着解析解(对回归量的引用意味着确定它们的参数,因此我对解析解的论点)。另一方面,曲线拟合并不一定意味着产生解析解,恕我直言,经常可能并且被用作探索性方法

由于似乎已经有关于回归分析与曲线拟合的充分解释,我将不理会它。但是,OP 的原始问题中还隐藏了一个额外的问题。“给定数据”很少,但他问是否有人可以提出相关公式,所以我会加上我的 2 美分。

我对 ROC 曲线等没有任何经验……但是,绘制数据强烈表明它是一阶系统1τs+1(在拉普拉斯术语中)响应 Step-Input1s(在拉普拉斯术语中)。显然,时间常数非常小,产生极快的稳态。我假设因变量是“y”,自变量是“t”。

一阶过程的一般方程是y=A[1Betτ], 在哪里τ是过程时间常数(其中 1τ产生大约 63.2% 的响应)。

使用您的数据,@t=,y=1,因此,一般模型现在变为A=1y=1Betτ

此外,,因此模型现在是 @t=0,y=0B=1y=1etτ

将您的数据回归(或曲线拟合)到这个方程会产生明确地说,这表示在中,63.2% 的响应已经完成。y=1et0.00230.0023 sec

在此处输入图像描述

我的好处是不知道您的特定噪声或数据方差,因此我冒昧地对 2 参数模型进行曲线拟合,看看它是否会缩小误差。这产生了模型y=10.99972et0.0023

在此处输入图像描述

我建议在响应的早期部分获取更多数据,并在响应行结束后忽略采样,因为在稳态下建模没有什么有趣的。此外,随着您进入稳态exp()