本文承接文章线性回归分析之模型基础,继续对线性回归分析进行介绍。本文所使用的符号和上述文章是一致的。
回归系数的统计检验
- 结合文章线性回归分析之模型基础容易看出参数估计值\hat{\vec{\beta}}的协方差矩阵的估计值为\hat{Cov}(\hat{\vec{\beta}})=s^2(X^TX)^{-1},又因为\hat{\vec{\beta}}和s^2是相互独立的,则针对单个回归系数的假设检验H_0\text{: } \beta_j=0\space\space\text{vs}\space\space H_1\text{: } \beta_j\neq 0有检验统计量t(\hat{\beta}_j)=\frac{\hat{\beta}_j}{\sqrt{[\hat{Cov}(\hat{\vec{\beta}})]_{j+1,j+1}}}=\frac{\hat{\beta}_j}{\sqrt{[\sigma^2(X^TX)^{-1}]_{j+1,j+1}}}\large{/}\normalsize\sqrt{\frac{s^2}{\sigma^2}}\sim \frac{N(0,1)}{\sqrt{\chi^2_{n-k-1}/(n-k-1)}}=t_{n-k-1}即在假设H_0下统计量满足自由度为n-k-1的t分布,其中[\hat{Cov}(\hat{\vec{\beta}})]_{j+1,j+1}表示矩阵\hat{Cov}(\hat{\vec{\beta}})的第j+1个对角元素。若\lvert{t(\hat{\beta}_j)\rvert>t_{n-k-1,\alpha/2}},则在显著性水平为\alpha时拒绝原假设H_0
- 针对多个系数的假设检验,不失一般性,可写为H_0\text{: } \beta_{k-q+1}=\beta_{k-q+2}=\cdots=\beta_{k}=0\space\text{ vs }\space H_1\text{: } \text{最后}q\text{个系数中至少有一个不为}0定义\bar y=\frac{\sum_{i=1}^n y_i}{n},\space TSS=\sum_{i=1}^n (y_i-\bar y)^2,\space RSS=\sum_{i=1}^n e_i^2=\sum_{i=1}^n(y_i-\hat{y}_i)^2,\space R^2=\frac{TSS-RSS}{TSS}记RSS_0为使用简化后的模型(\beta_{k-q+1}=\beta_{k-q+2}=\cdots=\beta_{k}=0)进行回归后计算得到的RSS,则有检验统计量F=\frac{(RSS_0-RSS)/q}{RSS/(n-k-1)}\sim F_{q,n-k-1}即在假设H_0下统计量满足自由度为q,n-k-1的F分布。若F>F_{q,n-k-1,\alpha},则在显著性水平为\alpha时拒绝原假设H_0
- 对于不在训练数据集中的一个新数据{\vec x}^*,有预测值\hat{y}^*=\vec{x}^*\cdot\hat{\vec{\beta}},由于实际值y^*的期望E(y^*)=\vec{x}^*\cdot\vec\beta=\vec{x}^*\cdot E(\hat{\vec{\beta}})=E(\hat{y}^*)则\hat{y}^*为E(y^*)的无偏估计,并且E(y^*)的置信水平为1-\alpha的置信区间为\left[\text{ }\hat{y}^*-t_{n-k-1,\alpha/2}\sqrt{\hat{Var}(\hat{y}^*)}\text{, }\space\hat{y}^*+t_{n-k-1,\alpha/2}\sqrt{\hat{Var}(\hat{y}^*)}\text{ }\right]其中\hat{Var}(\hat{y}^*)=\vec{x}^*\hat{Cov}(\hat{\vec{\beta}}){\vec{x}^*}^T=s^2[\vec{x}^*(X^TX)^{-1}{\vec{x}^*}^T]
离群点
离群点按某个数据因变量值y_i异常和自变量值{\vec x}^{(i)}异常可分别称为异常点和高杠杆点。
- 异常点:因变量值远离数据集因变量平均值所对应的数据点。由文章线性回归分析之模型基础可知残差向量\vec e=\vec y-\hat{\vec y}=(I-H)\vec y,易看出Cov(\vec e)=(I-H)Cov(\vec{y})(I-H)^T=\sigma^2(I-H)(I-H)^T=\sigma^2(I-H)则第i个数据的残差的方差的估计值为\hat{Var}(e_i)=s^2(1-h_{ii}),其中h_{ii}为矩阵H的第i个对角值。可通过以下两种方式用残差判断某个数据是否为异常点:\large \begin{cases}e_i^{\text{st}}=\frac{\large e_i}{\large \sqrt{s^2(1-h_{ii})}}\sim{t_{n-k-1}} \\ e_i^{\text{stud}}=\frac{\large {y}_i-\hat{y}_i^{(i)}}{\large \sqrt{\hat{Var}({y}_i-\hat{y}_i^{(i)})}}=\frac{\large e_i}{\large \sqrt{s_{(i)}^2(1-h_{ii})}}\sim{t_{n-k-2}}\end{cases}需要注意的是由于e_i^{\text{st}}中的分子和分母不是相互独立的,e_i^{\text{st}}只是近似符合自由度为n-k-1的t分布。s_{(i)}^2为去掉第i个数据进行回归后得到的s^2,e_i^{\text{stud}}的计算细节如下:\begin{aligned}&d_i={y}_i-\hat{y}_i^{(i)}=\frac{e_i}{1-h_{ii}},\space\space Var(d_i)=\frac{Var(e_i)}{(1-h_{ii})^2}=\frac{\sigma^2}{1-h_{ii}},\space\space \frac{d_i}{\sqrt{Var(d_i)}}=\frac{e_i}{\sqrt{\sigma^2(1-h_{ii})}} \\ &s_{(i)}^2=\frac{1}{n-k-2}\sum_{j\neq i}(y_j-\hat{y}_j^{(i)})^2=\frac{1}{n-k-2}\frac{(n-k-1)s^2(1-h_{ii})-e_i^2}{1-h_{ii}}\end{aligned}其中\hat{y}_j^{(i)}为去掉第i个数据进行回归后得到的对于第j个数据的估计值。
- 高杠杆点:第i个数据的杠杆为h_{ii},若有h_{ii}>\frac{3(k+1)}{n}(经验公式),则该数据可视为高杠杆点。
- 强影响点:对回归系数估计值影响很大的点,若移除该点,回归模型会发生很大的改变。通常使用Cook Distance来测量:D_i=\frac{\sum_{j=1}^{n}(\hat{y}_j-\hat{y}_j^{(i)})^2}{(k+1)s^2}=\frac{1}{k+1}\underbrace{(e_i^{\text{st}})^2}_\text{异常}\underbrace{\frac{h_{ii}}{1-h_{ii}}}_\text{杠杆}若D_i> \frac{4}{n-k-1}(经验公式),则该数据可视为强影响点。
异方差性
文章线性回归分析之模型基础中介绍的线性回归模型中要求误差项\epsilon_i(i=1,2,\cdots,n)相互独立并且均有\epsilon_i\sim N(0,\sigma^2),若对于不同的数据点i,误差项的方差不再是常数,即\epsilon_i\sim N(0,\sigma_i^2),则认为出现了异方差性。检验模型异方差性的方法很多,这里仅列举其中两种:
- Breusch-Pagan Test:H_0\text{: }Var(y)=\sigma^2\space\space\text{ vs }\space\space H_1\text{: }Var(y)=\sigma^2(\vec x\cdot\vec\gamma)=\sigma^2(\gamma_0+\gamma_1 x_1+\cdots+\gamma_k x_k)将e_i^2(i=1,2,\cdots,n)作为因变量,对{\vec x}^{(i)}进行回归,则在假设H_0下有检验统计量F=\frac{(TSS-RSS)/k}{RSS/(n-k-1)}=\frac{R^2/k}{(1-R^2)/(n-k-1)}\sim{F_{k,n-k-1}}
- White Test:H_0\text{: }Var(y)=\sigma^2\space\space\text{ vs }\space\space H_1\text{: }Var(y)=\sigma^2(\gamma_0+\gamma_1 \hat{y}+\gamma_2\hat{y}^2)将e_i^2(i=1,2,\cdots,n)作为因变量,对(1,{\hat y}_i,{\hat y}_i^2)进行回归,则在假设H_0下有检验统计量F=\frac{R^2/2}{(1-R^2)/(n-3)}\sim{F_{2,n-3}}
对y进行变换可缓解模型的异方差性,例如\ln (y+c)或者\sqrt{y+c},c\ge 0
共线性
共线性指在线性回归模型的k个特征之间由于存在较强相关性而使得回归系数估计不准确,模型的解释能力下降。判断共线性的一个指标为VIF_j=\frac{1}{1-R_j^2},\space\space j=1,2,\cdots,k其中R_j^2表示将第j个特征(即数据集X的第j+1列)作为因变量,对其余特征(即X的其余列)进行回归后计算得到的R^2。若VIF_j>10(经验公式),则第j个特征与其余特征之间存在高度共线性,此时可删除该特征。
特征选择
首先介绍几个判断模型好坏的标准:
- K-fold Cross Validation:当K=n时又被称为LOOCV,线性回归的LOOCV的损失函数可以直接进行计算,即LOOCV=\frac{1}{n}\sum_{i=1}^n (y_i-\hat{y}_i^{(i)})^2=\frac{1}{n}\sum_{i=1}^n(\frac{y_i-\hat{y}_i}{1-h_{ii}})^2
- Adjusted R2:不同于R^2=1-RSS/TSS,R_a^2考虑了选取的特征数量的影响,即R_a^2=1-\frac{RSS_p/(n-p)}{TSS/(n-1)}其中RSS_p表示使用p-1个特征(即需求解p个参数)进行回归得到的RSS
- Mallow Cp Statistic:C_p=(RSS_p+2ps^2)/n,其中s^2是使用所有k个特征进行回归后计算所得
- Akaike Information Criterion:AIC=(RSS_p+2ps^2)/(ns^2),其中s^2是使用所有k个特征进行回归后计算所得
- Bayesian Information Criterion:BIC=[RSS_p+(\ln n)ps^2]/(ns^2),其中s^2是使用所有k个特征进行回归后计算所得
接下来介绍几种常用的特征选择方法:
- LASSO:回归系数的求解问题转化为\underset{\beta_0,\beta_1,\cdots,\beta_k}{\arg\min}\space\left[(\vec{y}-X\vec{\beta})^T(\vec{y}-X\vec{\beta})+\lambda\sum_{i=1}^k\lvert{\beta_i}\rvert\right],\space\lambda\ge 0求解LASSO前需将特征进行标准化(Standardization)处理,针对\lambda的取值可以使用K-Fold Cross Validation选取最优值
- Forward Selection:
- 从常数开始每步在前一步的基础上加入一个特征,可使用一个判别标准决定选取哪个特征,例如该特征对应的\lvert{t(\hat{\beta}_j)}\rvert最大,或者加入该特征后模型的RSS最小
- 最终从模型M_0,M_1,\cdots,M_k(下标表示使用的特征数量)中选择最优模型,可以通过K-Fold Cross Validation或者R_a^2、C_p、AIC、BIC等指标进行选择
- Backward Selection:
- 从所有特征开始每步在前一步的基础上删除一个特征,可使用一个判别标准决定删除哪个特征,例如该特征对应的\lvert{t(\hat{\beta}_j)}\rvert最小,或者删除该特征后模型的RSS最小
- 最终从模型M_k,M_{k-1},\cdots,M_0中选择最优模型
- Stepwise Selection:
- 从常数开始每步在前一步的基础上加入一个特征,该特征满足对应的\lvert{t(\hat{\beta}_j)}\rvert最大,并且可以通过\beta_j\ne{0}的显著性检验,具体说明参见“回归系数的统计检验”这一部分
- 加入新特征后在新模型中查看是否有之前加入的特征不能通过\beta_j\ne{0}的显著性检验,如果有就从模型中删除这些特征
- 重复上述两个步骤直到不能再添加或删除任一特征为止,将每步所得到的模型进行比较,从中选择最优模型