如何简化拉伸指数拟合?

机器算法验证 曲线拟合 插值
2022-03-28 20:51:17

我有来自蒙特卡洛实验的数据,我希望将其拟合到表格模型中

log(xy)β0+β1log(z),
我对三胞胎有很多观察,x,y,z. 这种拟合做得不错,但是当我查看拟合的残差时log(z),有一个明显的碗形: 残差与 log(z),碗形

这表明适合形式

log(xy)β0+β1log(z)+β2(log(z))2,
我并不完全反对这样的拟合,但我的最终目标是陈述一个方程,给出x简而言之yz. 当我取这个拟合双方的指数时,我得到了一些非常丑陋的东西:
x=c0zc1+c2log(z)y
这不是我所希望的。

有什么技巧可以用来摆脱这种混乱吗?理想情况下,我会少一个常数,或者至少没有一个zlogz学期。

编辑:有一个强有力的理论理由支持这种形式的拟合,而不是把logy在右侧并执行“完全”配合。如果你这样做,与相关的系数logy无论如何接近 -1 (-0.9989),但如果你这样做,你看不到这个关于拟合值的“二次”伪影。事实证明,z=1案例是一个众所周知的现象x=c/y是普遍接受的法律。

如果有帮助,当我绘制残差与更一般的模型时

log(xy)β0+β1log(z)+β2(log(z))2,
我明白了: 残差与更一般的模型

1个回答

如果可能,首先要做的是处理异方差性。请注意残差的散布如何随着拟合而持续增加:事实上,散布似乎随着拟合的增大几乎呈二次方增加。

一个标准的治疗方法是返回原始响应(log(xy)) 并应用强变换,例如对数甚至倒数:这种异方差模式暗示了该范围内的某些东西。然后重做拟合并重新检查残差。

用眼睛拟合线条是一个好主意,使用转换后的图表xy反对z(或者log(z). 这通常比任何数量的回归例程都显示出更多的操作。一旦你有一个合适的模型,你最终可以使用最小二乘(或稳健回归)来产生最终拟合。

在这种情况下,您可能还想探索xzyz分别看是否只是其中之一x,y导致 2.9 和 3.6 之间的斜率突然变化。这种变化显然不是二次的:残差图的两个“分支”都是线性的。对这种变化进行建模的一种方法——如果它在你处理了异方差后仍然存在——是使用一个变化点模型来设定一个斜率值β1比如说,z3.2,以及不同的值z>3.2.

最后,在 Monte-Carlo 模拟中,您拥有完全的控制权,并且您确切地知道产生响应的机制。对此进行一些分析以找出三元组之间的正确关系应该是什么是有用的。