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): 在数据分析初期,快速可视化数据趋势,发现潜在模式和异常值。
  • 时间序列分析: 平滑时间序列数据,去除噪声,揭示长期趋势和季节性模式。
  • 信号处理: 从含有噪声的信号中提取平滑的底层信号。
  • 生物医学研究: 分析基因表达数据、药物剂量反应曲线等。
  • 环境科学: 监测污染物浓度随时间或空间的变化趋势。
  • 经济学: 分析经济指标的波动趋势。
相关推荐
美团技术团队14 小时前
美团开源LongCat-Audio-Codec,高效语音编解码器助力实时交互落地
人工智能
程思扬14 小时前
开源 + 实时 + 无网络限制:Excalidraw 是流程图协作新选择
网络·人工智能·阿里云·ai·开源·流程图
聚合菌14 小时前
【数据启元计划】推荐有礼:最高领100元话费或热门视频会员年卡!
人工智能
松岛雾奈.23014 小时前
机器学习--KNN算法中的距离、范数、正则化
人工智能·算法·机器学习
程途拾光15815 小时前
用流程图优化工作流:快速识别冗余环节,提升效率
大数据·论文阅读·人工智能·流程图·论文笔记
Lab4AI大模型实验室15 小时前
【Github热门项目】DeepSeek-OCR项目上线即突破7k+星!突破10倍无损压缩,重新定义文本-视觉信息处理
人工智能·github·deepseek-ocr
Brduino脑机接口技术答疑15 小时前
支持向量机(SVM)在脑电情绪识别中的学术解析与研究进展
人工智能·算法·机器学习·支持向量机·数据分析
北京耐用通信15 小时前
从‘卡壳’到‘丝滑’:耐达讯自动化PROFIBUS光纤模块如何让RFID读写器实现‘零延迟’物流追踪?”
网络·人工智能·科技·物联网·网络协议·自动化
xier_ran15 小时前
深度学习:Mini-batch 大小选择与 SGD 和 GD
人工智能·算法·机器学习
CodeLiving15 小时前
MCP学习三——MCP相关概念
人工智能·mcp