期望分位数回归模型
好的,同学们!今天我们深入讲解带约束的惩罚期望分位数回归模型以及如何选择它的关键参数λ\lambdaλ。这些公式看起来有点复杂,但别担心,我们会一步步拆解,理解每个部分的含义和作用。
核心目标: 我们想建立一个回归模型,但它有3个特殊要求:
- 关注特定“分位点” (Expectile Focus): 不像普通最小二乘回归只关心“平均值”,我们可能更关心数据整体中“偏低”(比如τ=0.25\tau = 0.25τ=0.25)、“中间”(τ=0.5\tau = 0.5τ=0.5)或“偏高”(τ=0.75\tau = 0.75τ=0.75)部分的数据趋势。τ\tauτ就是这个分位点参数。
- 防止过拟合,自动选特征 (Penalization & Feature Selection): 特别是在变量很多(高维)而数据点相对较少时,模型容易记住训练数据的噪声(过拟合)。L1惩罚项 (∥Dβ∥1\| D\beta \|_1∥Dβ∥1) 帮助我们解决这个问题。
- 融入专家知识或现实限制 (Constraints): 我们知道某些变量之间的关系必须满足特定条件(比如“价格系数不能是负数”、“某些系数之和必须等于某个固定值”)。这些知识可以通过约束条件(Cβ≥dC\beta \geq dCβ≥d,Eβ=fE\beta = fEβ=f)直接加到模型里。
公式详解 (像搭积木一样理解):
1. 带约束的惩罚期望分位数回归模型 (公式 2.4):
minβ\min_{\beta}minβρτ(Y−Xβ)⏟(a) 期望分位数损失\underbrace{\rho_{\tau}\left( Y - X\beta \right)}_{\text{(a) 期望分位数损失}}(a) 期望分位数损失ρτ(Y−Xβ)+λ\lambdaλ∥Dβ∥1⏟(b) L1惩罚项\underbrace{\| D\beta \|_1}_{\text{(b) L1惩罚项}}(b) L1惩罚项∥Dβ∥1s.t.\quad \text{s.t.} \quads.t.Cβ≥d⏟(c) 不等式约束\underbrace{C\beta \geq d}_{\text{(c) 不等式约束}}(c) 不等式约束Cβ≥d,Eβ=f⏟(d) 等式约束\underbrace{E\beta = f}_{\text{(d) 等式约束}}(d) 等式约束Eβ=f
- minβ\min_{\beta}minβ: 表示我们要找一组回归系数β\betaβ(β\betaβ)(beta),使得后面整个表达式达到最小值。β\betaβ就是我们模型的核心,每个βj\beta_jβj(βj\beta_jβj) 代表第jjj(jjj) 个预测变量 (XjX_jXj(XjX_jXj)) 对响应变量 (YYY(YYY)) 的影响大小。
- 块 (a)ρτ(Y−Xβ)\rho_{\tau}(Y - X\beta)ρτ(Y−Xβ):期望分位数损失函数
- Y−XβY - X\betaY−Xβ: 这是模型的残差向量。XβX\betaXβ是用当前系数β\betaβ预测出的YYY值,YYY是真实值,它们的差就是预测误差(残差)。
- ρτ(r)\rho_{\tau}(r)ρτ(r): 这是核心!它是一个非对称的损失函数(公式 2.2)。想象一下:
- 当某个数据点的残差ri≥0r_i \geq 0ri≥0(ri≥0r_i \geq 0ri≥0) (预测值 < 真实值),惩罚是τ⋅(ri)2\tau \cdot (r_i)^2τ⋅(ri)2.
- 当残差ri<0r_i < 0ri<0(ri<0r_i < 0ri<0) (预测值 > 真实值),惩罚是(1−τ)⋅(ri)2(1 - \tau) \cdot (r_i)^2(1−τ)⋅(ri)2.
- τ\tauτ的作用:τ\tauτ(τ\tauτ) 控制非对称的程度。
- τ=0.5\tau = 0.5τ=0.5: 损失变成对称的0.5⋅(ri)20.5 \cdot (r_i)^20.5⋅(ri)2,等价于普通最小二乘回归(OLS),关注均值。
- τ<0.5\tau < 0.5τ<0.5(τ<0.5\tau < 0.5τ<0.5) (如τ=0.25\tau = 0.25τ=0.25(τ=0.25\tau = 0.25τ=0.25)):对预测值偏低(真实值 > 预测值)的惩罚变轻(τ\tauτ小),对预测值偏高(真实值 < 预测值)的惩罚变重(1−τ1-\tau1−τ大)。模型会更倾向于拟合数据分布中偏低的部分。
- τ>0.5\tau > 0.5τ>0.5(τ>0.5\tau > 0.5τ>0.5) (如τ=0.75\tau = 0.75τ=0.75(τ=0.75\tau = 0.75τ=0.75)):相反,对预测值偏高的惩罚变轻(τ\tauτ大),对预测值偏低的惩罚变重(1−τ1-\tau1−τ小)。模型会更倾向于拟合数据分布中偏高的部分。
- ∑ρτ(⋯ )\sum \rho_{\tau}(\cdots)∑ρτ(⋯): 把数据集中所有数据点 (i=1i = 1i=1(i=1i = 1i=1) 到nnn(nnn)) 的损失ρτ(ri)\rho_{\tau}(r_i)ρτ(ri)加起来。我们要找的β\betaβ就是这个总和最小的那个。
- 块 (b)λ∥Dβ∥1\lambda \| D\beta \|_1λ∥Dβ∥1:L1惩罚项 (Lasso型惩罚)
- ∥⋅∥1\| \cdot \|_1∥⋅∥1: 这是 L1 范数。对于一个向量v=(v1,v2,…,vm)v = (v_1, v_2, \ldots, v_m)v=(v1,v2,…,vm)(v=(v1,v2,…,vm)v = (v_1, v_2, \ldots, v_m)v=(v1,v2,…,vm)),∥v∥1=∣v1∣+∣v2∣+⋯+∣vm∣\| v \|_1 = |v_1| + |v_2| + \cdots + |v_m|∥v∥1=∣v1∣+∣v2∣+⋯+∣vm∣. 它计算向量所有元素绝对值的和。
- DβD\betaDβ:DDD(DDD) 是一个m×pm \times pm×p(m×pm \times pm×p) 的矩阵。它定义了惩罚作用在β\betaβ的何种线性组合上。
- 最简单的DDD是单位矩阵III(III) (m=pm = pm=p(m=pm = pm=p)),此时∥Dβ∥1=∥β∥1=∣β1∣+∣β2∣+⋯+∣βp∣\| D\beta \|_1 = \| \beta \|_1 = |\beta_1| + |\beta_2| + \cdots + |\beta_p|∥Dβ∥1=∥β∥1=∣β1∣+∣β2∣+⋯+∣βp∣. 这是最常见的Lasso惩罚,直接作用在每个系数上。
- DDD也可以是其他矩阵,比如差分矩阵(让相邻系数变化平滑)或分组矩阵。论文没有具体指定,说明DDD可以根据实际问题来设计。
- λ\lambdaλ(λ\lambdaλ):正则化参数。这是我们需要精心选择的超参数!
- λ=0\lambda = 0λ=0: 惩罚项消失,模型退化为无约束的期望分位数回归,容易过拟合(尤其在变量多时)。
- λ→∞\lambda \to \inftyλ→∞(λ→∞\lambda \to \inftyλ→∞):惩罚力度无穷大,迫使DβD\betaDβ的所有分量趋向于0(如果DDD是单位阵,则所有βj\beta_jβj趋向于0),模型极度简化(可能只剩常数项),导致欠拟合。
- 关键作用:λ\lambdaλ在 模型复杂度 (尽量拟合数据) 和 防止过拟合 (简化模型,系数稀疏化) 之间进行权衡。合适的λ\lambdaλ能自动将一些不重要的βj\beta_jβj(或其线性组合)压缩到 正好等于0 ,实现特征选择。它还能提高模型的稳定性和泛化能力。
- 块 ©Cβ≥dC\beta \geq dCβ≥d:不等式约束
- CCC(CCC) 是一个q×pq \times pq×p(q×pq \times pq×p) 的矩阵。
- ddd(ddd) 是一个qqq(qqq) 维向量。
- 这代表了qqq(qqq) 个线性不等式约束。例如:
- 要求所有系数非负:β1≥0,β2≥0,…,βp≥0\beta_1 \geq 0, \beta_2 \geq 0, \ldots, \beta_p \geq 0β1≥0,β2≥0,…,βp≥0. 此时CCC是单位矩阵III(III) (q=pq = pq=p(q=pq = pq=p)),ddd是零向量000(000).
- 要求系数β1+β2≥1\beta_1 + \beta_2 \geq 1β1+β2≥1: 此时C=[1,1,0,…,0]C = [1, 1, 0, \ldots, 0]C=[1,1,0,…,0](1×p1 \times p1×p(1×p1 \times p1×p)),d=[1]d = [1]d=[1].
- 要求系数单调递增:βj≤βj+1\beta_j \leq \beta_{j+1}βj≤βj+1. 此时CCC的每一行对应一个相邻系数的差分约束(如[−1,1,0,…][-1, 1, 0, \ldots][−1,1,0,…]),ddd为零向量。
- 块 (d)Eβ=fE\beta = fEβ=f:等式约束
- EEE(EEE) 是一个s×ps \times ps×p(s×ps \times ps×p) 的矩阵。
- fff(fff) 是一个sss(sss) 维向量。
- 这代表了sss(sss) 个严格的线性等式约束。例如:
- 要求某些系数之和等于常数:β1+β2+β3=4.3\beta_1 + \beta_2 + \beta_3 = 4.3β1+β2+β3=4.3(如公式 3.2)。此时E=[1,1,1,0,…,0]E = [1, 1, 1, 0, \ldots, 0]E=[1,1,1,0,…,0](1×p1 \times p1×p(1×p1 \times p1×p)),f=[4.3]f = [4.3]f=[4.3].
- 要求某个系数等于特定值:β5=0.25\beta_5 = 0.25β5=0.25. 此时E=[0,0,0,0,1,0,…,0]E = [0, 0, 0, 0, 1, 0, \ldots, 0]E=[0,0,0,0,1,0,…,0](1×p1 \times p1×p(1×p1 \times p1×p)),f=[0.25]f = [0.25]f=[0.25].
总结公式 (2.4): 我们想找到一组回归系数β\betaβ, 它 最小化 期望分位数损失(聚焦于数据分布的特定位置),同时 受到L1惩罚项的调节(控制复杂度,选择特征),并且 严格满足一系列由先验知识或实际问题决定的线性不等式和等式约束。
2. 选择关键参数 λ:SIC 准则 (公式 2.5 & 2.6)
既然λ\lambdaλ如此重要,怎么选它呢?传统方法如交叉验证(CV)在高维数据(变量多,样本相对少)下容易 过拟合 。论文采用了Hu et al. (2015)和Liu et al. (2020)的思路,使用基于自由度的 Schwarz Information Criterion (SIC) ,也叫Bayesian Information Criterion (BIC)。它权衡模型的拟合优度和复杂度。
-
公式 (2.5):
SIC(λ)=ln(1n∑i=1nρi(τ)⏟权重(yi−μ^i,λ)2)⏟(e) 加权平均损失的对数+lnn2ndf(μ^λ)⏟(f) 复杂度惩罚项\operatorname{SIC}\left( \lambda \right) = \underbrace{\ln \left( \frac{1}{n} \sum_{i=1}^{n} \underbrace{\rho_i \left( \tau \right) }_{\text{权重}} \left( y_i - \widehat{\mu}_{i,\lambda} \right)^2 \right) }_{\text{(e) 加权平均损失的对数}} + \underbrace{\frac{\ln n}{2n} \operatorname{df} \left( \widehat{\mu}_{\lambda} \right) }_{\text{(f) 复杂度惩罚项}}SIC(λ)=(e) 加权平均损失的对数lnn1i=1∑n权重ρi(τ)(yi−μi,λ)2+(f) 复杂度惩罚项2nlnndf(μλ) -
y^i,λ\widehat{y}_{i,\lambda}yi,λ(公式里的μ^i,λ\widehat{\mu}_{i,\lambda}μi,λ): 这是当我们使用某个特定的λ\lambdaλ训练好模型后,对第iii(iii) 个数据点的预测值。
-
块 (e)ln(1n∑i=1n[ρi(τ)⋅(yi−y^i,λ)2])\ln \left( \frac{1}{n} \sum_{i=1}^{n} \left[ \rho_i(\tau) \cdot (y_i - \widehat{y}_{i,\lambda})^2 \right] \right)ln(n1∑i=1n[ρi(τ)⋅(yi−yi,λ)2]):对数变换的加权平均损失
- (yi−y^i,λ)2(y_i - \widehat{y}_{i,\lambda})^2(yi−yi,λ)2: 第iii个点的预测误差(残差)的平方。
- ρi(τ)\rho_i(\tau)ρi(τ)(公式 2.6):动态权重! 这个权重依赖于残差的方向和当前的分位点τ\tauτ:
ρi(τ)={τ, if yi>μ^i,λ1−τ, if yi≤μ^i,λ\rho_i \left( \tau \right) = \begin{cases} \tau , & \text{ if } y_i > \widehat{\mu}_{i,\lambda} \\ 1 - \tau , & \text{ if } y_i \leq \widehat{\mu}_{i,\lambda} \end{cases}ρi(τ)={τ,1−τ, if yi>μi,λ if yi≤μi,λ- 如果真实值yiy_iyi大于 预测值y^i,λ\widehat{y}_{i,\lambda}yi,λ(预测偏低),权重 =τ\tauτ.
- 如果真实值yiy_iyi小于或等于 预测值y^i,λ\widehat{y}_{i,\lambda}yi,λ(预测偏高或正好),权重 =1−τ1 - \tau1−τ.
- 为什么用这个权重? 还记得损失函数ρτ(r)\rho_{\tau}(r)ρτ(r)是非对称的吗?这里的ρi(τ)⋅(ri)2\rho_i(\tau) \cdot (r_i)^2ρi(τ)⋅(ri)2其实就是ρτ(ri)\rho_{\tau}(r_i)ρτ(ri)的等价形式!(可以对比公式 2.2 和 2.6)。所以里面这个求和1n∑i=1n[⋯ ]\frac{1}{n} \sum_{i=1}^{n} \left[ \cdots \right]n1∑i=1n[⋯]本质就是用这个特定λ\lambdaλ的模型在整个数据集上计算的平均期望分位数损失。
- ln(⋯ )\ln(\cdots)ln(⋯): 对平均损失取自然对数。做对数变换常能使数值更稳定,并且不影响比较大小(因为ln\lnln是单调递增函数)。
- 含义: 这部分衡量模型用这个λ\lambdaλ拟合数据的好坏程度。值越小,拟合得越好(平均损失小)。
-
块 (f)lnn2n⋅df(y^λ)\frac{\ln n}{2n} \cdot \operatorname{df}(\widehat{\mathbf{y}}_{\lambda})2nlnn⋅df(yλ):复杂度惩罚项
- df(y^λ)\operatorname{df}(\widehat{\mathbf{y}}_{\lambda})df(yλ):拟合值y^λ\widehat{\mathbf{y}}_{\lambda}yλ的自由度。 这是核心概念!
- 在普通线性回归(OLS)中,自由度就是模型参数个数ppp(ppp)(如果包含截距)。
- 在带L1惩罚的模型(如Lasso)中,自由度不再是简单的参数个数。它反映了模型的有效复杂度。直观上,它近似等于最终模型中被选入的 非零系数 的个数(或者更精确地说,是模型“活跃”的维度)。惩罚越强(λ\lambdaλ越大),被压缩到0的系数越多,自由度df\operatorname{df}df就越小。
- 计算df\operatorname{df}df的具体方法依赖于模型和算法。Hu et al. (2015) 和 Liu et al. (2020) 提供了在分位数/期望分位数回归框架下估计自由度的方法。
- lnn2n\frac{\ln n}{2n}2nlnn: 这是一个随着样本量nnn(nnn) 增大而减小的缩放因子。
- 含义: 这部分惩罚模型的复杂度。模型越复杂(自由度df\operatorname{df}df越大),这个惩罚项的值就越大。
- df(y^λ)\operatorname{df}(\widehat{\mathbf{y}}_{\lambda})df(yλ):拟合值y^λ\widehat{\mathbf{y}}_{\lambda}yλ的自由度。 这是核心概念!
-
SIC选择λ的原理:
- 我们尝试很多不同的λ\lambdaλ值(比如在一个网格上)。
- 对每个λ\lambdaλ,训练模型得到y^λ\widehat{\mathbf{y}}_{\lambda}yλ和df(y^λ)\operatorname{df}(\widehat{\mathbf{y}}_{\lambda})df(yλ).
- 对每个λ\lambdaλ,计算SIC(λ)\operatorname{SIC}(\lambda)SIC(λ).
- 选择使SIC(λ)\operatorname{SIC}(\lambda)SIC(λ)最小的那个λ\lambdaλ!
-
为什么SIC在高维下比CV好?
- CV(如K折交叉验证)需要多次分割数据训练模型评估验证误差,在高维小样本下,每次训练的数据子集更少,模型方差更大,评估结果不稳定,容易过拟合到验证集。
- SIC 直接基于训练好的单个模型计算(利用自由度估计复杂度),避免了数据分割带来的额外方差,通常在高维下表现更稳健。
总结 SIC: SIC 是一个评价模型好坏的标准。它说:“一个好的模型,既要能很好地拟合数据(块(e)小),又不能太复杂(块(f)小)”。我们选择那个让这个综合标准SIC(λ)\operatorname{SIC}(\lambda)SIC(λ)达到最小的λ\lambdaλ.
关键点回顾 (给初学者的Tips):
- 目标特殊: 不是找平均线(τ=0.5\tau = 0.5τ=0.5),而是找数据分布中“偏低”或“偏高”部分的趋势线(τ=0.25\tau = 0.25τ=0.25 / τ=0.75\tau = 0.75τ=0.75)。
- 损失不对称: 损失函数ρτ\rho_{\tau}ρτ对“偏高”和“偏低”预测的惩罚力度不同,由τ\tauτ控制。
- 怕过拟合/要选特征:λ∥Dβ∥1\lambda \| D\beta \|_1λ∥Dβ∥1项,通过选λ\lambdaλ来控制模型复杂度,把不重要的变量影响压到0。DDD矩阵决定了惩罚作用在哪些系数组合上。
- 加知识约束:Cβ≥dC\beta \geq dCβ≥d,Eβ=fE\beta = fEβ=f把“价格不能是负的”、“几个影响加起来必须是多少”这类专家知识或物理限制硬编码进模型。
- 选λ用SIC: 因为高维数据下交叉验证(CV)容易翻车(过拟合),SIC用自由度来更稳健地衡量模型复杂度,帮你挑出最好的λ\lambdaλ。SIC的计算依赖于那个动态权重ρi(τ)\rho_i(\tau)ρi(τ),它确保了损失计算与τ\tauτ的目标一致。
- 自由度(df)是核心: 在惩罚模型里,df\operatorname{df}df不再是简单数有几个β≠0\beta \neq 0β=0(β≠0\beta \neq 0β=0),它更精确地刻画了模型实际用了多少“灵活度”去拟合数据,是SIC能有效工作的关键。
希望这个分解能帮助大家理解这些公式背后的思想和逻辑!记住,模型是工具,理解每个部分的目的才能用好它。加油!