数据在我们的生活中随处可见. 我们想要通过建立模型来捕捉变量之间的关系, 并且用我们的模型进行预测. 我们假设获得的一组数据为
Dn:={(x1,y1),(x2,y2),⋯,(xn,yn)},
而我们的目标便是尝试建立xi与yi之间的联系. 我们将xi=(xi1xi2⋯xim)⊤∈Rm称作是协变量向量 (Covariates) (也可叫做特征 (Features)), 其中xij代表数据xi的第j个协变量. 我们还定义yi∈R为响应变量 (Response Variable), 即我们感兴趣的研究对象. 协变量和响应变量的选择取决于我们的研究对象和研究目的.
在线性回归下, 我们希望建立响应变量yi与协变量xi之间的线性关系. 即我们希望求出常数β0,β1,⋯,βm∈R, 使得
yi=β0+β1xi1+β2xi2+⋯+βmxim+εi,(7.1)
其中β0被称作该模型的截距 (Intercept), εi被我们称作是模型的噪声 (Noise), 即无法用线性模型解释的波动因素, 它可以视作为误差, 噪声, 遗漏因素或随机扰动. 我们假设这些噪声为相互独立的随机变量, 且它们的均值为0, 方差为σi2. 对于这些相互独立的噪声而言, 它们可以简要分为两种情况: 同方差性 (Homoskedasticity) 与 异方差性 (Heteroskedasticity). 对于同方差性而言, 我们假设所有的噪声均为独立同分布的样本, 即它们的方差为一常数σ2. 而异方差性假设这些噪声的方差互不相同. 在接下来的讨论中, 我们默认模型的噪声满足同方差性.
如果我们考虑对所有的(xi,yi)使用等式(7.1), 我们便可以得到一个线性方程组:
y1y2⋮yn=11⋮1x11x21⋮xn1x12x22⋮xn2⋯⋯⋯x1mx2m⋮xnmβ0β1β2⋮βm+ε1ε2⋮εn.
我们也将上式简写为y=Xβ+ε或yi=xi⊤β+εi, 其中y为响应向量 (Response Vector), X∈Mn×(m+1)(R)为设计矩阵 (Design Matrix), β为参数向量 (Coefficient Vector), ε为噪声向量 (Noise Vector). 我们的目标即为求解β, 从而便能得到yi与xi之间的关系. 在本节的学习中, 我们规定设计矩阵X满足固定设计 (Fixed Design), 即X中的元素均为已知量, 模型中的随机性仅来源于噪声;我们同时规定设计矩阵X满列秩, 即X的列向量彼此线性无关. 那么此时由于xi的维数为m+1, 它们之间彼此线性无关也就说明了m+1≤n. 即样本点要足够多. 这对我们随后构建最小二乘有着至关重要的意义.
*{最小二乘估计量及其性质}
我们发现, 如果m+1<n, 那么便代表了在y=Xβ+ε中方程的数量多于未知数的数量. 回顾第一章, 第一节的知识, 此时的方程很可能是无解的. 那么我们能不能尝试求出一个“近似解”呢? 即求出满足y与Xβ非常接近的参数向量. 在向量中, “非常接近”便对应了向量差值的模非常小. 因此我们希望∣∣y−Xβ∣∣非常小, 即噪声非常小 . 由此我们也就引出了最小二乘 (Least Squares): 即求出优化问题
argminβ∈Rm+1∣∣y−Xβ∣∣2
的解β^.
定理 7.1
在y=Xβ+ε中, 若设计矩阵满列秩, 那么最小二乘的解β^存在且唯一, 且
β^=(X⊤X)−1X⊤y.
我们做一个大致证明: 严格的证明依赖于严格凸函数的性质.
证明
根据定义, 我们有
∣∣y−Xβ∣∣2=(y−Xβ)⊤(y−Xβ)=y⊤y−y⊤Xβ−(Xβ)⊤y+(Xβ)⊤(Xβ)=y⊤y−2y⊤Xβ+β⊤X⊤Xβ.设F(β)=y⊤y−2y⊤Xβ+β⊤X⊤Xβ. 其梯度为
∇F(β)=−2X⊤y+2X⊤Xβ.利用严格凸函数的性质, ∇F(β)=0的点对应唯一的极小值, 因此我们有X⊤y=X⊤Xβ. 该方程也被称为正规方程 (Normal Equation). 由于X满列秩, 因此X⊤X可逆. 则
β^=(X⊤X)−1X⊤y.∎
此时的β^被我们称作普通最小二乘估计量 (Ordinary Least Squares Estimator), 或简称为OLS估计量. 我们有时候将其记作β^OLS, 或β^. 求解完β^, 我们便可以用得到的参数来对我们的模型进行检验和预测.
定理 7.2
最小二乘估计量β^为关于β的条件无偏估计量, 即E[β^∣X]=β. 特别地, 当我们假设噪声符合同方差性时(即E[εi]=0,Var(εi)=σ2),
Var(β^∣X)=(X⊤X)−1σ2.
该定理的证明涉及到一些没有在本章第一节提及的概率论知识, 感兴趣的读者欢迎阅读.
证明
我们首先证明最小二乘的无偏性. 不难发现
E[β^∣X]=E[(X⊤X)−1X⊤y∣X]=(X⊤X)−1X⊤E[y∣X],再由y=Xβ+ε可知
E[y∣X]=E[Xβ+ε∣X]=XE[β∣X]+0=Xβ,这是因为ε的期望为零, 同时β为一常数向量, 因此其期望等于自身. 那么结合上面两式我们不难得到
E[β^∣X]=β.对于其方差而言, 通过计算我们得到
Var(β^nX)=Var((X⊤X)−1X⊤yX)=((X⊤X)−1X⊤)⋅Var(y∣X)⋅((X⊤X)−1X⊤)⊤=(X⊤X)−1X⊤⋅σ2⋅X(X⊤X)−1=(X⊤X)−1σ2.∎
实际上, 我们可以根据条件无偏性得到无偏性. 这是因为E[β^]=E[E[β^∣X]], 因此我们也称β^为一无偏估计量. 对于方差而言, 根据公式
Var(β^)=E[Var(β^∣X)]+Var(E[β^∣X])=σ2E[(X⊤X)−1]=σ2⋅(X⊤X)−1,
我们可以得到相似的结果. 在所有的无偏估计量中, 我们的目标是寻找方差最小的一个估计量. 这一估计量其实就是最小二乘估计量. 该定理被称作Gauss-Markov定理 (Gauss-Markov Theorem):
定理 7.3
在模型y=Xβ+ε中, 若设计矩阵X满列秩, 且噪声满足同方差性, 那么最小二乘估计量β^为所有关于β的线性无偏估计量中方差最小的. 我们也称最小二乘估计量为BLUE 估计量 (Best Linear Unbiased Estimator).
该定理的证明略.
在模型y=Xβ+ε中, 数据的残差 (Residual) 为εi=yi−xi⊤β. 对于最小二乘估计量β^, 我们称y^i=xi⊤β^为数据点(xi,yi)的拟合值 (Fitted Value). 观测值yi和拟合值y^i的差εi^=yi−xi⊤β^被称作该数据点的残差估计量 (Estimated Residual). 那么如果我们有一个新的数据点x0, 我们便可以用公式y^0=x0⊤β求出此时响应变量的拟合值. 随后我们便可以构建置信区间来检验拟合的精确性. 由于本书中缺乏对概率论与数理统计的深入讨论, 因此有关置信区间的构建我们在此不作涉及.
定理 7.4
利用最小二乘得到的残差估计量εi^=yi−xi⊤β^的期望为零. 即E[ε^i]=0.
证明
不难发现,
E[ε^i]=E[yi−xi⊤β^]=E[xi⊤β+εi−xi⊤(X⊤X)−1X⊤y]=E[xi⊤β+εi−xi⊤(X⊤X)−1X⊤(Xβ+ε)]=0.∎
当我们初步了解完最小二乘的性质之后, 我们给出两个矩阵的定义: 它们分别为帽子矩阵 (Hat Matrix) 和残差生成矩阵 (Annihilator Matrix).
定义 7.1
设X为设计矩阵, 那么帽子矩阵H与残差生成矩阵M分别为
H=X(X⊤X)−1X⊤,M=I−H.
对于帽子矩阵而言, 我们不难发现
Hy=X(X⊤X)−1X⊤y=Xβ^=y^,
而对于残差生成矩阵, 同样地我们有
My=y−y^=ε^.
本节的课后练习题中会有更多关于帽子矩阵和残差生成矩阵的性质等待读者去探索. 在普通最小二乘中,我们通过最小化
∑i=1n(yi−xi⊤β)2
来选择参数β. 这相当于认为每一个观测点的误差εi都具有相同的重要性. 然而在实际问题中, 不同数据点的可靠程度可能并不相同. 例如:有些观测值测量误差较小,因此相对更值得信任; 有些观测值噪声较大,因此不应对模型产生过强影响. 为了反映这种差异, 我们可以引入一个权函数 (Weight Function), 使得在观测点xi处的权重为wi>0.
权重越大, 则表示该观测点在拟合中越重要;权重越小,则表示该观测点对最终模型的影响较弱. 因此我们此时的最小二乘优化的便是
∑i=1nwi(yi−xi⊤β)2
的最小值.
定理 7.5
在加权线性回归中, 记W=diag(w1⋯wn)为每一个观测点对应的权重的对角矩阵, X为设计矩阵. 若X列满秩, 那么此时最小二乘的解β^存在且唯一. 且
β^=(X⊤WX)−1X⊤Wy.
不难发现, 一般情况下的线性回归即对应了权函数wi≡1. 最小二乘有什么几何意义呢? 由于我们知道n>m+1, 也就是说y的维数大于X的列空间的位数. 此时可以将最小二乘其视作响应变量y在设计矩阵X的列空间上的正交投影. 此时y满足正交分解y=Xβ+(y−Xβ), y−Xβ∈Im(X)⊥. 回顾我们在内积空间中提出的定理: Im(X)⊥=Ker(X⊤). 因此y−Xβ∈Ker(X⊤), 即
X⊤(y−Xβ)=0.
将其展开我们便得到了系统的正规方程: X⊤y=X⊤Xβ. 当设计矩阵满列秩时我们便得到了前面推出的β^=(X⊤X)−1X⊤y. 下面的图便很好地展示了这一几何关系:
*{多项式回归}
值得我们注意的是, 线性回归仅代表我们的模型关于参数向量β是线性的, 而关于协变量x则不需要满足线性关系. 比如我们完全可以设x=(xx2⋯xm)⊤, 这样一来我们得到的模型便为
y=β0+β1x+β2x2+⋯+βmxm,
其中y是关于x的多项式. 我们也把这类问题称作是多项式回归 (Polynomial Regression). 给出数据点Dn={(x1,y1),⋯,(xn,yn)}, 假设我们将使用关于x的m次多项式去估计y, 那么此时我们有
y1y2⋮yn=11⋮1x1x2⋮xnx12x22⋮xn2⋯⋯⋯x1mx2m⋮xnmβ0β1⋮βm+ε1ε2⋮εn.
此时的的最小二乘为
i=1∑n∣yi−(β0+β1x+β2x2+⋯+βmxm)∣.
类似地, 如果我们假设的模型为
y=β0f0(x)+β1f1(x)+⋯+βmfm(x),
那么我们有
y1y2⋮yn=f0(x1)f0(x2)⋮f0(xn)f1(x1)f1(x2)⋮f1(xn)f2(x1)f2(x2)⋮f2(xn)⋯⋯⋯fm(x1)fm(x2)⋮fm(xn)β0β1⋮βm+ε1ε2⋮εn.
此时我们考虑多项式回归中的一个特殊情况: 假设m=1, 此时的最小二乘可以写作
(β^0,β^1)=argβ0,β1mini=1∑n{yi−(β0+β1xi)}2=argβ0,β1minn1i=1∑n{yi2+β02+2β0β1xi+β12xi2−2yiβ0−2β1yixi}.
我们令
n1i=1∑nxi:=xˉnn1i=1∑nyi:=yˉn,
由此我们进一步将原式化简为
(β^0,β^1):=argβ0,β1min{β02+n1i=1∑nxi2β12+2xˉnβ0β1−2yˉnβ0−n2i=1∑nxiyiβ1}.
我们定义关于β0,β1的二元函数
f(β0,β1)=β02+n1i=1∑nxi2β12+2xˉnβ0β1−2yˉnβ0−n2i=1∑nxiyiβ1,
因此f的梯度为
∇f=(∂β0∂f,∂β1∂f)=(2β0+2xˉnβ1−2yˉn,n2i=1∑nxi2β1+2xˉnβ0−n2i=1∑nxiyi).
令∇f=0, 则我们有
{2β0+2xˉnβ1−2yˉnn2∑i=1nxi2β1+2xˉnβ0−n2∑i=1nxiyi=0=0.
其中不难发现
β^0=yˉn−xˉnβ^1.(7.2)
然后利用(7.2)中β^0的取值带入另外一式求出β1:
n1i=1∑nxi2β^1+xˉn(yˉn−xˉnβ^1)−n1i=1∑nxiyi=0,
即
β^1=∑i=1n(xi−xˉn)2∑i=1nxiyi−nxˉnyˉn.
我们将这一发现总结成下面的推论:
推论 7.1
设数据D:={(x1,y1),⋯,(xn,yn)} ((xi,yi)∈R2)和线性回归模型 y=β0+β1x+ε. 则β1,β2的最小二乘估计为
β^0=yˉn−xˉnβ^1,β^1=∑i=1n(xi−xˉn)2∑i=1nxiyi−nxˉnyˉn.
此时读者会想: 如果我们有n组数据(x1,y1),⋯,(xn,yn), 且这些xi互不相同, 那么根据Lagrange多项式, 我们可以找到一个(n−1)次多项式p(x), 使得p(xi)=yi. 也就是说, 理论上完全存在这样的函数, 使得这个函数能够与数据完美吻合, 那么我们还干嘛费尽心思地去用最小二乘求解呢? 我们不妨来看下图:
在回归分析中, 我们关注的不仅仅是模型在以观测到的数据集上的表现, 我们还要求模型要有精准的预测能力. 在Lagrange多项式拟合的结果中, 虽然拟合函数精确地穿过了每一个数据点, 做到了零误差, 但我们看到得到的函数在数据点之间会来回大幅度地波动, 并且在x坐标相距很近的情况下对应的响应变量y却有天壤之别. 因此Lagrange多项式的拟合结果显然没有捕捉到数据之间的大致变动趋势. 相反, 红色的线性函数虽然没有精确地穿过每一个数据点, 但它在一定程度上反映出了x,y之间的变化趋势. 这个例子说明: 复杂的模型并不一定意味着预测效果越好. 若模型过度追逐训练数据中的偶然波动或噪声, 就可能在已有数据上表现很好, 却在新的数据上表现较差. 这种现象称为过拟合 (Overfitting).
为避免过拟合的发生, 我们通常把数据集分成训练集 (Training Set)和检验集 (Testing Set). 即我们利用训练集中的数据构造设计矩阵, 进行回归分析. 然后再用得到的参数估计去拟合检验集中的数据, 然后比较误差. 不过, 当数据较少时, 单纯划分一次训练集和检验集会产生一定程度的数据浪费, 因此我们也可以使用交叉验证 (Cross Vaildation)的方法. 交叉验证的基本逻辑是通过重复实验, 多次改变训练集和检验集, 使得每一个数据都能被最大程度地利用. 常见的交叉验证方法有K折交叉验证 (K-fold Cross Validation), 即将数据分成K份, 其中K−1份作为训练集, 剩下的一份作为检验集, 然后重复实验K次, 取模型的平均检验误差. 这样一来每一份数据都能够作为检验集, 通过平均, 这样得到的误差通常比单次划分更加稳定.
此时, 如果我们的数据如果不再是离散的数据点(xi,yi), 而是一整个连续的区间(a,b), 那么在这个区间上我们能否也类比最小二乘的知识呢? 此时我们会联想到积分的知识. 即当我们在区间(a,b)上用多项式p(x)=β0+β1x+⋯+βmxm去近似y=f(x)时, 我们所要优化的便是积分
f(β0,⋯,βm)=∫ab∣f(x)−p(x)∣2dx=∫ab(f(x)−i=0∑mβixi)2dx.
我们此时求出f关于βi的偏导数, 得到
∂βi∂f=∂βi∂∫ab(f(x)−i=0∑mβixi)2dx=∫abdβidf2(x)−2f(x)i=0∑mβixi+(i=0∑mβixi)2dx=∫ab−2f(x)xi+2xij=0∑mβjxjdx.
在极小值处, 我们令∂βi∂f=0, 我们因此得到此时的正规方程:
∫abxif(x)dx=j=0∑mβj∫xi+jdx,i=0,1,⋯,m.
由此我们便得到了如下的矩阵形式:
∫abf(x)∫abxf(x)dx⋮∫abxmf(x)dx=∫ab1dx∫abxdx⋮∫abxmdx∫abxdx∫abx2dx⋮∫abxm+1dx∫abx2dx∫abx3dx⋮∫abxm+2dx⋯⋯⋯∫abxmdx∫abxm+1dx⋮∫abx2mdxβ0β1β2⋮βm,
其中等式右边的(m+1)×(m+1)矩阵被称作Gram 矩阵. Gram矩阵的列向量彼此线性无关(这一点读者不妨自行验证), 因此上面的系统便存在唯一解. 此时对于确定的f(x),m,a,b, 我们便可以求出每一个积分的值. 随后我们便可以运用求解线性方程组的方法去求解β0,⋯,βm了.
{7.2 练习}
1. 设X∈Mn(m+1)(R)为设计矩阵, 帽子矩阵为H=X(X⊤X)−1X⊤; 残差生成矩阵为M=I−H.
(i) 证明: H,M均为对称矩阵;
(ii) 证明: H,M均为投影矩阵, 即H2=H,M2=M;
(iii) 证明: tr(H)=m+1, tr(M)=n−m−1.
(iv) 对于样本xi而言, 我们定义其杠杆值 (Leverage)为hii=xi⊤(X⊤X)−1xi. 证明: 0≤hii≤1.
(v) 我们假设样本中的噪声满足同方差性, 证明Var(ε^i)=σ2(1−hii).
2. 设X∈Mn(m+1)(R)为设计矩阵, 我们假设X从左往右的的第一列为截距列, 即第一列所有元素为1. 样本xi的第一个协变量也为截距项1.
(i) 对于任意的样本xi, 证明∑j=1nxi⊤(X⊤X)−1xj=1.
(ii) 证明
i=1∑nε^i=0.
3. 设X∈Mn(m+1)为设计矩阵, ε^=y−Xβ^, ε=y−Xβ. H为帽子矩阵, M为残差生成矩阵. 证明ε^⊤ε^=ε⊤Mε.
4. 当我们假设线性模型yi=xi⊤β+εi时, 若噪声满足同方差性且服从正态分布εi∼N(0,σ2), 我们可以将样本的似然函数写作
L(β,σ2)=(2πσ2)n/21⋅exp(−i=1∑n2σ2(yi−xi⊤β)2).
求出在此情况下β和σ2的最大似然估计.
5. 在以下的回归分析问题中, 我们假设有且仅有一个分类项作为协变量. 分类项中我们假设含有K个不同的种类. 定义1xi=g为样本xi是否属于种类g的示性函数 (Indicator Function), 即
1xi=g={10 若样本xi属于种类g 若样本xi不属于种类g.
我们定义zi=1xi=11xi=2⋮1xi=K, 设计矩阵Z=z1⊤z2⊤⋮zn⊤.
设ng为属于种类g的样本数, 证明此时在模型y=Zβ+ε中β的最小二乘估计量β^为
β^=n11∑y∈n1yn21∑y∈n2y⋮nK1∑y∈nKy.
6. 在加权线性回归中, 给出设计矩阵X和权函数矩阵W我们得到的关于β的加权最小二乘估计量为
β^GLS=(X⊤WX)−1X⊤Wy.
假设噪声相互独立,现给出两个不同条件: 噪声满足同方差性 (M1); 噪声满足异方差性 (M2).
(i) 证明: 在(M1), (M2)条件下均有
E[β^GLS∣X]=β;
(ii) 在(M1)条件下证明
Var(β^GLS∣X)=σ2(X⊤X)−1;
(iii) 在(M2)条件下, 假设Var(εi∣X)=σi2, 证明
Var(β^GLS∣X)=(X⊤X)−1X⊤diag(σ12σ22⋯σn2).
(iv) 在(M2)条件下, 我们假设Var(ε∣X)=σ2Σ, 其中Σ为对角矩阵. 设模型
y=Xβ+ε,
其中y=Σ−1/2y, X=Σ−1/2X, ε=Σ−1/2ε. 此时的最小二乘估计为β=(X⊤X)−1X⊤y. 求出E[β∣X]与Var(β∣X).
7. 在线性模型y=x⊤β+ε中我们假设噪声满足同方差性, 设计矩阵为固定设计且满列秩. 现有观测数据
D={(x1,y1),(x2,y2),⋯,(xn,yn)},
我们将采用留一交叉验证 (Leave One Out Cross Validation)对最小二乘估计量进行分析. 在留一交叉验证中, 我们将原数据复制n份, 在每一份中采用n−1个数据作为训练集, 随后剩余的一个数据作为检验集. 这样一来每一个数据都可以作为检验集. 我们定义集合Ei⊆D为除去原数据中除去第i个样本之后得到的新数据集, 即Ei=D∖{(xi,yi)}. 那么在数据集Ei上关于β的最小二乘估计量为
β^(i)=argβminn−11j=i∑(yi−xi⊤β)2.
(i) 利用Sherman-Morrison公式:
(A+uv⊤)−1=A−1−1+v⊤A−1uA−1uv⊤A−1,
证明此时的最小二乘估计量β^(i)满足
β^(i)=β^−1−hii(X⊤X)−1xiε^i.
其中β^=(X⊤X)−1X⊤y=(i=1∑nxixi⊤)−1⋅(i=1∑nxiyi)为普通最小二乘估计量, ε^i=yi−xi⊤β^.
(ii) 证明: ε^i(i)=yi−xi⊤β^(i)=1−hiiε^i.
8. 在推论7.1中, 证明β^1的估计还可以写作
β^1=∑i=1n(xi−xˉn)2∑i=1n(xi−xˉn)(yi−yˉn).
9.
(i) 设函数f(x)=x1, 1≤x≤3. 利用Gram矩阵, 求出在该区间上满足最小二乘条件的二次多项式p(x)=β0+β1x+β2x2;
(ii) 设A=(−1,0),B=(0,1),C=(1,4). 以y=β0x+β12x为模型, 利用最小二乘求出此时的参数β0,β1.