幂律回归

机器算法验证 回归 配件 对数 幂律
2022-03-23 22:15:10

这是来自Math SE的交叉帖子。

我有一些数据(算法的运行时间),我认为它遵循幂律

yreg=kxa

我想确定ka. 到目前为止我所做的是通过线性回归(最小二乘)log(x),log(y)并确定ka从它的系数。

我的问题是,由于“日志数据”的“绝对”错误被最小化,所以当你查看原始数据时最小化的是商

yyreg

这会导致较大的绝对误差y. 有没有办法进行“幂律回归”以最小化实际的“绝对”错误?或者至少在最小化它方面做得更好?


例子:

在此处输入图像描述

红色曲线适合整个数据集。绿色曲线仅适合最后 21 个点。

这是情节的数据。左列是值n(x-axis),右列是t(y-轴)

1.000000000000000000e+02,1.944999820000248248e-03
1.120000000000000000e+02,1.278203080000253058e-03
1.250000000000000000e+02,2.479853309999952970e-03
1.410000000000000000e+02,2.767649050000500332e-03
1.580000000000000000e+02,3.161272610000196315e-03
1.770000000000000000e+02,3.536506440000266715e-03
1.990000000000000000e+02,3.165302929999711402e-03
2.230000000000000000e+02,3.115432719999944224e-03
2.510000000000000000e+02,4.102446610000356694e-03
2.810000000000000000e+02,6.248937529999807478e-03
3.160000000000000000e+02,4.109296799998674206e-03
3.540000000000000000e+02,8.410178100001530418e-03
3.980000000000000000e+02,9.524117600000181830e-03
4.460000000000000000e+02,8.694799099998817837e-03
5.010000000000000000e+02,1.267794469999898935e-02
5.620000000000000000e+02,1.376997950000031709e-02
6.300000000000000000e+02,1.553864030000227069e-02
7.070000000000000000e+02,1.608576049999897034e-02
7.940000000000000000e+02,2.055535920000011244e-02
8.910000000000000000e+02,2.381920090000448978e-02
1.000000000000000000e+03,2.922614199999884477e-02
1.122000000000000000e+03,1.785056299999610019e-02
1.258000000000000000e+03,3.823622889999569313e-02
1.412000000000000000e+03,3.297452850000013452e-02
1.584000000000000000e+03,4.841355780000071440e-02
1.778000000000000000e+03,4.927822640000271981e-02
1.995000000000000000e+03,6.248602919999939054e-02
2.238000000000000000e+03,7.927740400003813193e-02
2.511000000000000000e+03,9.425949999996419137e-02
2.818000000000000000e+03,1.212073290000148518e-01
3.162000000000000000e+03,1.363937510000141629e-01
3.548000000000000000e+03,1.598689289999697394e-01
3.981000000000000000e+03,2.055201890000262210e-01
4.466000000000000000e+03,2.308686839999722906e-01
5.011000000000000000e+03,2.683506760000113900e-01
5.623000000000000000e+03,3.307920660000149837e-01
6.309000000000000000e+03,3.641307770000139499e-01
7.079000000000000000e+03,5.151283440000042901e-01
7.943000000000000000e+03,5.910637860000065302e-01
8.912000000000000000e+03,5.568920769999863296e-01
1.000000000000000000e+04,6.339683309999486482e-01
1.258900000000000000e+04,1.250584726999989016e+00
1.584800000000000000e+04,1.820368430999963039e+00
1.995200000000000000e+04,2.750779816999994409e+00
2.511800000000000000e+04,4.136365994000016144e+00
3.162200000000000000e+04,5.498797844000023360e+00
3.981000000000000000e+04,7.895301083999981984e+00
5.011800000000000000e+04,9.843239714999981516e+00
6.309500000000000000e+04,1.641506008199996813e+01
7.943200000000000000e+04,2.786652209900000798e+01
1.000000000000000000e+05,3.607965075100003105e+01
1.258920000000000000e+05,5.501840400599996883e+01
1.584890000000000000e+05,8.544515980200003469e+01
1.995260000000000000e+05,1.273598972439999670e+02
2.511880000000000000e+05,1.870695913819999987e+02
3.162270000000000000e+05,3.076423412130000088e+02
3.981070000000000000e+05,4.243025571930002116e+02
5.011870000000000000e+05,6.972544795499998145e+02
6.309570000000000000e+05,1.137165088436000133e+03
7.943280000000000000e+05,1.615926472178005497e+03
1.000000000000000000e+06,2.734825116088002687e+03
1.584893000000000000e+06,6.900561992643000849e+03

(对不起凌乱的科学记数法)

2个回答

如果您希望在未转换尺度中的每个观测值的误差方差相等,则可以使用非线性最小二乘法。

(这通常是不合适的;许多数量级的误差在大小上很少是恒定的。)

如果我们继续使用它,我们会更接近后面的值:

非线性最小二乘拟合图

如果我们检查残差,我们可以看到我上面的警告是完全有根据的:

上述模型的对数(拟合)残差图

这表明在原始尺度上的可变性不是恒定的(并且该单一功率曲线的拟合在高端也不能很好地拟合,因为在对数值范围的第三四分之一范围内存在明显的曲率x 刻度——在上面的 x 轴上大约在 0 到 5 之间)。对数尺度的可变性更接近于常数(尽管在低值下相对而言它的可变性比那里的高值要大一些)。

在这里最好做什么取决于您要实现的目标。

Lin 和 Tegmark 的一篇论文很好地总结了对数正态和/或马尔可夫过程分布无法拟合显示关键幂律行为的数据的原因...... https://ai2-s2-pdfs.s3.amazonaws.com/5ba0/3a03d844f10d7b4861d3b116818afe2b75f2 .pdf正如他们所指出的那样,“马尔可夫过程……通过预测指数衰减的互信息而严重失败……”他们的解决方案和建议是采用深度学习神经网络,例如长短期记忆 (LSTM) 模型。

作为老派,既不熟悉也不熟悉 NN 或 LSTM,我将向@glen_b 的非线性方法提个建议。但是,我更喜欢更易于处理且易于访问的解决方法,例如基于值的分位数回归。在将这种方法用于重尾保险索赔后,我知道它可以比更传统的方法(包括乘法、对数模型)更好地拟合尾部。使用 QR 的适度挑战是找到合适的分位数,以此作为模型的基础。通常,这远大于中位数。也就是说,我不想夸大这种方法,因为尾部的最极端值仍然严重缺乏拟合。

Hyndman 等人 ( http://robjhyndman.com/papers/sig-alternate.pdf ) 提出了一种替代 QR,他们称之为增强加性分位数回归他们的方法在整个分位数范围或网格中构建模型,生成概率估计或预测,这些概率估计或预测可以用任何一种极值分布进行评估,例如 Cauchy、Levy 稳定等。我还没有采用他们的方法,但似乎很有希望。

极值建模的另一种方法称为POT或阈值峰值模型。这涉及为值的经验分布设置阈值或截止值,并仅根据 GEV 或广义极值分布对高于截止值的最大值进行建模。这种方法的优点是任何可能的未来极值都可以根据模型中的参数进行校准或定位。但是,该方法有一个明显的缺点,即没有使用完整的 PDF。

最后,在 2013 年的一篇论文中,JP Bouchaud 提出了 RFIM(随机场模型),用于对显示关键性和重尾行为(如羊群、趋势、雪崩等)的复杂信息进行建模。Bouchaud 属于博学之类,其中应该包括 Mandelbrot、Shannon、Tukey、Turing 等。我可以声称对他的讨论非常感兴趣,同时对实施他的建议所涉及的严格性感到害怕. https://www.researchgate.net/profile/Jean-Philippe_Bouchaud/publication/230788728_Crises_and_Collective_Socio-Economic_Phenomena_Simple_Models_and_Challenges/links/5682d40008ae051f9aee7ee9.pdf?inViewer=0&pdfJsDownload=0&origin=publication_detail