LOESS回归

一、什么是LOESS?

LOESS(Locally Estimated Scatterplot Smoothing)或LOWESS(Locally Weighted Scatterplot Smoothing)是一种非参数回归方法。简单来说,它就像一个"数据裁缝",能在散点图中巧妙地缝合出一条平滑的曲线,帮助我们看清数据背后隐藏的趋势,而不需要我们事先假设数据服从某种特定的数学模型(比如线性关系)。

核心理念: LOESS 的精髓在于"在局部做线性回归,在全局拼成平滑曲线"。

打个比方: 想象你是一个裁缝,要给一个人量身定做一件衣服。你不会只量一个地方就直接剪裁,也不会一下子把全身所有尺寸都量完再动手。你会先测量手臂,剪裁袖子;再测量腰围,剪裁腰身。每次都只关注身体的一部分,然后把这些局部剪裁好的部分巧妙地缝合起来,最终得到一件合身的衣服。LOESS 处理数据也是这样,它每次只"看"数据的一小段,在这小段里找出规律,然后把这些小段的规律"缝合"起来,形成一条平滑的曲线,展现整体趋势。

二、LOESS 的核心思想:分而治之

想象我们有一堆散乱的数据点 (x₁, y₁), (x₂, y₂), ..., (xₙ, yₙ),我们想找出 yx 变化的规律,也就是估计一个平滑函数 f(x),使得 yᵢ ≈ f(xᵢ)

LOESS是这样做的:

另一个比方: 想象你在用手描绘一张有很多高低不平点的地图上的"山脊线"。你不会一下子就画出整条线,而是会把注意力集中在地图的某个小区域,看看这个区域里点的分布,然后画出这一小段的山脊线。接着,你移动到下一个小区域,重复这个过程,直到把所有的山脊线都连接起来,形成一条平滑的整体山脊线。LOESS处理数据也是类似的逻辑。

  1. 选择目标点: 对于每一个我们想要预测的点 x₀(可以是原始数据点,也可以是介于数据点之间的任意值)。
  2. 划定"势力范围"(邻域): 找到 x₀ 周围最近的一些数据点,这些点构成了 x₀ 的"邻域"。这个邻域的大小由一个关键参数"平滑系数"控制。
  3. 分配"影响力"(加权): 在这个邻域内,离 x₀ 越近的数据点,对 x₀ 的预测值影响越大,权重就越高;反之,离得越远,权重越小。
  4. 局部拟合: 利用这些带权重的数据点,在 x₀ 的邻域内拟合一个简单的低阶多项式(通常是直线或二次曲线)。
  5. 得出局部预测: 根据拟合出的多项式,计算出 x₀ 对应的预测值 ŷ₀ = f(x₀)
  6. 重复与拼接: 对所有需要预测的点 x₀ 重复上述步骤,最终把所有的局部预测值连接起来,就形成了一条平滑的曲线。

三、权重函数:远近亲疏的量化

权重函数是LOESS的"心脏",它决定了邻域内每个点对局部回归的贡献大小。最常用的是三次权重函数(Tricube Function)

复制代码
wᵢ(x₀) = {
    (1 - |(xᵢ - x₀) / d(x₀)|³)³,   if |xᵢ - x₀| < d(x₀)
    0,                              otherwise
}

解释:

  • xᵢ:邻域中的某个数据点的x值。
  • x₀:当前要预测的目标点的x值。
  • d(x₀):从 x₀ 到其邻域中最远数据点的距离。它定义了邻域的边界。
  • |(xᵢ - x₀) / d(x₀)|:表示 xᵢ 相对于 x₀ 和邻域边界的标准化距离。这个值总是在0到1之间。
  • ³:这个立方操作使得离 x₀ 越远的点,权重衰减得越快,确保了局部性。
  • xᵢ 恰好是 x₀ 时,wᵢ(x₀) 为1(最大权重)。
  • xᵢ 位于邻域边缘时,wᵢ(x₀) 趋近于0。
  • 邻域之外的点,权重直接为0,不参与局部回归。

这个函数确保了只有离 x₀ 足够近的点才会被考虑,并且越近的点影响力越大,从而实现了"局部"拟合。

四、LOESS 的主要参数:平滑度的调控

LOESS 的效果好坏,很大程度上取决于两个主要参数的设置:

1. 平滑系数(Span 或 Bandwidth)

  • 定义: 这个参数控制着在每次局部拟合时,会包含多少比例的数据点。它通常是一个介于0到1之间的值(例如0.2到0.8)。
  • 影响:
    • 值越小: 邻域越小,曲线会更紧密地贴合原始数据点,能捕捉到更多细节,但也更容易受到噪声影响,产生"过拟合"(曲线过于曲折,失去了平滑的意义)。
    • 值越大: 邻域越大,曲线会更平滑,能更好地展现整体趋势,但可能会丢失数据中的一些重要局部特征,产生"欠拟合"(曲线过于平坦,无法反映真实变化)。
  • 选择: 选择合适的平滑系数通常需要一些经验或通过交叉验证等方法来确定。

2. 多项式阶数(Degree of Polynomial)

  • 定义: 指在每个局部区域内拟合的多项式的最高阶数。最常见的是:
    • 一阶(Degree = 1): 局部拟合的是一条直线(线性LOESS)。这种方法计算简单,结果相对稳健,适用于数据趋势变化不那么剧烈的情况。
    • 二阶(Degree = 2): 局部拟合的是一条二次曲线。这种方法能捕捉到更复杂的局部弯曲,使得整体曲线更加平滑和灵活,但计算量稍大。
  • 选择: 通常一阶或二阶就足够了。更高阶的多项式可能会导致局部拟合不稳定,出现不自然的波动。

五、LOESS 的优缺点

✅ 优点

  • 非参数性: 无需对数据的潜在分布或函数形式做任何假设,非常灵活,能适应各种复杂的数据模式。
  • 捕捉非线性关系: 能够很好地揭示数据中复杂的非线性趋势,这是传统线性回归难以做到的。
  • 对异常值相对鲁棒: 结合稳健回归技术(Robust LOESS),可以有效降低异常值对平滑曲线的影响。
  • 直观易懂: 结果通常以图形方式呈现,易于理解和解释数据趋势。

❌ 缺点

  • 计算成本高: 由于需要对每个目标点进行局部回归,当数据量非常大时,计算速度会显著变慢。
  • 难以外推: LOESS 是一种局部方法,它的预测能力仅限于观测数据的范围之内。对于超出观测范围的数据点,其外推结果往往不可靠。
  • 结果难以解释: 由于没有一个显式的数学公式来描述整个平滑曲线,因此无法像参数模型那样直接得到系数来解释变量间的定量关系。
  • 参数选择敏感: 平滑系数的选择对结果影响很大,需要仔细调整。

六、LOESS 的应用场景

LOESS 因其灵活性和非参数性,在许多领域都有广泛应用:

  • 探索性数据分析(EDA): 在数据分析初期,快速可视化数据趋势,发现潜在模式和异常值。
  • 时间序列分析: 平滑时间序列数据,去除噪声,揭示长期趋势和季节性模式。
  • 信号处理: 从含有噪声的信号中提取平滑的底层信号。
  • 生物医学研究: 分析基因表达数据、药物剂量反应曲线等。
  • 环境科学: 监测污染物浓度随时间或空间的变化趋势。
  • 经济学: 分析经济指标的波动趋势。
相关推荐
回眸&啤酒鸭2 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅2 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein2 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu2 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb2 天前
智能网联汽车安全能力框架
人工智能
龙亘川2 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化
飞猫的边缘AI2 天前
边缘AI应用:家用AI摄像头怎么做数据训练?
人工智能·边缘计算·ai算法·边缘ai