局部和核回归(非参数)

这个问题的灵感来自一位客户对我们两个非参数数据拟合函数的询问: NxLOCREG(.) 和 NxKREG(.)。客户写道

调查 1:

"我需要帮助理解 NxLOCREG 和 NxKREG 函数。

  1. 对于 NxLOCREG 和 NxKREG - 如果 Y 是 100 个数据点,Alpha = 0.333,这是否意味着算法要查看最后 33 个数据点,还是每隔三点查看一次分布?
  2. 我最多只能使用多项式阶 3(三次方)。更大的返回值为 #NUM!。算法允许更高阶吗?
  3. 我不太清楚 NxLOCREG 和 NxKREG 之间的区别。您能给我一个简短的解释吗?"

NxLOCREG(.) 函数实现了一种局部回归算法--LOESS,又称萨维茨基-戈莱滤波器。

NxKREG(.) 函数实现了加权最小二乘回归。

这两个函数非常相似,但 NxLOCREG(.) 多了一个参数: Alpha 或 H,其取值范围在 0(不包含)和 1(包含)之间。因此,NxLOCREG 函数选择最接近的 H*N 数据点,而 NxKREG (.) 总是包括整个数据集(即 N)。

更详细地说,在给定目标值 X 的情况下,核回归过程如下:

  • 计算目标值与样本中数据点之间的距离。
  • 根据数据点之间的距离按升序排序。
  • 选择回归输入数据集:
    • (NxLOCREG 案例)选择最近(即第一个)的 H*N 数据点。
    • (NxKREG 情况)选择全部 N 个数据点。
  • 使用给定的核函数计算所选数据点的权重。
  • 建立加权最小二乘法回归模型。
  • 计算值 X 的回归值。

该程序/算法使用最接近目标值的 H*N 数据点,因此每个值都将使用(可能)不同的数据集构建自己的回归模型。

如果 Alpha = 1.0,其他参数保持不变,NxKREG(.) 和 NxLOCREG(.) 函数将返回相同的结果。

目前,NxLOCREG(.) 和 NxKREG(.) 函数最多支持 3 阶(三次)多项式。

无论选择哪种加权核函数,我们都需要一个带宽值(又称平滑参数)。NumXL 采用基于数据的带宽选择方法,使交叉验证的 RMSE 最小。

简而言之,对于给定的带宽,我们计算每个数据点的回归值(使用留一交叉验证),并计算回归值与实际值之间的 RMSE。

调查 2:

"因此,如果我们的数据中出现峰值,峰值中的一些点可能不在回归数据集中。"

这取决于您如何定义 "Spike"。如果 "尖峰 "指的是离群值(一个较大的 Y 值),那么这种方法就会包含有离群值的数据点。不过,这些数据点可能会根据它们与目标值的欧氏距离进行加权。

另一方面,如果斯派克参考了 x 域上的远程数据点,那么这些远程数据点在回归中的权重就会大大降低。

调查 3:

"如果我想手动计算中间值,Excel 的默认函数是哪种方法来产生这种局部平滑?"

是的,我们认为 Microsoft Excel 使用 LOESS 算法生成散点图中的平滑线。您可以使用 NxLOCREG(.) 函数,但我们无法确定所使用的参数值,例如核函数、多项式阶数或阿尔法值。

下载功能齐全的免费 14 天试用 您可以使用 NumXL 测试或将这些函数应用到自己的数据中。

请务必查看 技巧和窍门数据拟合 您可能感兴趣的更多文章。

  附件

评论

登录写评论。

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助