局部加权散点平滑(Locally Weighted Scatterplot Smoothing, LOWESS)算法的原理与稳健非参数回归过程
字数 3046 2025-12-10 04:49:30

局部加权散点平滑(Locally Weighted Scatterplot Smoothing, LOWESS)算法的原理与稳健非参数回归过程

题目描述
局部加权散点平滑是一种非参数回归方法,用于拟合数据点间的关系而不预先假设全局函数形式。其核心思想是:在预测任意一点的响应值时,仅使用该点邻域内的数据,并赋予邻域内各点不同的权重(距离近的权重大,距离远的权重小),然后通过加权最小二乘进行局部多项式拟合。LOWESS 特别适用于数据模式复杂、存在异方差性或离群点的场景,并能产生平滑的拟合曲线。本题要求详细讲解 LOWESS 的原理、权重函数设计、局部拟合步骤以及其稳健性处理机制。

解题过程讲解

1. 算法核心思想与基本设定
假设我们有观测数据集 \(\{ (x_i, y_i) \}_{i=1}^n\),目标是估计任意点 \(x\) 处的条件均值 \(m(x) = E[y \mid x]\)。LOWESS 不假定 \(m(x)\) 的全局形式(如线性、多项式),而是对每个目标点 \(x\) 独立进行局部拟合。对于给定的目标点 \(x_0\),其拟合值 \(\hat{y}_0\) 通过以下步骤得到:

  1. 确定邻域:根据带宽参数 \(h\)(或最近邻比例 \(\alpha\))选择 \(x_0\) 邻域内的数据点。通常使用 最近邻带宽:设 \(d_k(x_0)\)\(x_0\) 到第 \(k\) 个最近邻的距离,其中 \(k = \lfloor \alpha n \rfloor\)\(\alpha \in (0,1]\)。则邻域定义为所有满足 \(|x_i - x_0| \leq d_k(x_0)\) 的点。

  2. 计算权重:为邻域内每个点 \((x_i, y_i)\) 分配权重 \(w_i(x_0)\),该权重随 \(|x_i - x_0|\) 增大而平滑减小至零。

2. 权重函数的设计
权重函数需满足:对称、非负、在零点处最大、在边界处平滑降至零。最常用的是 三次方权重函数(Tricube weight function):

\[w_i(x_0) = T\left( \frac{|x_i - x_0|}{d_k(x_0)} \right), \quad \text{其中 } T(u) = \begin{cases} (1 - u^3)^3 & \text{若 } u < 1 \\ 0 & \text{若 } u \geq 1 \end{cases} \]

这里 \(u = \frac{|x_i - x_0|}{d_k(x_0)}\) 是标准化距离。该函数在 \(u=0\) 时权重为 1,在 \(u=1\) 时平滑降为 0,确保邻域边界处的连续性。

3. 局部加权最小二乘拟合
在目标点 \(x_0\) 处,使用邻域内数据拟合一个 局部多项式(通常为一次或二次)。以局部线性拟合为例,我们求解以下加权最小二乘问题:

\[\min_{\beta_0, \beta_1} \sum_{i=1}^n w_i(x_0) \left[ y_i - (\beta_0 + \beta_1 (x_i - x_0)) \right]^2 \]

注意:这里将自变量中心化到 \(x_0\),即用 \((x_i - x_0)\) 而非 \(x_i\),这样拟合的截距 \(\beta_0\) 直接就是 \(x_0\) 处的预测值 \(\hat{y}_0\)。解为:

\[\hat{\beta} = (X^T W X)^{-1} X^T W Y \]

其中设计矩阵 \(X\) 的第 \(i\) 行为 \([1, x_i - x_0]\)\(W = \text{diag}(w_1(x_0), \dots, w_n(x_0))\)\(Y = [y_1, \dots, y_n]^T\)。则预测值 \(\hat{y}_0 = \hat{\beta}_0\)

4. 稳健性处理:迭代重加权
原始 LOWESS(也称 LOESS)包含一个 稳健迭代步骤 以抵抗离群点影响:

  • 第一轮拟合:用上述方法得到初始预测值 \(\hat{y}_i^{(1)}\)
  • 计算残差\(r_i = y_i - \hat{y}_i^{(1)}\)
  • 计算稳健权重:根据残差大小分配额外权重 \(\delta_i\)。常用 双平方权重函数

\[\delta_i = B\left( \frac{r_i}{6 \cdot \text{median}(|r|)} \right), \quad B(u) = \begin{cases} (1 - u^2)^2 & \text{若 } |u| < 1 \\ 0 & \text{若 } |u| \geq 1 \end{cases} \]

这里分母的 6 倍中位数绝对残差是稳健尺度估计,残差大于该值的点权重降为零(被视为离群点)。

  • 更新权重:将原始权重更新为 \(w_i^{\text{new}}(x) = w_i(x) \cdot \delta_i\)
  • 重新拟合:用新权重再进行局部加权最小二乘,得到更稳健的预测值 \(\hat{y}_i^{(2)}\)
    通常迭代 2-3 次即可。

5. 算法流程总结

  1. 输入:数据 \((x_i, y_i)\),平滑参数 \(\alpha\),多项式次数 \(d\)(常取 1 或 2),稳健迭代次数 \(t\)
  2. 对每个目标点 \(x_0\) (通常取所有数据点或等间距网格点)
    a. 计算最近邻带宽 \(d_k(x_0)\)
    b. 计算初始权重 \(w_i(x_0)\) 基于三次方函数。
    c. 进行稳健迭代(重复 \(t\) 次):
    i. 用当前权重进行局部多项式加权最小二乘,得到预测值。
    ii. 计算残差,得到稳健权重 \(\delta_i\)
    iii. 更新权重:\(w_i \leftarrow w_i \cdot \delta_i\)
    d. 输出最终预测值 \(\hat{y}_0\)
  3. 输出:所有目标点的预测值,连接成平滑曲线。

关键点说明

  • 带宽选择\(\alpha\) 控制平滑程度,越大曲线越平滑(可能欠拟合),越小曲线越波动(可能过拟合),可通过交叉验证选择。
  • 计算复杂度:对每个目标点都需解加权最小二乘,计算量为 \(O(n^2)\) 量级,可用 KD 树等加速邻域搜索。
  • 与核回归的区别:LOWESS 使用局部多项式而非仅常数拟合,且在边界处偏差更小;其权重函数具有紧支撑(超出带宽权重为零),计算更高效。

总结
LOWESS 通过局部加权多项式拟合,实现了灵活的非参数回归;其稳健迭代步骤通过降低离群点权重,使拟合结果对异常值不敏感。该算法无需预设全局模型,能自适应数据局部结构,是探索性数据分析与可视化中的强大工具。

局部加权散点平滑(Locally Weighted Scatterplot Smoothing, LOWESS)算法的原理与稳健非参数回归过程 题目描述 局部加权散点平滑是一种非参数回归方法,用于拟合数据点间的关系而不预先假设全局函数形式。其核心思想是:在预测任意一点的响应值时,仅使用该点邻域内的数据,并赋予邻域内各点不同的权重(距离近的权重大,距离远的权重小),然后通过加权最小二乘进行局部多项式拟合。LOWESS 特别适用于数据模式复杂、存在异方差性或离群点的场景,并能产生平滑的拟合曲线。本题要求详细讲解 LOWESS 的原理、权重函数设计、局部拟合步骤以及其稳健性处理机制。 解题过程讲解 1. 算法核心思想与基本设定 假设我们有观测数据集 \( \{ (x_ i, y_ i) \}_ {i=1}^n \),目标是估计任意点 \( x \) 处的条件均值 \( m(x) = E[ y \mid x] \)。LOWESS 不假定 \( m(x) \) 的全局形式(如线性、多项式),而是对每个目标点 \( x \) 独立进行局部拟合。对于给定的目标点 \( x_ 0 \),其拟合值 \( \hat{y}_ 0 \) 通过以下步骤得到: 确定邻域 :根据带宽参数 \( h \)(或最近邻比例 \( \alpha \))选择 \( x_ 0 \) 邻域内的数据点。通常使用 最近邻带宽 :设 \( d_ k(x_ 0) \) 为 \( x_ 0 \) 到第 \( k \) 个最近邻的距离,其中 \( k = \lfloor \alpha n \rfloor \),\( \alpha \in (0,1] \)。则邻域定义为所有满足 \( |x_ i - x_ 0| \leq d_ k(x_ 0) \) 的点。 计算权重 :为邻域内每个点 \( (x_ i, y_ i) \) 分配权重 \( w_ i(x_ 0) \),该权重随 \( |x_ i - x_ 0| \) 增大而平滑减小至零。 2. 权重函数的设计 权重函数需满足:对称、非负、在零点处最大、在边界处平滑降至零。最常用的是 三次方权重函数 (Tricube weight function): \[ w_ i(x_ 0) = T\left( \frac{|x_ i - x_ 0|}{d_ k(x_ 0)} \right), \quad \text{其中 } T(u) = \begin{cases} (1 - u^3)^3 & \text{若 } u < 1 \\ 0 & \text{若 } u \geq 1 \end{cases} \] 这里 \( u = \frac{|x_ i - x_ 0|}{d_ k(x_ 0)} \) 是标准化距离。该函数在 \( u=0 \) 时权重为 1,在 \( u=1 \) 时平滑降为 0,确保邻域边界处的连续性。 3. 局部加权最小二乘拟合 在目标点 \( x_ 0 \) 处,使用邻域内数据拟合一个 局部多项式 (通常为一次或二次)。以局部线性拟合为例,我们求解以下加权最小二乘问题: \[ \min_ {\beta_ 0, \beta_ 1} \sum_ {i=1}^n w_ i(x_ 0) \left[ y_ i - (\beta_ 0 + \beta_ 1 (x_ i - x_ 0)) \right ]^2 \] 注意:这里将自变量中心化到 \( x_ 0 \),即用 \( (x_ i - x_ 0) \) 而非 \( x_ i \),这样拟合的截距 \( \beta_ 0 \) 直接就是 \( x_ 0 \) 处的预测值 \( \hat{y}_ 0 \)。解为: \[ \hat{\beta} = (X^T W X)^{-1} X^T W Y \] 其中设计矩阵 \( X \) 的第 \( i \) 行为 \( [ 1, x_ i - x_ 0] \),\( W = \text{diag}(w_ 1(x_ 0), \dots, w_ n(x_ 0)) \),\( Y = [ y_ 1, \dots, y_ n]^T \)。则预测值 \( \hat{y}_ 0 = \hat{\beta}_ 0 \)。 4. 稳健性处理:迭代重加权 原始 LOWESS(也称 LOESS)包含一个 稳健迭代步骤 以抵抗离群点影响: 第一轮拟合 :用上述方法得到初始预测值 \( \hat{y}_ i^{(1)} \)。 计算残差 :\( r_ i = y_ i - \hat{y}_ i^{(1)} \)。 计算稳健权重 :根据残差大小分配额外权重 \( \delta_ i \)。常用 双平方权重函数 : \[ \delta_ i = B\left( \frac{r_ i}{6 \cdot \text{median}(|r|)} \right), \quad B(u) = \begin{cases} (1 - u^2)^2 & \text{若 } |u| < 1 \\ 0 & \text{若 } |u| \geq 1 \end{cases} \] 这里分母的 6 倍中位数绝对残差是稳健尺度估计,残差大于该值的点权重降为零(被视为离群点)。 更新权重 :将原始权重更新为 \( w_ i^{\text{new}}(x) = w_ i(x) \cdot \delta_ i \)。 重新拟合 :用新权重再进行局部加权最小二乘,得到更稳健的预测值 \( \hat{y}_ i^{(2)} \)。 通常迭代 2-3 次即可。 5. 算法流程总结 输入 :数据 \( (x_ i, y_ i) \),平滑参数 \( \alpha \),多项式次数 \( d \)(常取 1 或 2),稳健迭代次数 \( t \)。 对每个目标点 \( x_ 0 \) (通常取所有数据点或等间距网格点) : a. 计算最近邻带宽 \( d_ k(x_ 0) \)。 b. 计算初始权重 \( w_ i(x_ 0) \) 基于三次方函数。 c. 进行稳健迭代 (重复 \( t \) 次): i. 用当前权重进行局部多项式加权最小二乘,得到预测值。 ii. 计算残差,得到稳健权重 \( \delta_ i \)。 iii. 更新权重:\( w_ i \leftarrow w_ i \cdot \delta_ i \)。 d. 输出最终预测值 \( \hat{y}_ 0 \)。 输出 :所有目标点的预测值,连接成平滑曲线。 关键点说明 带宽选择 :\( \alpha \) 控制平滑程度,越大曲线越平滑(可能欠拟合),越小曲线越波动(可能过拟合),可通过交叉验证选择。 计算复杂度 :对每个目标点都需解加权最小二乘,计算量为 \( O(n^2) \) 量级,可用 KD 树等加速邻域搜索。 与核回归的区别 :LOWESS 使用局部多项式而非仅常数拟合,且在边界处偏差更小;其权重函数具有紧支撑(超出带宽权重为零),计算更高效。 总结 LOWESS 通过局部加权多项式拟合,实现了灵活的非参数回归;其稳健迭代步骤通过降低离群点权重,使拟合结果对异常值不敏感。该算法无需预设全局模型,能自适应数据局部结构,是探索性数据分析与可视化中的强大工具。