6.9 KiB
第六章 核光滑
KNN引入,对30-NN来说,拟合的函数并不连续,“不连续是不好看并且不必要的”,“我们可以分 配权重,使其随着与目标点的距离平滑降低.”
核:“根据距离远近分配发言权的投票机制。”“核”本质上都在回答一个问题:两个点之间到底有多“亲近”?
在统计学和机器学习中,Nadaraya–Watson 核回归(Nadaraya–Watson Kernel Regression) 是一种非参数预测方法。它的核心思想是:对于一个新的输入点 $x$,其预测值 \hat{f}(x) 是训练集中所有目标值 y_i 的加权平均,而权重的大小取决于训练点 x_i 与查询点 x 之间的距离。
距离越近的点,权重越大;距离越远的点,权重越小。
1. 数学表达式
假设我们有训练数据集 ${(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)}$,对于给定的输入 $x$,Nadaraya-Watson 核回归的估算式为:
\hat{f}(x) = \sum_{i=1}^{n} w(x, x_i) y_i
其中,w(x, x_i) 是核权重,定义为:
w(x, x_i) = \frac{K\left(\frac{x - x_i}{h}\right)}{\sum_{j=1}^{n} K\left(\frac{x - x_j}{h}\right)}
将权重带入回归公式,得到完整的 Nadaraya–Watson 表达式:
\hat{f}(x) = \frac{\sum_{i=1}^{n} K\left(\frac{x - x_i}{h}\right) y_i}{\sum_{j=1}^{n} K\left(\frac{x - x_j}{h}\right)}
符号说明:
-
$K(\cdot)$:核函数(Kernel function)。常用的有高斯核 $K(u) = \frac{1}{\sqrt{2\pi}} e^{-\frac{u^2}{2}}$。它必须是非负的,且通常在 0 处取得最大值。
-
$h$:带宽(Bandwidth)。这是最重要的超参数。
h越大,平滑程度越高(可能欠拟合);h越小,曲线越波动(可能过拟合)。 -
分母:用于归一化,确保所有权重的总和为 1。
2. 优缺点
-
优点:不需要假设数据的具体分布(是非参数的),能够拟合非常复杂的非线性关系。
-
缺点:计算量大(预测每个点都要遍历整个训练集,复杂度 $O(n)$);容易受“边界偏差”影响;在高维空间表现较差(维度灾难)。
-
核函数在非参数估计中充当局部加权机制,使得函数估计在某一点附近主要依赖邻域数据;当与局部多项式拟合结合时,其效果类似于对目标函数在该点进行加权的局部泰勒近似。
流形:约束、自由度、轨道
- 高维展开:把复杂函数拆成低维函数的叠加,主动砍掉高阶交互
可变系数模型的定义及其局部加权最小二乘估计式:
1. 可变系数模型 (Varying Coefficient Model)
该式定义了条件线性模型,其中系数是变量 Z 的函数:
f(X) = \alpha(Z) + \beta_1(Z)X_1 + \dots + \beta_q(Z)X_q {}
2. 局部加权最小二乘估计 (Locally Weighted Least Squares)
该式展示了如何通过目标函数最小化来拟合给定点 z_0 处的参数:
\min_{\alpha(z_0), \beta(z_0)} \sum_{i=1}^{N} K_\lambda(z_0, z_i) \left( y_i - \alpha(z_0) - x_{1i}\beta_1(z_0) - \dots - x_{qi}\beta_q(z_0) \right)^2 {}
高维函数太复杂 → 用 ANOVA 分解 → 再人为限制只保留低阶结构 → 用 backfitting 或局部回归去估计
1. 可变系数模型 (Varying Coefficient Models)
可变系数模型是线性模型的推广。它保留了线性模型的易解释性,但允许系数不再是常数,而是随着另一个变量 $Z$(称为调节变量)的变化而变化。
-
核心方程:
f(X) = \alpha(Z) + \beta_1(Z)X_1 + \dots + \beta_q(Z)X_q -
直观理解: 想象你在研究“工龄”对“薪资”的影响。在线性模型中,这个影响(斜率)是固定的;但在可变系数模型中,这个斜率可以随“行业类型”或“地理位置”(
Z) 而平滑变化。 -
拟合方法: 通常使用局部回归(如式 6.17 所示)。在每一个特定的
z_0附近,利用核函数K_\lambda对样本加权,只看邻近的数据点来估算当前的\alpha(z_0)和 $\beta(z_0)$。
2. 后验拟合算法 (Backfitting Algorithm)
当模型变得复杂(例如加法模型 $Y = \sum f_j(X_j) + \epsilon$)时,我们无法一次性拟合所有非参数函数。Backfitting 是一种“分而治之”的迭代算法。
算法逻辑:
-
初始化: 先给每个函数
f_j一个初始值(通常是 0)。 -
循环迭代: 对于每一个变量 $j$,计算其“残差”:
\text{Residual} = Y - \alpha - \sum_{k \neq j} \hat{f}_k(X_k) -
局部更新: 用这个残差对
X_j进行平滑处理(如移动平均或样条回归),得到更新后的 $\hat{f}_j$。 -
重复: 轮流更新所有变量,直到每个函数的变化都非常小(收敛)为止。
比喻: 就像调音师调钢琴。先调准一根弦,此时其他弦可能还不准;于是再去调下一根,如此反复循环,直到整台琴的音准达到平衡。
3. 两者的联系
-
应用场景: Backfitting 通常用于拟合广义加法模型 (GAM)。
-
计算优势: 它不需要进行庞大的矩阵求逆,只需反复调用简单的平滑算子(Smoother),这使得它在处理高维数据时非常高效。
-
灵活性: 你可以轻松地在 Backfitting 框架下加入可变系数项,将复杂的非线性关系拆解为一系列简单的局部一维拟合。
总结表:
| 特性 | 可变系数模型 | Backfitting 算法 |
| 本质 | 一种具体的模型结构 | 一种通用的迭代求解算法 |
| 解决问题 | 系数随环境/时间变化的动态性 | 多个非参数项联立拟合的计算难题 |
| 关键点 | 局部加权回归 | 循环更新残差 |
这两个概念在处理金融时间序列、流行病学分析以及任何具有“情境相关性”的数据时都非常强大。
在高维情况下,我们不直接拟合 $Y = f(X,Z)$,而是假设:
X 和 Y 的关系是线性的,但这个线性关系的系数由 Z 决定
即:
Y = \sum_j \beta_j(Z)\, X_j
因此问题转化为:去学习这些函数 $\beta_j(Z)$
问题:拟合 f(X) ↓(结构假设)ANOVA 分解\加性模型\二阶交互模型\可变系数模型 f(X) = g1(X1) + g2(X2) + ... ↓(优化方法) backfitting ↓(具体拟合) 核平滑 / spline / 局部回归
“阶数为 的自回归(autoregressive)时间序列形式为
“yt = β0 + β1yt−1 + β2yt−2 + ⋯ + βkyt−k + εt zt = (yt−1, yt−2, ⋯ , yt−k)”
用记滞后集(lag set),模型则看起来是一个标准的线性模型 ,而且 一般使用最小二乘来拟合.采用核为 的局部最小二乘拟合允许模型 根据序列的短期记忆(short-term history of the series)来变化.这区别于更传统 的因窗口时间变化的动态线性模型.”
第六章可能还需要再看,如核方法