【ISLP】 An Introduction to Statistical Learning with python

统计学习是一套以理解数据为目的的庞大工具集。

统计学习的工具可分为两大类:有指导的学习(supervised)和无指导的学习(unsupervised)。

一般而言,有指导的统计学习工具主要有两种用途:

一是面向预测的统计模型的建立,

二是对一个或多个给定的输入(input)估计某个输出(output)。

在无指导的统计学习问题中,有输入变量但不指定输出变量,建模的主旨是学习数据的关系和结构。

 指导学习(Supervised Learning)

  • 定义:也叫监督学习,是一种基于标记数据进行学习的方法。在这种学习方式中,训练数据集中包含了输入特征以及与之对应的输出标签(目标值),模型通过学习输入特征与输出标签之间的映射关系,来对新的未知数据进行预测。
  • 工作原理:模型在训练过程中,根据输入特征和已知的输出标签,不断调整自身的参数,以最小化预测结果与真实标签之间的误差。例如在一个预测房价的任务中,训练数据集中有房屋的面积、房间数量等特征作为输入,以及对应的实际房价作为输出标签,模型通过学习这些数据来建立一个能够根据房屋特征预测房价的函数。
  • 应用场景:广泛应用于分类和回归问题。如垃圾邮件分类,将邮件分为垃圾邮件和正常邮件两类;以及股票价格预测,根据历史数据预测未来股票价格等。

 无指导学习(Unsupervised Learning)

  • 定义:也叫无监督学习,与监督学习相反,训练数据集中只包含输入特征,没有给定的输出标签或目标值。模型的任务是从输入数据中发现数据的内在结构、模式或规律。
  • 工作原理:无监督学习算法通过计算数据点之间的相似度、距离等指标,将数据进行分组、聚类,或者发现数据中的异常点等。例如,对一群用户的消费行为数据进行分析,通过无监督学习算法可以将用户分为不同的群体,每个群体具有相似的消费模式,但并不知道这些群体具体代表什么含义,完全是基于数据本身的特征进行划分。
  • 应用场景:常见于数据挖掘、市场细分、异常检测等领域。如在客户关系管理中,通过对客户数据的无监督学习,将客户分为不同的细分群体,以便企业采取不同的营销策略;在网络安全领域,用于检测网络流量中的异常行为,发现潜在的安全威胁。

半指导学习(Semi-Supervised Learning)

  • 定义:也叫半监督学习,结合了监督学习和无监督学习的特点,训练数据集中既有少量的标记数据,又有大量的未标记数据。模型利用少量的标记数据提供的监督信息和大量未标记数据蕴含的结构信息来进行学习。
  • 工作原理:通常先利用未标记数据进行一些无监督的学习操作,如聚类、降维等,以发现数据的一些潜在结构和特征,然后再结合少量的标记数据,对模型进行有监督的训练和调整。例如,在图像识别任务中,有少量已经标注好类别的图像和大量未标注的图像,先通过无监督学习方法对未标注图像进行特征提取和聚类,将相似的图像聚为一类,然后利用少量标注图像来确定这些聚类所代表的具体类别,从而实现对图像的分类。
  • 应用场景:适用于标记数据获取成本高,但未标记数据容易获取的场景。如在生物医学领域,对大量的基因序列数据进行分析,标记基因序列的功能通常需要耗费大量的时间和资源,此时可以利用半监督学习方法,通过少量已标记的基因序列和大量未标记的基因序列来进行分析和预测。

统计学习导论(isl)的内容安排如下:

第二章主要介绍统计学习的基本技术和概念,这张还包括了一类原理简单却在许多领域运用自如地K最近邻分类方法。

第三章和第四章是经典的线性回归模型和分类模型。具体而言,第三章主要回顾线性回归。这是所有回归方法的基础。第四章讨论了两类重要的分类模型,logistic回归线性判别分析

第五章重点介绍交叉验证法自助法,这些方法可通过估计不同方法的精度选择最优的模型。统计学习领域的基本问题就是为每一个不同的应用给出最恰当的方法。

第六章提供了一类在标准线性回归基础上的改进,包括逐步变量选择岭回归主成分回归偏最小二乘lasso回归

其余章节主要是非线性统计学习方法。

第七章首先介绍一类在一元输入变量问题中颇有成效的非线性方法,之后将说明这些方法如何被运用到多余一个输入变量的非线性可加模型中。

第八章重点考察树类模型,包括袋装法提升法随机森林

第九章介绍支持向量机(一种既可以用于线性分类,也可以用于非线性分类的一种方法)

第十章考虑只有输入变量没有输出变量的一类方法,重点讲述主成分分析K均值聚类系统聚类方法。


    第二章 统计学习(Statistical Learning)

    2.1 什么是统计学习

    输入变量(Input variable): 预测变量(predictor variable)、自变量(independent variable)、解释变量(Explanatory Variable)、属性变量(feature variable)、变量(variable)。

    输出变量(output variable): 响应变量(response variable)、因变量(dependent variable)。

    一般情况,假设观察到一个定量的响应变量 $Y$$p$个不同的预测变量,记为$X_1, X_2, \cdots, X_p$,假设这个$Y$$X = (X_1, X_2, \cdots, X_p)$ 有一定的关系,可以表达成一个比较一般的形式:

    $Y = f(X) + \epsilon$

    这里的$f$$X_1, \cdots, X_p$ 的函数,它是固定的但未知,$\epsilon$是随机误差项,与 $X$ 独立,且均值为$0$。 这种形式下,$f$ 表达了$X$提供给$Y$的系统(systematic)信息。

    估计 f 的主要原因

    预测(prediction)和推断(Inference)。

    • 预测

    $\hat{Y} = \hat{f}(X)$$\hat{Y}$作为响应变量$Y$的预测值,其精确性依赖于两个量:

    ① 可约误差(reducible error)

    当所选的$\hat{f}$ 不是$f$ 的一个最佳估计时产生的误差,该误差可约,可选择更合适的统计学习方法提高 $\hat{f}$的精度以降低该误差。

    ② 不可约误差(irreducible error)

    因为 $Y$还是一个关于$\epsilon$的函数,不能用$X$ 预测。

    • 推断

    很多情况下,我们对当$X_1, X_2, \cdots, X_p$变化时对 $Y$ 产生怎样的影响比较感兴趣。

    在这种情形下,我们估计$f$ 的目标不是为了预测$Y$,而是想明白$X$$Y$的关系。更确切地,是去理解$Y$作为$X_1, X_2, \cdots, X_p$ 的函数是怎么变化的。

    此时,可能涉及的问题如下所述:

    - 哪些预测变量与响应变量相关?通常情况下用于预测的变量中只有一小部分与$Y$充分相关,从一大组可能的变量中根据应用的需要识别一些重要的预测因子是极其有必要的。

    - 响应变量与每个预测因子之间的关系是什么?一些预测变量与$Y$正相关,在这个意义上,当增加相应的预测变量的值,$Y$的值也会增加,而另一些预测变量则与$Y$呈负相关。根据$f$ 的复杂性,响应变量与某个给定的预测变量之间的关系也可能依赖于其他的预测变量。

    - $Y$与每个预测变量的关系是否能用一个线性方程概括,还是它们的关系需要更复杂的形式呢?以往,大多数估计 $f$的方法都采用线性形式。在一些情况下,这种假设是合理的甚至是比较理想的方式。但更一般的情况下,真正的关系可能更为复杂,这时,线性模型也许不能为输入变量与输出变量之间的关系提供一个精准的表达。 在本书中,我们将学习许多建模的例子,这些例子无外乎三类,一类是预测,一类是推断,或者是两者混合。

    如何估计 f 

    分为参数方法和非参数方法

    • 参数方法:

    参数方法是一种基于模型估计的两阶段方法,先假设函数 f  具有一定的形式或形状,如线性模型

    $ f(X) = \beta_0 + \beta_1X_1 + \beta_2X_2 + \cdots + \beta_pX_p $

    模型被选定后用训练数据集去拟合或训练模型。

    参数法把估计 f  的问题简化为估计一组参数。参数方法的缺陷是选定的模型并非与真正的 f 在形式上是一致的。加入我们选择的模型与真实的 f 差距太大,这样估计的 f 效果也会很差。

    此类问题的一种解决思路是尝试通过选择光滑(felexible)模型拟合很多不同形式的函数 f 。但一般来说,拟合光滑度更强的模型需要更多的参数估计。拟合复杂的模型会导致另一个被称为过拟合(overfitting) 现象的出现,这表示这些模型拟合了错误或躁声 (nosie)

    参数方法的柔性(响应变量于自变量之间的关系的解释性)更强。

    • 非参数方法:

    非参数方法不需要对函数f的形式事先做明确的假设。相反,这类方法追求的是接近数据点的估计,估计函数在去粗和光滑处理后尽可能与更多的数据点接近。非参数方法较参数方法的优点表现为:不限定函数f的具体形式,于是可能在更大的范围选择更适宜 f 形状的估计。

    但是非参数方法无法将估计 f 的问题简化到仅仅对少数参数进行估计的问题,所以为了获得对 f 更为精准的估计,往往需要大量的观测点(远远超出参数方法所需要的点)。

    当数据分析的目标是推断的时候,运用简单又相对欠光滑的统计学习方法具有明显的优势。然而在另外一些情况下 如果仅仅是对预测感兴趣, 至于预测模型是否易于解释并不十分关心,比如,试图开发一个算法预测一种股票的价格,如果对这种算法的唯一需求是预测的准确性,不必关注其解释性。此时,你也许会想当然地认为选择光滑度更高的方法才是最优的选择。然而令人诧异的是,往往事实并非如此。事实是更精确的预测常常是在欠光滑度的模型上取得的。欠光滑度模型乍一看上去会感觉违反直觉,然而这正是其抗高光滑模型过拟合缺陷的能力所在。

    回归与分类问题

    响应变量为定量的问题称为回归分析问题,响应变量为定性的问题称为分类问题。

    2.2 评价模型精度

    拟合效果检验

    在回归中,最常用的评价准则是均方误差(mean squared error, MSE) ,其表达式如下所示:

    $ MSE=\frac{1}{n}\sum_{i = 1}^{n}(y_i - \hat{f}(x_i))^2 $

    注意关注的是测试均方误差,而不是训练均方误差。

    一个模型的训练均方误差最小时,不能保证模型的测试均方误同时会很小。在某些情况下,也许能够获得一组合适的测试数据集,比如可以使用一组没有被用于建立统计学习模型的观测数据做测试数据。但是,如果遇到了没有测试数据可用的情况,一个重要的方法是交叉验证 ( cross-validation)。这方面的内容安排在第 5 章讨论,其基本原理是使用训练集估计测试均方误差

    偏差-方差权衡

    在给定值$x_0$时,期望测试均方误差能分解成三个基本量的和,分别为:$\hat{f}(x_0)$的方差、$\hat{f}(x_0)$偏差的平方和误差项$\epsilon$的方差,具体而言:

    $E\left(y_0 - \hat{f}(x_0)\right)^2 = \text{Var}\left(\hat{f}(x_0)\right) + \left[\text{Bias}\left(\hat{f}(x_0)\right)\right]^2 + \text{Var}(\epsilon) \quad $

    • 偏差的平方(Bias²)偏差是指模型的预测结果与真实值之间的差异。偏差的平方衡量了模型预测的平均误差,它反映了模型在整体上的准确性。如果模型存在较大的偏差,说明模型可能过于简单,无法捕捉到数据中的真实关系,导致预测结果与真实值之间存在系统性的误差。
    • 方差(Variance)方差衡量的是模型在不同训练数据集上的预测结果的波动程度。如果一个模型的方差较大,意味着它对训练数据的变化非常敏感,在不同的训练集上可能会得到差异较大的预测结果,说明模型可能过于复杂,过度拟合了训练数据中的噪声和细节,而缺乏对数据整体规律的把握。
    • 噪声(Noise):噪声代表了数据中不可避免的随机误差或不确定性,它是由于数据采集过程中的误差、测量误差或其他不可控因素导致的。噪声是无法通过模型改进来消除的,它是数据本身固有的一部分。

    在模型评估和选择中,偏差和方差是两个非常重要的概念,通常需要在两者之间进行权衡,以找到一个既能准确捕捉数据规律又不过度拟合的合适模型。

    这张图展示了在机器学习和统计学中,模型的误差(MSE,均方误差)与模型灵活性(Model Flexibility)之间的关系,以及不同类型误差的变化趋势。

    1. 测试误差(Test Error,红色曲线):表示模型在未见过的数据上的预测误差。随着模型灵活性的增加,测试误差先下降,达到一个最低点后开始上升。这是因为当模型过于灵活时,会出现过拟合现象,在训练数据上表现很好,但在测试数据上表现较差。

    2. 训练误差(Training Error,绿色曲线):表示模型在训练数据上的误差。随着模型灵活性的增加,训练误差会持续下降。因为更灵活的模型能够更好地拟合训练数据。

    3. 偏差平方(Bias²,蓝色曲线):偏差是指模型的预测值与真实值之间的平均差异。随着模型灵活性的增加,偏差平方会减小。简单模型通常具有较高的偏差,因为它们不能很好地捕捉数据的复杂模式。

    4. 方差(Variance,黄色曲线):方差衡量的是模型在不同训练数据集上的预测结果的变化程度。随着模型灵活性的增加,方差会增大。复杂模型对训练数据的变化更加敏感,容易导致过拟合。

    5. 不可约误差(Irreducible Error,紫色虚线):这是由于数据本身的噪声和不确定性引起的误差,无法通过改进模型来减少。它是误差的下限,任何模型都无法将误差降低到这个水平以下。

    总体来说,这张图展示了在模型选择和调优过程中,需要平衡偏差和方差,以最小化测试误差。这通常被称为偏差 - 方差权衡(Bias - Variance Trade - off)。

    分类模型

    K 最近邻(K-Nearest Neighbors,KNN)分类器:

    KNN 分类器基于数据的相似性进行分类决策,其核心思想是:如果一个样本在特征空间中的 K 个最相似(即特征空间中距离最近)的样本中的大多数属于某一个类别,那么该样本就属于这个类别。例如,在一个水果分类任务中,待分类的水果在特征空间中与 5 个最近的水果样本中的 4 个都是苹果,那么就将这个待分类水果判断为苹果类别。

    算法步骤

    1. 数据准备:收集并整理带有类别标签的训练数据集,数据集中的每个样本都包含特征向量和对应的类别标签。
    2. 计算距离:对于待分类的测试样本,计算它与训练数据集中所有样本的距离。常用的距离度量方法有欧氏距离、曼哈顿距离等。比如在二维空间中,计算点(x_1,y_1)(x_2,y_2)的欧氏距离公式为d=\sqrt{(x_1 - x_2)^2+(y_1 - y_2)^2}
    3. 选择 K 个最近邻:根据计算出的距离,选择距离测试样本最近的 K 个训练样本。
    4. 分类决策:统计这 K 个最近邻样本中各个类别的出现频率,将测试样本分类为出现频率最高的类别。

    从识别训练集中$K$个最靠近$x_0$的点集开始,用$\mathcal{N}_0$表示$K$个点的集合,然后对每个类别$j$分别用$\mathcal{N}_0$中的点估计一个分值作为条件概率的估计,这个值等于$j$

    $ \mathrm{Pr}(Y = j \mid X = x_0)=\frac{1}{K}\sum_{i \in \mathcal{N}_0} I(y_i = j) \quad $

    K 值的选择

    • K 值的大小对 KNN 分类器的性能有重要影响。一般来说,较小的 K 值会使分类结果对局部数据更加敏感,模型的方差较大,容易产生过拟合现象;较大的 K 值则会使分类结果更倾向于数据的整体分布,模型的偏差较大,可能会导致分类。

    第三章 线性回归(Linear Regression)

    3.1  简单线性回归 simple linear regression

    简单线性回归是一种用于建模两个变量之间线性关系的统计方法,其模型表达式为

    $Y = \beta_0+\beta_1X+\varepsilon$

    其中$Y$ 是响应变量,$X$ 是预测变量,$\beta_0$是截距,$\beta_1$ 是斜率,$\epsilon$ 是误差项。 

    最小二乘法与线性回归系数估计

    在简单线性回归中,我们旨在找到一个线性模型来描述响应变量和预测变量之间的关系。残差平方和(residual sum of squares, RSS)是评估模型拟合程度的一个重要指标。

    残差平方和(RSS)定义为:

    $\ RSS = e_1^2 + e_2^2 + \cdots + e_n^2 \ $

    或等价地定义为:

    $ \ RSS = (y_1 - \hat{\beta}_0 - \hat{\beta}_1x_1)^2 + (y_2 - \hat{\beta}_0 - \hat{\beta}_1x_2)^2 + \cdots + (y_n - \hat{\beta}_0 - \hat{\beta}_1x_n)^2 $

    其中,$y_i$ 是第 $i$个观测的响应变量值,$x_i$是对应的预测变量值,$\hat{\beta}_0$$\hat{\beta}_1$ 是我们要估计的回归系数,$e_i$ 是第$i$个观测的残差。

    最小二乘法的目标是选择$\beta_0$$\beta_1$ ,使得 RSS 达到最小。通过微积分运算,可以得到使 RSS 最小的参数估计值为:

    $ \hat{\beta}_1 = \frac{\sum_{i = 1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i = 1}^{n} (x_i - \bar{x})^2} $

    $ \hat{\beta}_0 = \bar{y} - \hat{\beta}_1\bar{x} $

    这里 $\bar{y} $  , $\bar{x} $ 是样本均值。

    也就是说,公式定义了简单线性回归系数的最小二乘估计(least squares coefficient estimate)。 这些最小二乘估计值能够使模型在给定的样本数据上尽可能地拟合观测值,从而为我们提供对真实回归关系的一个估计。

    在实际应用中,我们通常会基于这些估计值来构建和评估线性回归模型,以进行预测和分析变量之间的关系。

    评估系数估计值的准确性

    • 无偏性:线性回归系数的估计值 $\hat{\beta}_0$$\hat{\beta}_1$ 具有无偏性,即从大量观测数据集中得到的估计值的均值等于真实值。也就是说,$E(\hat{\beta}_0) = \beta_0$$E(\hat{\beta}_1) = \beta_1$ ,这里$E(·)$表示期望。
    • 标准误差:引入标准误差(standard error)来衡量估计值偏离真实值的程度。

    以下是一些标准误差的计算公式:

    样本均值$\hat{\mu}$ 的标准误差:$SE(\hat{\mu}) = \frac{s}{\sqrt{n}}$ ,其中 $s$ 是样本标准差,$n$ 是样本量。

    回归系数$\hat{\beta}_1$ 的标准误差:$SE(\hat{\beta}_1) = \frac{\sqrt{\frac{1}{n - 2} \sum_{i = 1}^{n} (y_i - \hat{\beta}_0 - \hat{\beta}_1x_i)^2}}{\sqrt{\sum_{i = 1}^{n} (x_i - \bar{x})^2}}$

    回归系数$\hat{\beta}_0$ 的标准误差:$SE(\hat{\beta}_0) = s \sqrt{\frac{1}{n} + \frac{\bar{x}^2}{\sum_{i = 1}^{n} (x_i - \bar{x})^2}}$

    其中样本标准差是用来衡量一组数据离散程度的统计量,分为无偏样本标准差和有偏样本标准差,以下是具体公式:

    无偏样本标准差:也称为修正样本标准差,公式为$ s = \sqrt{\frac{\sum_{i = 1}^{n}(x_{i}-\bar{x})^{2}}{n - 1}} $。其中${x_i}$表示第$i$个样本值,$\bar{x}$是样本均值,$n$是样本数量。

    有偏样本标准差:也叫未修正样本标准差,公式为$ s = \sqrt{\frac{\sum_{i = 1}^{n}(x_{i}-\bar{x})^{2}}{n }} $

    与无偏样本标准差的区别只是根号内的分母为$n$

    在实际应用中,当样本是总体的一个随机子集且用于估计总体的标准差时,通常使用无偏样本标准差;当数据本身就是完整的总体或者不用于对总体参数进行估计时,有时会使用有偏样本标准差。

    置信区间与假设检验

    • 置信区间:置信区间用于给出在一定置信水平下,真实参数所在的区间范围。

    例如,对于$\beta_1$$95\%$置信区间,我们有公式:\hat{\beta}_1 \pm t_{\alpha/2, n - 2} \cdot SE(\hat{\beta}_1)

    在大样本情况下(或当误差项服从正态分布时),$t_{\alpha/2, n - 2}$ 近似为$2$ ,所以常简化为 $\hat{\beta}_1 \pm 2 \cdot SE(\hat{\beta}_1) $

    这意味着我们有 $95\%$ 的信心认为真实的$\beta_1$ 值落在这个区间内。

    • 零假设与备择假设:在判断$X$$Y$ 是否存在线性关系时,我们设定

    零假设$H_0: \beta_1 = 0$ 和备择假设 $H_A: \beta_1 \neq 0$

    如果零假设成立,意味着$X$$Y$ 没有线性影响。

    • t 统计量与 p 值:计算 t 统计量来检验假设:\ t = \frac{\hat{\beta}_1 - 0}{SE(\hat{\beta}_1)}

    t 统计量衡量了估计的斜率 $\hat{\beta}_1$与零假设下的斜率(即$0$ )之间的差异,相对于标准误差的大小。

    根据 t 统计量可以得到相应的 p 值。如果 p 值小于预先设定的显著性水平(如$0.05$),则拒绝零假设,认为$X$$Y$之间存在显著的线性关系;否则,不能拒绝零假设,即没有足够证据表明$X$$Y$之间存在线性关系。

    模型准确性评价

    • 残差标准误(RSE):残差标准误是对误差项$\epsilon$的标准偏差的估计,公式为:

    $ RSE = \sqrt{\frac{1}{n - 2} \sum_{i = 1}^{n} (y_i - \hat{\beta}_0 - \hat{\beta}_1x_i)^2} $

    它反映了响应值偏离真正回归直线的平均量,RSE 越小,说明模型对数据的拟合效果越好。

    RSE被认为是对模型失拟(lack of fit)的度量。

    • $R^2$ 统计量:$R^2$统计量衡量回归可解释响应变量变异的比例,取值在$0$$1$之间。计算公式为:

    $ R^2 = 1 - \frac{RSS}{TSS} $

    其中,$TSS = \sum_{i = 1}^{n} (y_i - \bar{y})^2$ 是总平方和,衡量了响应变量 $Y$的总变异程度。

    $R^2$ 越接近 $1$,说明回归对响应变量变异的解释程度越高,即模型拟合得越好。

    在简单线性回归中,$R^2$ 等于$X$$Y$ 相关系数的平方。 

    3.2  多元线性回归

    当有$p$ 个不同的预测变量时,多元线性回归模型为

    $Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \cdots + \beta_pX_p + \varepsilon$

    其中 $\beta_j$ 代表第$j$个预测变量和响应变量之间的关联,可解释为在其他预测变量保持不变时,$X_j$ 增加一个单位对$Y$产生的平均效果。

    • 系数估计:与简单线性回归类似,多元线性回归也用最小二乘法估计回归系数 $\beta_0, \beta_1, \beta_2, \cdots, \beta_p$ ,即使残差平方和

    $RSS=\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2=\sum_{i = 1}^{n}(y_i - \hat{\beta}_0 - \hat{\beta}_1x_{i1} - \hat{\beta}_2x_{i2} - \cdots - \hat{\beta}_px_{ip})^2$

    最小的 $\hat{\beta}_0, \hat{\beta}_1, \hat{\beta}_2, \cdots, \hat{\beta}_p$ 即为多元回归系数的最小二乘估计。

    假设检验

    整体显著性检验:检验所有回归系数是否均为零,即

    $H_0: \beta_1 = \beta_2 = \cdots = \beta_p = 0$(零假设)

    对应的备择假设$H_a$为至少有一个$\beta_j$不为$0$ 。通过计算$F$统计量$F=\frac{(TSS - RSS)/p}{RSS/(n - p - 1)}$ 进行检验,其中$TSS=\sum_{i = 1}^{n}(y_i - \bar{y})^2$ 

    $F$ 统计量较大,表明至少有一个预测变量与响应变量相关。

    部分显著性检验:有时需检验系数的特定子集为零,对应零假设 $H_0: \beta_{p - q + 1} = \beta_{p - q + 2} = \cdots = \beta_p = 0$,通过构建相应的 $F$统计量判断。

    变量选择 

    当根据$F$统计量和$p$值得出至少有一个预测变量与响应变量相关后,需确定具体相关变量。预测变量数$p$很大时,仅依据单个变量的$t$检验和$p$值判断可能得出错误结论。

    经典方法:

    • 向前选择:从只含截距的零模型开始,每次添加使$RSS$ 最小的变量,直到满足停止规则。
    • 向后选择:从包含所有变量的模型开始,每次删除$p$值最大的变量,直到满足停止规则。
    • 混合选择:结合向前和向后选择,先添加拟合最好的变量,再依次增加变量,同时根据 $p$ 值删除可能变大的变量。

    模型拟合评估

    评估指标:常用残差标准误(RSE)$R^2$评估模型拟合优劣。

    RSE:公式为$RSE = \sqrt{\frac{1}{n - p - 1}RSS}$ ,反映响应值偏离回归平面的平均量,值越小模型越准确。

    $R^2$在多元线性回归中,$R^2 = Cov(Y, \hat{Y})^2$,是响应值和线性模型拟合值的相关系数的平方,越接近 $1$ 表明模型能解释响应变量的大部分方差。

    但增加变量时,即使新变量与响应变量关联弱,$R^2$ 也会增加。

    预测的不确定性

    • 系数估计值$\hat{\beta}_0, \hat{\beta}_1, \cdots, \hat{\beta}_p$ 只是对真实参数$\beta_0, \beta_1, \cdots, \beta_p$的估计,存在不确定性。
    • 实践中线性模型是对现实的近似,存在改进可约误差的机会,模型偏差是可约误差来源之一。
    •  预测区间比置信区间更宽,不仅包含$f(X)$的估计误差(可约误差),还包含单个点偏离总体回归平面程度的不确定性(不可约误差),可用于量化特定情况下响应变量的不确定性。

    线性模型可能扩展为有交互项和非线性模型,可使用多项式回归。 

    3.3 线性回归模型在拟合数据集时可能遇到的潜在问题

    数据的非线性

    线性回归模型假定预测变量和响应变量间呈直线关系,若实际为非线性,结论可信度与预测精度将受影响。

    识别方法:绘制残差图,即残差\ e_i = y_i - \hat{y}_i和预测变量x_i(或拟合值\hat{y}_i )的散点图。多元回归中可绘制残差与拟合值散点图。理想情况下,残差图显示不出明显的规律。若存在明显规律,则表示线性模型的某些方面可能有问题。若残差呈现明显规律,如U形,可证明数据非线性。例如,在Auto数据集mpg对horse - power的线性回归中,残差图呈现明显U形,表明数据非线性。

    解决办法:使用预测变量的非线性变换,如log X\sqrt{X}X^2 等。

    误差项自相关

    线性回归假设误差项\epsilon_1, \epsilon_2, \cdots, \epsilon_n不相关,若违背该假设,会导致估计标准误低估真实标准误,置信区间和预测区间变窄,模型p 值不准确,置信度无法保证。

    产生原因:常见于时间序列数据,相邻时间点观测误差可能正相关;其他数据中,若样本存在共性特征,也可能违背该假设。

    识别方法:绘制残差随时间或观测顺序变化的图。若误差项不相关,图中应无明显规律;若误差项正相关,会出现跟踪现象,即相邻残差有类似值。

    解决措施:已开发多种方法解决时间序列数据中的误差自相关问题,良好实验设计也很重要。

    误差项方差非恒定

    通常线性回归假设误差项方差恒定,即VAR(\varepsilon_i)=\sigma^2 ,若不满足,称为异方差性

    影响:影响假设检验和标准误、置信区间计算。

    识别方法:残差图中,若残差随拟合值增加而扩散,如漏斗形状,表明存在异方差性。

    解决方法:用凹函数对响应值y做变换,如log Y\sqrt{Y} ,使较大响应值收缩,降低异方差性;也可估计每个响应值方差,使用加权最小二乘法拟合模型,权重w_i与方差倒数成比例,如w_i = n_in_i为第 i个响应值对应的原始观测值数量)。

    离群点

    离群点是y_i远离模型预测值的点。

    影响:可能影响最小二乘拟合,导致残差标准误(RSE)增大,加入离群点可能导致R^2降低等问题。

    识别方法:绘制残差图或学生化残差图。学生化残差由残差e_i除以它的估计标准误得到,学生化残差绝对值大于3的观测点可能是离群点。

    处理方式:若由数据采集或记录错误导致,可直接删除;但也可能暗示模型存在缺陷,如缺少预测变量。

    高杠杆点

    高杠杆点指观测点x_i异常,对回归直线估计影响大。

    识别方法:

    简单线性回归中,可找预测变量取值超出正常范围的观测点;

    多元线性回归中较复杂,可计算杠杆统计量h_i,公式为h_i=\frac{1}{n}+\frac{(x_i - \bar{x})^2}{\sum_{j = 1}^{n}(x_j - \bar{x})^2}h_ix_i - \bar{x}增加而增加,且所有观测的平均杠杆值为(p + 1)/np 为预测变量数,n 为样本量),若h_i大大超过(p + 1)/n,可能是高杠杆点。

    影响:高杠杆观测对回归直线估计影响大,其出现问题可能使拟合失效。

    共线性

    共线性指两个或更多预测变量高度相关。 

    影响:难以分离单个变量对响应值的影响,导致系数估计不确定性增大,标准误变大,t统计量下降,假设检验效力降低,可能无法拒绝零假设H_0: \beta_j = 0

    识别方法:

    查看预测变量的相关系数矩阵,出现绝对值大的元素表示存在共线性;

    计算方差膨胀因子(VIF),公式为VIF(\hat{\beta}_j)=\frac{1}{1 - R_{j,X_{ - j}}^2} ,其中R_{j,X_{ - j}}^2X_j对所有预测变量回归的R^2

    R_{j,X_{ - j}}^2接近于1,存在共线性且VIF会很大,一般VIF值超过5或10表示有共线性问题。

    解决方法:从回归中剔除一个相关变量,但可能损失信息;将共线变量组合成新变量,如对标准化的共线变量求平均创建新变量衡量特定概念。

    补充——多重共线性::即使没有某对变量具有特别高的相关性,有可能三个或更多变量之间存在共线性。

    【例】一个数据集包含100个观测值。

    一位研究人员在进行线性回归分析时考虑了以下解释变量:

    一个解释变量是分类变量,有六种可能的值;

    两个解释变量是分类变量,每个都有四种可能的值;

    另外五个解释变量是连续变量。

    研究人员希望使用向前逐步选择程序得到最佳模型。不考虑交互项。这位研究人员最多需要拟合多少个线性模型?

    1.确定解释变量的总数:
       - 分类变量1:6种可能的值,通常需要5个虚拟变量(因为一个类别作为参考类别)否则可能产生多重共线性问题(其中一个变量可以用其他几个变量的线性组合表示)。
       - 分类变量2:4种可能的值,需要3个虚拟变量。
       - 分类变量3:4种可能的值,需要3个虚拟变量。
       - 连续变量:5个,每个变量作为一个解释变量。

       对于分类变量有多个可能的值,可以把每一个可能的值设为一个二元变量,k个可能的值设k-1个虚拟变量
       因此,总解释变量数 = 5(分类变量1) + 3(分类变量2) + 3(分类变量3) + 5(连续变量) = 16个解释变量。

    2. 向前逐步选择过程:
       - 向前逐步选择从没有解释变量的模型开始,逐步添加对模型贡献最大的解释变量。
       - 每一步,模型会尝试添加一个尚未在模型中的解释变量,并选择使模型性能提升最大的那个。
       - 这个过程会持续,直到没有更多的解释变量可以显著提升模型性能。

    3. 计算需要拟合的模型数量:
       - 在每一步,模型需要拟合所有可能的添加一个解释变量的情况。
       - 初始模型:0个解释变量,1个模型。
       - 第一步:添加1个解释变量,有16种选择,需要拟合16个模型。
       - 第二步:在第一步的基础上,添加1个解释变量,剩下15个选择,需要拟合15个模型。
       - 依此类推,直到所有16个解释变量都被添加进模型。

    4. 总模型数量:
       - 总模型数 = 1(初始模型) + 16(第一步) + 15(第二步) + ... + 1(最后一步)。
       - 这是一个等差数列求和问题,首项a1=16,末项an=1,项数n=16。
       - 等差数列求和公式:S = n/2 * (a1 + an) = 16/2 * (16 + 1) = 8 * 17 = 136。

    这位研究人员最多需要拟合136个线性模型。

    3.4  对线性回归和K最近邻法(KNN)进行比较

    线性回归与K最近邻法概述

    线性回归:属于参数方法,将f(X)假设为线性函数形式。其优点是估计系数少,易拟合,系数有简单解释且可进行统计显著性检验;缺点是对 f(X) 形式假设强,若实际关系远非线性,拟合效果会很差。

    K最近邻法(KNN):是非参数方法,不明确假设f(X) 的参数形式,更灵活。给定K 值和预测点 x_0,先确定 K个最接近x_0的训练观测,记为N_0 ,然后用 N_0 中所有训练数据的平均值来估计 f(X) ,即\hat{f}(x_0)=\frac{1}{K}\sum_{x_i\in N_0}y_i

    两种方法的比较 

    线性关系情况:

    若选定的参数形式接近 f的真实形式,参数方法(如线性回归)更优。

    真实关系线性时,线性回归拟合几乎完美,KNN的均方误差(MSE)远高于线性回归;

    K值较大时,KNN的MSE只稍逊于线性回归;K很小时,KNN表现比线性回归差。

    非线性关系情况:

    真实关系近似线性时,线性回归的MSE优于较小K值的KNN,K\geq4 时,KNN优于线性回归;非线性增加时,KNN的测试集MSE变化小,线性回归的测试集MSE大幅增加。

    高维情况:

    p较大(如p = 20)时,会出现维度灾难,即观测点附近无邻点,KNN的预测效果变差,而线性回归优于KNN。

    一般来说,每个预测变量观测少,参数化方法往往优于非参数方法。

    从可解释性看,即使在低维问题上,线性回归也更受青睐,若KNN的测试集MSE仅略低于线性回归,可能选择建立更简单的线性回归模型。

    第四章 分类(classification)

    定性变量也称为分类变量(qualitative、categorical),本章将学习预测定性响应变量的方法及分类的过程,即对观测分类。

    注意:在二元的情况中(哑变量 0/1编码的二元响应变量),即使调换编码的顺序,线性回归最后依然会产生相同的预测,使用线性回归预测二元响应变量的结果和线性判别分析(LDA)的结果一致。

    但对两水平以上的定性响应变量,哑变量的方法不能任意推广。

    4.1  logistic回归

    在Default数据集中,响应变量default只取Yes(违约)或No(不违约)两个值。逻辑斯谛回归不对响应变量$Y$直接建模,而是对$Y$属于某一类的概率建模。

    对于Default数据,建立违约概率模型。给定balance(信用卡余额)时,记

    $Pr(\text{default} = \text{Yes}|\text{balance}) = p(\text{balance})$

    $p(\text{balance})$取值范围在$0$$1$之间。若$p(\text{balance})>0.5$,预测$\text{default} = \text{Yes}$;若公司希望谨慎,可选择更低阈值,如$p(\text{balance})>0.1$

    逻辑斯谛模型

    考虑如何建立$p(X) = Pr(Y = 1|X)$$X$的关系(响应变量按常规$0/1$编码取值)。

    用线性回归模型$p(X)=\beta_0+\beta_1X$ (公式4.1)时预测违约概率存在问题,当信用卡余额接近零或非常大时,产生的概率值不合理,不在$0$$1$之间。 逻辑斯谛回归使用逻辑斯谛函数:

    $p(X)=\frac{e^{\beta_0+\beta_1X}}{1 + e^{\beta_0+\beta_1X}}$  

    (公式4.2)

    该函数产生$S$形曲线,无论$X$取何值,$p(X)$都在$0$$1$之间。

    对公式(4.2)整理可得:

    $\frac{p(X)}{1 - p(X)}=e^{\beta_0+\beta_1X}$

    (公式4.3)

    $\frac{p(X)}{1 - p(X)}$称为发生比(odd),取值范围是$0$$\infty$

    如平均$5$人中有$1$人违约,$p(X)=0.2$,发生比为$\frac{0.2}{1 - 0.2}=\frac{1}{4}$;平均$10$人中有$9$人违约,$p(X)=0.9$,发生比为$\frac{0.9}{1 - 0.9}=9$ 。 对公式(4.3)两边同时取对数:$\log(\frac{p(X)}{1 - p(X)})=\beta_0+\beta_1X$

    (公式4.4)

    等式左边称为对数发生比(log - odd)或对数几率(logit)。

    逻辑斯谛回归模型(公式4.2)可视为对数变换下关于$X$的一个线性模型。在该模型中,$X$每增加一个单位,对数发生比的变化为$\beta_1$ ,但$p(X)$$X$增加一个单位的改变量取决于$X$的当前取值。

    $\beta_1$为正,$p(X)$$X$增加而增加;若$\beta_1$为负,$p(X)$$X$增加而减少。

    估计回归系数

    公式(4.2)中的系数$\beta_0$$\beta_1$未知,需通过有效训练数据估计。虽可用(非线性)最小二乘拟合公式(4.4),但通常采用极大似然法,因其有更好统计性质。

    极大似然法拟合逻辑斯谛回归模型的基本思想是:寻找$\beta_0$$\beta_1$的估计$\hat{\beta}_0$$\hat{\beta}_1$,使由公式(4.2)得到的每个人的违约预测概率 $\hat{p}(x_i)$ 尽可能与违约的观测情况接近,即让所有违约人的值接近于$1$,未违约人的值接近于$0$。该思想可表达为似然函数:

    $\ell(\beta_0,\beta_1)=\prod_{i:y_i = 1}p(x_i)\prod_{i:y_i = 0}(1 - p(x_i))$

    (公式4.5)

    所估计的系数$\hat{\beta}_0$$\hat{\beta}_1$应使似然函数值最大。 以Default数据为例,建立用balance预测$\text{default} = \text{Yes}$概率的逻辑斯谛回归模型,系数估计及相关信息显示,$\hat{\beta}_1 = 0.0055$,表示信用卡余额(balance)越多,发生违约(default)的概率越大,balance每增加一个单位,default的对数发生比增加$0.0055$个单位。$z$统计量和线性回归模型输出的$t$统计量作用一样,$\beta_1$$z$统计量等于$\frac{\hat{\beta}_1}{SE(\hat{\beta}_1)}$,当$z$统计量绝对值很大时,说明零假设$H_0:\beta_1 = 0$不成立。表中balance的$p$值很小,因此拒绝$H_0$,表明default概率与balance之间确实存在关系。截距项估计通常意义不大,主要用于调节平均拟合概率,使其与真实数据实际发生比例更接近。

    预测

    模型系数估计结束后,可计算default概率。例如,用表4 - 1中的系数估计,当balance为$1000$美元时,预测违约概率为:

    $\hat{p}(X)=\frac{e^{\hat{\beta}_0+\hat{\beta}_1X}}{1 + e^{\hat{\beta}_0+\hat{\beta}_1X}}=\frac{e^{- 10.6513+0.0055\times1000}}{1 + e^{- 10.6513+0.0055\times1000}} = 0.00576$

    违约概率小于$1\%$ 。若balance为$2000$美元,预测违约概率为$0.586$ ,即$58.6\%$

    在逻辑斯谛回归中,可用哑变量的方法分析定性预测变量。以Default数据集包含学生身份这一定性变量为例,设学生身份为$1$,非学生身份为$0$ 。用学生身份预测违约概率的逻辑斯谛回归模型结果显示,哑变量的系数值为正,$p$值显著,表明学生身份比非学生身份更容易违约。

    具体概率计算如下:

    $Pr(\text{default} = \text{Yes}|\text{student} = \text{Yes})=\frac{e^{- 3.5041+0.4049\times1}}{1 + e^{- 3.5041+0.4049\times1}} = 0.0431$$Pr(\text{default} = \text{Yes}|\text{student} = \text{No})=\frac{e^{- 3.5041+0.4049\times0}}{1 + e^{- 3.5041+0.4049\times0}} = 0.0292$
     

    多元逻辑斯谛回归

    考虑预测二元响应变量受多因素影响的情况,对公式(4.4)推广如下:$\log(\frac{p(X)}{1 - p(X)})=\beta_0+\beta_1X_1+\cdots+\beta_pX_p$

    (公式4.6)

    其中$X=(X_1,\cdots,X_p)$$p$个预测变量。公式(4.6)可重写为: $p(X)=\frac{e^{\beta_0+\beta_1X_1+\cdots+\beta_pX_p}}{1 + e^{\beta_0+\beta_1X_1+\cdots+\beta_pX_p}}$

    (公式4.7)

    和简单logistic回归一样,根据极大似然方法估计$\beta_0$,$\beta_1$,$\cdots$$\beta_p$

    以Default数据集为例,结合balance、income(千美元)、student三个预测变量建立预测default概率的逻辑斯谛回归模型。balance和哑变量student的$p$值很小,意味着两者对default概率有影响,但student的系数正负在不同模型中有差异。

    在多元逻辑斯谛回归模型中,student的系数为负,说明考虑balance和income两个因素后,学生身份相较于非学生身份更不易违约。但在简单logistic回归student哑变量系数为正。原因是变量间存在相关性,学生身份与信用卡余额相关,学生倾向持有更多债务,违约率更高。即便学生在给定信用卡余额下违约概率更小,但总体上因持有更多余额,违约率比非学生高。这种现象称为混淆现象(confounding)

    将多元逻辑斯谛回归回归系数估计值代入公式(4.7)可做预测。

    如信用卡余额为$1500$美元,收入$40000$美元的学生违约率为:

    $\hat{p}(X)=\frac{e^{- 10.8690+0.0057\times1500+0.0030\times40 - 0.6468\times1}}{1 + e^{- 10.8690+0.0057\times1500+0.0030\times40 - 0.6468\times1}} = 0.058$

    非学生(同样余额和收入)违约率为:

    $\hat{p}(X)=\frac{e^{- 10.8690+0.0057\times1500+0.0030\times40 - 0.6468\times0}}{1 + e^{- 10.8690+0.0057\times1500+0.0030\times40 - 0.6468\times0}} = 0.105$

    响应分类数超过2的逻辑斯谛回归

    有时响应变量取值多于两类(但都是一个响应变量),如4.2节中急诊室患者患病情况分为中风(stroke)、服药过量(drug overdose)和癫痫发作(epileptic seizure)三类。

    因为这三种患病情况是互斥且完备的事件集合。互斥意味着一个患者不可能同时既患有中风,又同时患有服药过量和癫痫发作这三种病中的两种或多种;完备性表示患者的患病情况必然是这三种情况中的一种,不存在其他可能的患病类别(在当前所设定的这个简化分类体系下)。可建立

    $Pr(Y = \text{stroke}|X)$

    $Pr(Y = \text{drug overdose}|X)$

    的模型,而$Pr(Y = \text{epileptic seizure}|X)=1 - Pr(Y = \text{stroke}|X)-Pr(Y = \text{drug overdose}|X)$ 两类逻辑斯谛回归模型可推广到多类,但实际应用不常用,因下节介绍的判别分析方法是解决多类分类问题的常用方法,此处仅对多类逻辑斯谛回归简略提及。

    多项逻辑回归(Multinomial Logistic Regression)

    是逻辑回归在多分类问题上的扩展,用于处理因变量有三个或三个以上类别的情况。

    模型原理:

    多项逻辑回归基于线性预测函数,为每个类别分别构建一个线性组合,再通过softmax函数将这些线性组合转化为概率。假设自变量为$X=(X_1,X_2,\ldots,X_p)$,对于$K$个类别,会得到$K$个线性预测值$Z_1,Z_2,\ldots,Z_K$,如$Z_k=\beta_{k0}+\sum_{j = 1}^{p}\beta_{kj}X_j$$k = 1,2,\ldots,K$) 。然后使用softmax函数计算每个类别的概率:$Pr(Y = k|X)=\frac{e^{Z_k}}{\sum_{l = 1}^{K}e^{Z_l}}$ ,所有类别的概率总和为1。

    多项逻辑回归中因变量(即响应变量)有以下两种常见表示方式:

    名义型类别表示:因变量以几个没有顺序关系的类别形式呈现,直接用文字或数字编码来区分不同类别。例如,在水果种类分类中,因变量可能是“苹果”“香蕉”“橙子” 等;在动物种类识别中,可能是“猫”“狗”“兔子” 等。在进行数据处理时,通常会将这些文字标签转换为数字编码,比如可以将“苹果”编码为1,“香蕉”编码为2,“橙子”编码为3,但这些数字仅用于区分类别,本身没有数值大小的含义。

    独热编码(One - Hot Encoding)表示:对于有$K$个类别的因变量,会将其转换为一个由$K$个二进制变量组成的向量。在这个向量中,只有对应真实类别的位置取值为1,其余位置取值为0 。比如,在上述水果分类例子中,如果有“苹果”“香蕉”“橙子”三类,“苹果”就可以表示为$(1, 0, 0)$,“香蕉”表示为$(0, 1, 0)$,“橙子”表示为$(0, 0, 1)$。这种编码方式能清晰地体现类别信息,方便在模型计算中使用,多项逻辑回归在处理数据时经常会采用独热编码的形式来表示因变量。

    应用场景:

    广泛应用于各种多分类任务。例如在文本分类中,将文档分到不同主题类别;在医学诊断中,根据患者症状判断患有多种疾病中的哪一种;在客户细分中,将客户分为不同的群体类别等。

    与二分类逻辑回归的关系:

    二分类逻辑回归处理的是因变量只有两个类别的情况,通过sigmoid函数将线性预测值转化为属于某一类别的概率。多项逻辑回归是其在多类别上的推广,当类别数为2时,多项逻辑回归就退化为二分类逻辑回归。

    模型评估:

    和其他分类模型类似,多项逻辑回归可使用准确率、召回率、F1值、混淆矩阵等指标评估。同时,也会用到对数似然函数、AIC(赤池信息准则)、BIC(贝叶斯信息准则) 等指标来衡量模型的拟合优度和复杂程度。

    4.2  线性判别分析(linear discriminant analysis LDA)

     在二元响应变量情况下,逻辑斯谛回归根据逻辑斯谛函数建立$Pr(Y = k|X = x)$的模型,即给定预测变量$X$,建立响应变量$Y$的条件分布模型。

    而线性判别分析则是用另一类方法估计这些概率,该方法分别对每种响应分类(给定的$Y$)建立预测变量$X$的分布模型,然后运用贝叶斯定理反推估计$Pr(Y = k|X = x)$ 。

    假设这些分布是正态分布时,模型在形式上与逻辑斯谛回归很相似。 使用线性判别分析的原因如下:

    1. 当类别间的区分度高时,逻辑斯谛回归模型的参数估计不够稳定,线性判别分析不存在这个问题。

    2. 如果样本量$n$较小,且在每一类响应分类中预测变量$X$近似服从正态分布,那么线性判别分析模型比逻辑斯谛回归模型更稳定。

    3. 当响应分类多于两类时,线性判别分析应用更普遍。

    运用贝叶斯定理进行分类

    假设观测分成$K$类($K\geq2$),定性的响应变量$Y$可以取$K$个不同的无序值。

    $\pi_k$为一个随机选择的观测来自第$k$类的先验(prior)概率,即给定观测属于响应变量$Y$的第$k$类的概率。

    $f_k(X)\equiv Pr(X = x|Y = k)$表示第$k$类观测的$X$的密度函数(density function)。

    贝叶斯定理(Bayes theorem)可以表述为:

    Pr(Y = k|X = x)=\frac{\pi_k f_k(x)}{\sum_{l = 1}^{K}\pi_l f_l(x)}

    (公式4.10)

    $p_k(X)=Pr(Y = k|X)$,将$\pi_k$$f_k(x)$代入(4.10)中来替代逻辑斯蒂模型直接计算$p_k(x)$的方法。

    通常$\pi_k$的估计容易求得,取一些变量$Y$的随机样本,分别计算属于第$k$类的样本占总样本的比例作为估计。

    $f_k(x)$的估计要更复杂些,除非假设它们的密度函数形式简单。

    $p_k(x)$$X = x$的观测属于第$k$类的后验(posterior)概率,即给定观测的预测变量值时,观测属于第$k$类的概率。

    从第2章可知,贝叶斯分类器将一个观测分到$p_k(X)$最大的一类中,它在所有分类器中错误率最小(只有当(4.10)中的各项假设是正确的情况下,这个结论才是对的)。

    因此,如果找到一个估计$f_k(X)$的方法,可以依此发展出一个与贝叶斯分类器类似的分类方法。

    $p = 1$的线性判别分析

    假设$p = 1$,即只有一个预测变量

    首先要获取$f_k(x)$的估计,然后代入(4.10)中,从而估计出$p_k(x)$

    根据$p_k(x)$的值,将观测分到值最大的一类中。

    假设$f_k(x)$是正态(normal)或高斯(Gaussian)的。在一维的情况下,正态密度函数的形式为:

    f_k(x)=\frac{1}{\sqrt{2\pi}\sigma_k}\exp\left(-\frac{1}{2\sigma_k^2}(x - \mu_k)^2\right)

    (公式4.11)

    其中$\mu_k$$\sigma_k^2$是第$k$类的平均值和方差。再假设$\sigma_1^2 = \cdots = \sigma_K^2$,即所有$K$个类的方差是相同的,简记为$\sigma^2$。将(4.11)代入(4.10),得到:

    p_k(x)=\frac{\pi_k\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2}(x - \mu_k)^2\right)}{\sum_{l = 1}^{K}\pi_l\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2\sigma^2}(x - \mu_l)^2\right)}

    (公式4.12)

    对(4.12)取对数,整理式子,可得贝叶斯分类器将观测$X = x$分到使下式最大的一类:

    \delta_k(x)=x\cdot\frac{\mu_k}{\sigma^2}-\frac{\mu_k^2}{2\sigma^2}+\log\pi_k

    (公式4.13)

    例如,假设$K = 2$$\pi_1 = \pi_2$,当$x\cdot\frac{2(\mu_1 - \mu_2)}{2\sigma^2}>\frac{\mu_1^2 - \mu_2^2}{2\sigma^2}$时,贝叶斯分类器把观测分入第一类,否则分入第二类。此时贝叶斯决策边界对应的点为:x=\frac{\mu_1^2 - \mu_2^2}{2(\mu_1 - \mu_2)}=\frac{\mu_1 + \mu_2}{2}(公式4.14) 实际中,即使确定每一类$X$服从一个高斯分布,仍需要估计参数$\mu_1,\cdots,\mu_K$$\pi_1,\cdots,\pi_K$$\sigma^2$

    线性判别分析方法与贝叶斯分类器相似,将$\hat{\pi}_k$$\hat{\mu}_k$$\hat{\sigma}^2$代入(4.13)中。常用的参数估计为:

    \hat{\mu}_k=\frac{1}{n_k}\sum_{i:y_i = k}x_i

    \hat{\sigma}^2=\frac{1}{n - K}\sum_{k = 1}^{K}\sum_{i:y_i = k}(x_i - \hat{\mu}_k)^2

    (公式4.15)

    其中$n$为观测的总量,$n_k$为属于第$k$类的观测量。$\hat{\mu}_k$的估计即为第$k$类观测的均值,而$\hat{\sigma}^2$可以视为$K$类样本方差的加权平均。有时可以掌握并直接使用每一类的先验概率$\pi_1,\cdots,\pi_K$

    当信息不全时,LDA用属于第$k$类观测的比例估计$\pi_K$,即:

    \hat{\pi}_k = n_k / n

    (公式4.16)

    LDA分类器将(4.15)和(4.16)中的估计值代入(4.13),并将观测$X = x$分入使:

    \hat{\delta}_k(x)=x\cdot\frac{\hat{\mu}_k}{\hat{\sigma}^2}-\frac{\hat{\mu}_k^2}{2\hat{\sigma}^2}+\log\hat{\pi}_k

    (公式4.17)

    最大的一类。通过生成大量测试观测来计算贝叶斯错误率和LDA测试错误率,结果表明LDA分类器的错误率只比最小可能的错误率高0.5%,说明LDA对数据分类的效果相当不错。

     $p > 1$的线性判别分析

    将LDA分类器推广至多元预测变量的情况。

    假设$X=(X_1,X_2,\cdots,X_p)$服从一个均值不同、协方差矩阵相同的多元高斯分布(multivariate Gaussian)或多元正态分布。

    多元高斯分布假设每一个预测变量服从一个如(4.11)所示的一维正态分布且每两个预测变量之间都存在一些相关性。若$p$维随机变量$X$服从多元高斯分布,则记为$X\sim N(\mu,\Sigma)$,其中$E(X)=\mu$$X$$p$个元素组成的向量)的均值,$Cov(X)=\Sigma$$X$$p\times p$的协方差矩阵。

    多元高斯分布密度函数形式上可以定义为:

    f(x)=\frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}}\exp\left(-\frac{1}{2}(x - \mu)^T\Sigma^{-1}(x - \mu)\right)

    (公式4.18)

    在预测变量的维度$p > 1$的情况下,LDA分类器假设第$k$类观测服从一个多元高斯分布$N(\mu_k,\Sigma)$,其中$\mu_k$是一个均值向量,$\Sigma$是所有$K$类共同的协方差矩阵。

    将第$k$类的密度函数$f_k(X = x)$代入(4.10)中,可知贝叶斯分类器将观测$X = x$分入使:

    \delta_k(x)=x^T\Sigma^{-1}\mu_k-\frac{1}{2}\mu_k^T\Sigma^{-1}\mu_k+\log\pi_k

    (公式4.19)

    最大的那类。这也是(4.13)的向量/矩阵形式。

    同样,需要估计未知参数$\mu_1,\cdots,\mu_K$$\pi_1,\cdots,\pi_K$$\Sigma$。估计的公式和(4.15)一维情况相似。对一个新的观测$X = x$,LDA将这些参数估计值代入(4.19)中,并将观测分入使得$\hat{\delta}_k(x)$最大的一类。

    注意到$\delta_k(x)$是一个关于$x$的线性函数,这就是线性判别分析中“线性”(linear)的由来。

    将LDA运用于Default数据上,根据一个人的信用卡余额和学生身份预测其违约情况。LDA模型对10000个训练样本进行拟合,得到训练错误率为2.75%。但训练错误率往往比测试错误率要低,模型可能出现过拟合。

    在该例中,$p = 4$$n = 10000$,过拟合风险较小。在训练样本中,只有3.33%的人违约,一个简单但可能完全无用的分类器在不考虑相关变量影响时,也可能预测一个人不会违约的错误率为3.33%。

    LDA会产生两种类型的错误:将违约的人分入未违约一类,和将未违约的人分入违约一类。

    混淆矩阵(confusion matrices)

    可以展示这类信息。用灵敏度(sensitivity)特异度(specificity)作为分类器或筛查测试能力的评价。

    灵敏度是被正确判别的违约者的比例;特异度指的是被正确判别没有违约人的比例。

    贝叶斯分类器的原理是将观测分入后验概率$p_k(X)$最大的一类中。在两类情况中,如果$Pr(\text{default} = \text{Yes}|X = x)>0.5$,就将观测分入违约一组。

    作为LDA的一个扩展的贝叶斯分类器,将观测分入违约一组,采用了50%作为后验违约概率的阈值。若更关心错误地将违约者判为未违约的概率,可以降低阈值,如将后验违约概率在20%以上的人纳入违约一组。

    图4-7 圈中显示的是对Default数据集,错误率关于分类后验概率的阀值的函数。黑色实线展示的是总的错误率,蓝色虚钱代表的是违约者被错误分类的比例,而橙色的点代表的是没有违约者被错误分类的比例。

    在评价一个二分类的机器学习分类器好坏的时候,我们通常有AccuracyPrecisionRecall、F1 Score等指标可以选择。下面介绍一下这些指标的定义和使用场景。

    Accuracy

    Accuracy,中文为准确率,指的是“预测正确的样本数÷样本数总数”。计算公式为:

    accuracy=\frac{TP+TN}{TP+TN+FP+FN}

    准确率的优点是比较简单直观。通常我们在如下情况的时候使用Accuracy:

    • 数据集是平衡的;
    • 我们要向对于机器学习与数据科学不熟悉的人解释我们的模型;
    • 每一类label对我们来说是一样重要的。因为Accuracy同时考虑了Positive samples和Negative samples。

    缺点是不适用于不平衡数据,这里我们可以举一个例子。

    例:我们要预测当天是否会发生地震。

    由于在某一天内不会发生地震的概率可能性接近99.99%,模型会倾向于无脑地把所有的日子全部预测为不会发生地震,这样它的accuracy将会高达99.99%,只有在那0.01%的、会发生地震的日子是预测错的。

    这样的模型虽然accuracy非常高,但是没有任何意义。毕竟我们要的就是在这0.01%的日子把地震预测出来,你全部预测成“没有地震”了要你还有什么用。

    在这种情况下,accuracy显然是一个非常差的指标,它无法衡量一个模型的真实预测能力。

    Precision

    Precision,中文为精确率或者精度,指的是在我们预测为True的样本里面,有多少确实为True的。在信息检索领域,precision也被称为“查准率”。其公式为:

    precision = \frac{TP}{TP+FP}

    什么情况下我们要求Precision要高?

    当“把一个实际是False的样本错标为True”的成本很高,但是“把一个实际是True的样本错标为False”成本很低的时候。

    也可以简记为:“冤假错案”成本高,“漏网之鱼”成本低。

    Recall

    Recall,中文是召回率,指的是,实际上为True的样本有多少被我们挑出来了。在信息检索领域,recall也被称为“查全率”。其公式为:

    recall=sensitivity=\frac{TP}{P}

    其中,P 表示实际的正例样本数,即TP+FN。

    如果我们要求recall高,我们实际上是在求“大而全”,也就是我们希望一定要把所有的positive samples全部找出来,哪怕我们找出来的样本里面有很多“滥竽充数”的negative样本在里面。追求recall高,实际上的原则是,不管你是否真的是positive,只要我看着你“很可疑”,我就管他三七二十一先把你抓出来,哪怕有冤假错案也在所不惜。

    什么情况下我们要求Recall要高?

    很简单,就是和precision一节中所说的相反的情况。

    当“把一个实际是False的样本错标为True”的成本很低,但是“把一个实际是True的样本错标为False”成本很高的时候。

    也可以简记为:“冤假错案”成本低,“漏网之鱼”成本高。

    Accuracy和Recall的调和指标:F1 Score

    既能兼顾recall和precision两个方面,又不会受到不平衡样本的影响的指标。

    F-Measure是Precision和Recall的加权调和平均:

    F = \frac{(\alpha^2 + 1) * precision * recall}{ \alpha^2 * precision + recall}

    当参数α=1时,就是最常见的F1-score,也即

    F 1= \frac{2 * precision * recall}{ precision + recall}

    注意,f1 score衡量的是模型寻找正例的能力,因为Precision和recall都是衡量寻找正例的指标。

    那么究竟怎么决定最优的阈值呢?

    图4 - 7展示了改变后验违约概率阈值权衡利弊的结果,各种错误率都可以看做是阈值的一个函数。用0.5作为阈值会使总错误率降到最低。

    图 4 - 8 关于 Default 数据的 LDA 分类器的 ROC 曲线。

    改变后验违约概率的阈值,它追踪出两类错误。真实的阈值没有显示出来。

    真阳性率:在给定阈值下,违约者被正确判断的比例。

    假阳性率:同样阈值下,未违约者被错误判断的比例。

    理想的 ROC 曲线应该紧贴左上角,即高的真阳性率,低的假阳性率。点线代表 “没有信息” 的分类器,如果学生身份和信用卡余额对违约概率没有影响,这也是我们所期望的。

    ROC曲线

    (reveiver operating characteristic)是一种常用的图像,它可以同时展示出所有可能阈值出现的两类错误。

    ROC曲线下面的面积(area under the ROC curve, AUC)越大,分类器越好。

    一个理想的ROC曲线会紧贴左上角,所以AUC越接近1,分类器表现越好。使用ROC曲线进行分类器的比较非常常用,因为它能考虑到各种可能的阈值。

    这两张表主要围绕分类和诊断测试的评价指标展开,具体内容如下:

    • 表4.6

    该表展示了将分类器或诊断测试应用于总体时可能出现的结果情况,相关符号及含义如下:

    True Neg. (TN):真阴性值,即实际为负类(“ - or Null”)且被正确预测为负类的数量。

    False Neg. (FN):假阴性值,实际为正类(“ + or Non - null”)但被错误预测为负类的数量。

    False Pos. (FP):假阳性值,实际为负类但被错误预测为正类的数量。

    True Pos. (TP):真阳性值,实际为正类且被正确预测为正类的数量。

    N:负类的实际总数。

    P:正类的实际总数。

    N:预测为负类的总数。

    P:预测为正类的总数。

    这些结果构成了混淆矩阵的基本元素,通过它们可以进一步计算各种评价指标,以评估分类器或诊断测试的性能。

    • 表4.7

    该表总结了分类和诊断测试中常用的重要评价指标,具体内容为:

    False Pos. rate(假阳性率):定义为$FP/N$,也称为第I类错误(Type I error)或1 - 特异度(1 - Specificity)。它表示在实际为负类的样本中,被错误预测为正类的比例。

    True Pos. rate(真阳性率):定义为$TP/P$,也叫1 - 第II类错误(1 - Type II error)、功效(power)、灵敏度(sensitivity)、召回率(recall)。它反映了在实际为正类的样本中,被正确预测为正类的比例。

    Pos. Pred. value(预测阳性率):定义为$TP/P^*$,即精确率(Precision)、1 - 错误发现率(1 - false discovery proportion)。它表示在预测为正类的样本中,实际为正类的比例。

    Neg. Pred. value(预测阴性率):未给出具体公式,其分母是预测为负类的总数,该指标衡量在预测为负类的样本中,实际为负类的比例。

    表4.7中的指标是基于表4.6中的数量推导而来,在Default数据的背景下,“ + ”表示违约者,“ - ”表示未违约者。这些指标对于评估分类模型在不同方面的性能具有重要意义,帮助分析模型在正确和错误分类上的表现情况。

    二次判别分析(quadratic discriminant analysis QDA)

    线性判别分析假设每一类观测服从一个多元高斯分布,其中协方差矩阵对所有的$K$类是相同的。

    二次判别分析(quadratic discriminant analysis, QDA)提供了另一种方法。

    与LDA一样,QDA分类器也假设每一类观测都服从一个高斯分布,把参数估计代入贝叶斯定理进行预测。然而,与LDA不同的是,QDA假设每一类观测都有自己的协方差矩阵,即假设来自第$k$类的观测形如$X\sim N(\mu_k,\Sigma_k)$$\Sigma_k$是第$k$类的协方差矩阵。

    在这种假设下贝叶斯分类器把观测$X = x$分入使:

    (公式4.23)

    最大的一组。

    所以QDA分类器涉及把$\Sigma_k$$\mu_k$$\pi_k$的估计代入(4.23)中,然后将观测$X = x$分入使上式最大的一类里。不像(4.19),(4.23)是关于$x$的二次函数,这也是QDA名字的由来。

    假设有k类,p个预测变量,完成LDA或QDA全过程分别需要估计多少个参数:

    均值向量参数+协方差矩阵参数+先验概率参数

    QDA全过程需要估计的参数总数为:$Kp+K\times\frac{p(p + 1)}{2}+K - 1$

    LDA全过程需要估计的参数总数为:$Kp+\frac{p(p + 1)}{2}+K - 1$

    所以,LDA没有QDA光滑,但是拥有更低的方差,这意味着模型有改善预测效果的潜力,但也需要权衡考虑:如果LDA假设$K$类有相同的方差是一个非常糟糕的假设,那么LDA会产生很大的偏差。一般而言,如果训练观测数据量相对较少,LDA是一个比QDA更好的决策,降低模型的方差很有必要。相反,如果训练集非常大,则更倾向于使用QDA。图4 - 9展示了不同情况下LDA和QDA的决策边界情况。

    这张图展示了两类分类问题中贝叶斯(紫色虚线)、线性判别分析(LDA,黑色点线)和二次判别分析(QDA,绿色实线)的决策边界,具体内容如下:

    左图 - 设定条件为$\Sigma_1 = \Sigma_2$,即两类数据的协方差矩阵相同。

    - 阴影部分表示QDA的决策规则。由于贝叶斯决策边界是线性的,相比QDA,LDA能更准确地对其进行近似。也就是说,在这种协方差矩阵相等且决策边界线性的情况下,LDA的表现更贴近贝叶斯分类器的决策边界。

    右图 - 条件为 $\Sigma_1 \neq \Sigma_2$,即两类数据的协方差矩阵不同。

    - 除了协方差矩阵不同外,其他设定与左图类似。此时贝叶斯决策边界是非线性的,相比LDA,QDA能更准确地对其进行近似。即当决策边界呈现非线性时,QDA在拟合贝叶斯决策边界方面表现更优。 图中通过对比不同协方差矩阵条件下LDA和QDA对贝叶斯决策边界的近似情况,直观地展示了两种方法在不同场景下的适用性。

    4.3  分类方法的比较

    当类数为 2 且只有一个预测变量时,逻辑斯谛回归和 LDA 都产生线性决策边界,两者紧密相连但在拟合过程和参数估计方式上有差异。若 LDA 的高斯分布假设近似成立,LDA 结果可能更好;若该假设不满足,逻辑斯谛回归效果更优。

    当真实决策边界是线性时,LDA 和逻辑斯谛回归较优;当边界为一般非线性时,QDA 效果较好;对于更复杂的非线性边界,需谨慎选择非参数方法(如 KNN)的光滑水平,合适的光滑参数能使其表现良好,否则结果可能糟糕。

    KNN 与逻辑斯谛回归、LDA 原理不同。当决策边界高度非线性时,KNN 表现优于 LDA 和逻辑斯谛回归;但其无法明确重要的预测变量,不能给出系数估计表。

    QDA 是介于非参数 KNN 和线性的 LDA、逻辑斯谛回归之间的折中方法。因其能得到二次决策边界,应用范围比线性方法更广。在固定训练数据量问题上,通常比 KNN 效果好,因为它对决策边界形状做了假设。

    第五章 重抽样方法(resampling methods)

    用于评价一个模型表现(model assessment)和为这种方法选择合适的光滑度(model selection)

    5.1 交叉验证法 (cross-validation)

    在统计学习中,测试错误率指用一种统计学习方法在新观测上预测产生的平均误差,训练错误率是在训练观测上计算的误差。通常训练错误率会严重低估测试错误率,虽可直接用测试数据集计算测试错误率,但也有很多间接估计方法,这些方法将在后续章节讨论。本节聚焦一种在拟合过程中保留部分训练观测子集,进而估计测试错误率的方法。

    验证集方法(validation set approach)

    • 原理:

    为估计某种统计学习方法在观测集上产生的测试误差,将观测集随机分为训练集和验证集。在训练集上拟合模型,再用该模型预测验证集观测的响应变量,最后用验证集错误率(对于定量响应变量,常用均方误差衡量)估计测试错误率。

    • 缺陷:

    ①测试错误率的估计波动大,取决于训练集和验证集包含的具体观测;

    ②只有部分观测用于拟合模型,训练观测越少,统计方法表现越差,可能高估整体测试错误率。

    留一交叉验证法(LOOCV)

    • 原理:

    与验证集方法类似,LOOCV每次留一个观测(x_i, y_i)作为验证集,其余n - 1个观测作为训练集。

    在训练集上拟合统计学习方法,对验证集观测进行预测,计算均方误差MSE_i=(y_i - \hat{y}_i)^2

    重复该步骤n次得到n个均方误差,测试均方误差的LOOCV估计为CV_{(n)}=\frac{1}{n}\sum_{i = 1}^{n}MSE_i

    • 优点:

    偏差较小,因为训练集几乎包含整个数据集(n - 1个观测);

    结果无随机性,多次运用结果相同。

    • 缺点:

    计算量大,需拟合n次模型。

    当用最小二乘法拟合线性或多项式回归模型时,可使用公式CV_{(n)}=\frac{1}{n}\sum_{i = 1}^{n}\frac{(y_i - \hat{y}_i)^2}{(1 - h_i)}

    其中\hat{y}_i为用原始最小二乘拟合的第i个拟合值,h_i为杠杆值 。但该公式不适用于所有问题。

    k 折交叉验证法

    • 原理:

    将观测集随机分为k个大小基本一致的组(折)。

    第一折作为验证集,其余k - 1折作为训练集拟合模型,由保留折的观测计算均方误差MSE_1

    重复此步骤k次,每次取不同的组作为验证集 ,得到k个测试误差的估计MSE_1, MSE_2, \cdots, MSE_kk折CV估计由这些值求平均得到,即CV_{(k)}=\frac{1}{k}\sum_{i = 1}^{k}MSE_i

    • 特点:

    k = n时,LOOCV是k折CV的特例。

    实际中常用k = 5k = 10,此时计算量比LOOCV小,且涉及偏差 - 方差权衡问题,其估计存在一定波动性,但波动通常小于验证集方法。

    • 偏差 - 方差权衡:

    LOOCV偏差小但方差大,k折CV(k < n)计算量小,虽有一定偏差,但方差相对LOOCV小。

    选择k时需权衡偏差和方差,经验上k = 5k = 10能使测试错误率估计的偏差和方差不过大。

    交叉验证法在分类问题中的应用

    原理:

    与回归问题类似,用交叉验证法估计分类模型的测试错误率,不同在于用分类错误数而非均方误差作为衡量指标。公式为CV_{(n)}=\frac{1}{n}\sum_{i = 1}^{n}Err_i,其中Err_i = I(y_i \neq \hat{y}_i)k折CV错误率和验证集错误率也类似定义。

    5.2 自助法 (bootstrap)

    自助法(bootstrap)的基本思想是基于对现有样本数据进行有放回的重复抽样,模拟出多个与原始样本规模相同的新样本集(自助样本),以此来评估统计估计量的不确定性等性质。

    在实际统计分析中,常常需要对某个总体参数进行估计,比如均值、方差、回归系数等 。通常的做法是从总体中抽取一个样本,利用样本数据计算出相应的估计量。然而,估计量本身存在一定的不确定性,比如不同的样本可能会得到不同的估计值。自助法的目的就是通过对样本数据的重新采样,来评估这种不确定性,例如估计估计量的标准误差、置信区间等。

    自助法(bootstrap)是一种广泛应用且功能强大的统计工具,可用于衡量指定估计量或统计学习方法中的不确定因素,用于评估估计量性质

    例如,它能用来估计线性回归拟合模型系数的标准误差。

    虽然在线性回归场景中,许多统计软件(如R)能自动输出标准误差结果,使自助法的优势不那么明显,但在其他一些需要衡量波动性指标却难以由软件自动输出结果的情况下,自助法的强大特性就能体现出来。

    基本步骤

    以从一个包含n个观测值的原始数据集Z估计某个参数\theta为例:

    • 有放回抽样生成自助样本:

    从原始数据集Z中有放回地随机抽取n个观测值,组成一个新的数据集,称为自助样本Z^{*} 。由于是有放回抽样,同一个观测值有可能在自助样本中出现多次,也有可能一次都不出现。

    • 计算估计量:

    针对每个自助样本Z^{*},使用与在原始数据集Z上相同的方法计算参数\theta的估计值\hat{\theta}^{*}

    • 重复抽样与计算:

    将上述两个步骤重复B次(B是一个较大的数,比如B = 1000B = 5000等),这样就得到了B个自助样本Z^{*1}, Z^{*2}, \cdots, Z^{*B}以及相应的B个估计值\hat{\theta}^{*1}, \hat{\theta}^{*2}, \cdots, \hat{\theta}^{*B}

    评估估计量性质

    • 估计标准误差:

    可以利用这B个自助估计值来估计原始估计量\hat{\theta}的标准误差。例如,使用公式SE_{B}(\hat{\theta}) = \sqrt{\frac{1}{B - 1}\sum_{r = 1}^{B}(\hat{\theta}^{*r} - \frac{1}{B}\sum_{r = 1}^{B}\hat{\theta}^{*r})^2}来计算,这个值可以作为原始数据集中所估计的\(\hat{\theta}\)的标准误差的估计 。标准误差反映了估计量的离散程度,即估计值的波动情况。

    • 构建置信区间:

    一种常见的构建置信区间的方法是百分位数法。将B个自助估计值\hat{\theta}^{*1}, \hat{\theta}^{*2}, \cdots, \hat{\theta}^{*B}从小到大排序,取第2.5百分位数和第97.5百分位数的值,就可以得到\theta95\%置信区间的下限和上限 。这表示我们有95\%的把握认为真实的参数\theta落在这个区间内。

    原理本质与优势

    • 本质:

    自助法的本质是基于对原始样本的模拟抽样,通过模拟多次抽样的过程,来近似估计量在重复抽样情况下的分布。它不依赖于总体分布的具体形式(非参数方法),只利用手头已有的样本数据,就能对估计量的性质进行评估。

    • 优势:

    相比传统的理论方法(如基于正态分布假设的方法),自助法更加灵活,适用于各种复杂的统计估计问题,无论是简单的均值估计,还是复杂的回归模型、分类模型中的参数估计等。而且在总体分布未知或者难以用理论公式推导估计量性质时,自助法能提供一种有效的解决途径 。

    第六章 线性模型选择与正则化 (Linear Model Selection and Regularization)

    标准线性回归模型

    标准线性回归模型表示为Y = \beta_0 + \beta_1X_1 + \cdots + \beta_pX_p + \varepsilon

    用于描述响应变量Y和一系列预测变量X_1,X_2,\cdots,X_p之间的线性关系,最小二乘法是拟合该模型的经典方法。

    后续章节会介绍基于简单线性模型的扩展形式及其估计方法,以及非线性模型 。尽管非线性模型应用广泛,但线性模型在解决实际问题时,仍具备独特的推断能力。

    采用其他拟合方法的原因

    • 预测准确率:

    当响应变量和预测变量的真实关系近似线性,且观测个数n远大于变量个数p时,最小二乘估计的偏差较低,方差也较低,在测试样本集上表现较好。

    然而,若不满足n远大于p的条件,最小二乘估计结果变异大,易过拟合,在测试样本集上表现差。

    p>n时,最小二乘方法得到的系数估计结果不唯一方差无穷大,无法使用

    通过限制、约束或缩减待估系数,可在牺牲偏差的情况下减小估计量方差,提高模型在测试样本集上的预测准确率。

    • 模型解释力:

    在多元回归模型中,常存在与响应变量无线性关系的预测变量,这些变量增加了模型复杂性却无关紧要。将这些无关变量的系数设为0可提升模型解释力,但用最小二乘法很难将系数缩减至零 。本章将介绍能自动进行特征选择或变量选择的方法,以处理多元回归模型中的无关变量

    三类重要方法

    • 子集选择:

    p个预测变量中挑选出与响应变量相关的变量形成子集,再对缩减后的变量集合使用最小二乘法。

    • 压缩估计:

    对全部p个预测变量进行模型拟合,与最小二乘法相比,该方法将估计系数往零的方向压缩,通过系数缩减(正则化)减少方差,部分回归系数可被缩减为零,实现变量选择。

    • 降维方法:

    p个预测变量投影M维子空间(M < p),通过计算p个变量的$M$种不同线性组合或投影来实现,再将这M个不同的投影作为预测变量,使用最小二乘法拟合线性回归模型 。 本章将详细介绍上述方法及其优缺点,虽然是对第3章线性回归模型方法的拓展和改进,但涉及的概念也适用于其他方法 。

    6.1 子集选择

    旨在筛选预测变量子集,包含最优子集选择逐步模型选择(向前逐步选择、向后逐步选择、混合方法)等方法。

    最优子集选择

    基本原理:

    p个预测变量的所有可能组合,分别使用最小二乘回归进行拟合。

    比如,含一个预测变量的模型有p个;

    含两个预测变量的模型有C_{p}^{2}=\frac{p(p - 1)}{2}个,依此类推。

    最终从所有可能模型里选取最优的一个。

    选择过程:

    1.  把不含预测变量的零模型记为M_0,用于估计各观测的样本均值。

    2.  对于k = 1,2,\cdots,p

    拟合C_{p}^{k}个包含k个预测变量的模型。

    从这些模型中挑选残差平方和(RSS)最小或R^{2}最大的作为最优模型,记为M_k。 

    3.  依据交叉验证预测误差C_p(赤池信息准则相关)、BIC(贝叶斯信息准则)或者调整R^{2} ,从M_0,M_1,\cdots,M_p这些模型里选出一个最优模型。

    存在问题:

    随着纳入模型的特征数目增加,p + 1个模型的RSS单调下降,R^{2}单调增加。

    仅依据RSS和R^{2}选模型,最终会选到包含所有变量的模型。

    然而,低RSS和高R^{2}仅表明训练误差低,我们想要的是测试误差低的模型,所以需按步骤3中的方法选模型。

    该方法计算效率低,当变量数p增大,可选模型数量呈指数增长(p个变量有2^p个可能子集),p较大时计算不可行,虽有提升运算效率的算法(如分支定界方法),但p大时仍有缺陷,且只对最小二乘线性回归模型有效。

    逐步选择

    向前逐步选择

    原理及优势:

    相比最优子集选择,它运算效率更高,搜索空间更小。从不含任何预测变量的零模型M_0出发,每次添加能最大限度提升模型效果的变量,直到所有预测变量都在模型中。

    选择过程:

    1. 记不含预测变量的零模型为M_0

    2. 对于k = 0,1,2,\cdots,p - 1

    - 从p - k个模型中选择(每个模型在M_k基础上增加一个变量)。

    - 挑选p - k个模型中RSS最小或R^{2}最高的作为最优模型,记为M_{k + 1}

    3. 根据交叉验证预测误差、C_pBIC或者调整R^{2} ,从M_0,M_1,\cdots,M_p中选出一个最优模型。

    计算量对比:

    最优子集选择要拟合2^p个模型,而向前逐步选择只需拟合1+\sum_{k = 0}^{p - 1}(p - k)=1 + \frac{p(p + 1)}{2}个模型。例如p = 20时,最优子集选择需拟合1048567个模型,向前逐步选择只需拟合211个模型。

    局限性:

    虽运算效率高,但不能保证找到所有2^p个模型中的最优模型。

    如在含三个变量的数据集中,单变量模型只含X_1,双变量最优模型包含X_2X_3 ,向前逐步选择因M_1X_1,后续无法得到双变量最优模型。

    在高维数据(甚至n < p )情况下,仍可使用向前逐步选择方法建立M_0,\cdots,M_{p - 1}模型 。

    向后逐步选择

    原理及优势:

    与向前逐步选择类似,但以包含全部p个变量的全模型为起点,逐次删除对模型拟合结果最不利的变量。相比最优子集选择更高效。

    选择过程:

    1. 记包含全部p个预测变量的全模型为M_p

    2. 对于k = p,p - 1,\cdots,1

    - 在k个模型中选择(在M_k基础上减少一个变量,使模型只含k - 1个变量)。

    - 挑选k个模型中RSS最小或R^{2}最高的作为最优模型,记为M_{k - 1}

    3. 根据交叉验证预测误差、C_pBIC或者调整R^{2} ,从M_0,M_1,\cdots,M_p中选出一个最优模型。

    适用条件与局限性:

    向后逐步选择需满足样本量n大于变量个数p(保证全模型可被拟合),否则无法使用。同样,该方法也不能保证得到的模型是最优的 。

    混合方法

    将最优子集选择、向前逐步选择和向后逐步选择方法结合。

    与向前逐步选择类似,逐次将变量加入模型,同时移除不能提升模型拟合效果的变量,在找到最优拟合效果模型的同时,保留了向前和向后逐步选择在计算效率上的优势。

    选择最优模型

    不能仅用RSS和R^{2}的原因:

    包含所有预测变量的模型总是有最小的RSS和最大的R^{2} ,但训练误差低不代表测试误差低,所以RSS和R^{2}不适合对包含不同个数预测变量的模型进行选择。

    估计测试误差的方法

    调整训练误差:根据模型规模对训练误差进行调整,间接估计测试误差。

    直接估计:采用第5章的验证集方法交叉验证法,直接估计测试误差。

    几种常用准则和统计量

    C_p统计量:

    用最小二乘法拟合包含d个预测变量的模型时,

    C_p=\frac{1}{n}(RSS + 2d\hat{\sigma}^{2})

    ,其中\hat{\sigma}^{2}是线性回归公式中各响应变量观测误差的方差\epsilon的估计值。

    C_p在训练集RSS基础上增加2d\hat{\sigma}^{2}项,用于调整训练误差对测试误差的低估

    测试误差低的模型C_p值也低,可通过选C_p最低的模型作为最优模型。

    AIC准则:

    若线性回归公式的模型误差项服从高斯分布,极大似然估计和最小二乘估计等价时,AIC由

    AIC=\frac{1}{\hat{\sigma}^{2}}(RSS + 2d\hat{\sigma}^{2})

    给出 ,对于最小二乘模型,C_p和AIC成比例。

    BIC准则:

    从贝叶斯观点衍生,对于包含d个预测变量的最小二乘模型,

    BIC=\frac{1}{n}(RSS+\log(n)d\hat{\sigma}^{2})

    ,测试误差低的模型BIC值低,通常选BIC最低的模型作为最优模型。BIC相比C_p ,对包含多个变量的模型惩罚更重,得到的模型规模更小

    调整R^{2}统计量:

    调整R^{2}=1-\frac{RSS/(n - d - 1)}{TSS/(n - 1)}

    ,其中TSS = \sum(y_i-\bar{y})^2是响应变量的总平方和。R^{2}随变量个数增加而增加,调整R^{2}对纳入不必要变量的模型进行惩罚,其值越大,模型测试误差越低 。

    验证与交叉验证:

    作为上述方法的补充,用第5章的验证集方法和交叉验证法直接估计测试误差。

    C_pAICBIC调整R^{2}相比,它们能给出测试误差的直接估计,适用范围更广,即便在难确定模型自由度,或难以估计误差方差\sigma^{2}的情况下也能使用。过去因计算问题,AIC、BIC、C_p与调整R^{2}更常用,现在计算机速度快,交叉验证法在多模型筛选中更具吸引力。

    6.2 压缩估计方法

    6.1节的子集选择方法是用最小二乘法拟合包含预测变量子集的线性模型,而本节的压缩估计方法是通过对系数进行约束或惩罚,对包含p个预测变量的模型进行拟合。

    这种方法能在一定程度上提升拟合效果,其原理是压缩系数估计值,减少估计量方差。常用的方法有岭回归和lasso

    岭回归

    估计原理:

    第3章中最小二乘回归通过最小化RSS = \sum_{i = 1}^{n}(y_i - \beta_0 - \sum_{j = 1}^{p}\beta_jx_{ij})^2来估计\beta_0,\beta_1,\cdots,\beta_p

    岭回归的系数估计通过最小化

    \sum_{i = 1}^{n}(y_i - \beta_0 - \sum_{j = 1}^{p}\beta_jx_{ij})^2+\lambda\sum_{j = 1}^{p}\beta_j^2 = RSS+\lambda\sum_{j = 1}^{p}\beta_j^2

    得到,其中\lambda\geq0是调节参数,需单独确定 。

    该式是对RSS和惩罚项\lambda\sum_{j = 1}^{p}\beta_j^2(压缩惩罚项)的权衡,当\beta_1,\cdots,\beta_p接近零时,压缩惩罚项较小,使\beta_j估计值往零方向压缩。

    调节参数的影响:

    \lambda = 0时,岭回归系数估计与最小二乘相同;

    \lambda增大,压缩惩罚项影响力增加,岭回归系数估计值趋近于零 。

    岭回归系数估计结果\hat{\beta}_\lambda^R\lambda变化而变化,合适\lambda值的选择很重要。

    数据标准化:

    最小二乘系数估计是尺度不变的,而岭回归系数估计值会因预测变量尺度变化而改变。

    因此使用岭回归前,需先对数据进行标准化

    \tilde{x}_{ij}=\frac{x_{ij}}{\sqrt{\frac{1}{n}\sum_{i = 1}^{n}(x_{ij}-\bar{x}_j)^2}}

    使所有变量具有同一尺度,这样拟合将不受变量测量尺度的影响。

    岭回归的优势:

    与最小二乘相比,岭回归综合权衡了误差与方差

    随着\lambda增加,拟合结果光滑度降低,方差降低,偏差增加

    当响应变量和预测变量关系近似线性,且最小二乘估计方差较大(如变量个数p和观测个数n相差不大,或p>n时最小二乘估计无唯一解)时,岭回归能通过适度增加偏差来大幅降低方差,从而获得较好的模型效果。

    此外,相比需搜索2^p个模型的最优子集选择方法,岭回归运算上具有优势,对给定的\lambda,全局搜索方法运算上可行 。

    lasso

    与岭回归的区别:

    岭回归的局限在于,最优子集选择等方法会选出变量子集建模,而岭回归最终模型会包含全部p个变量,其惩罚项\lambda\sum_{j = 1}^{p}\beta_j^2只能将系数往零方向缩减,不能将任何一个变量的系数确切压缩至零(除非\lambda = \infty),变量较多时不利于模型解释。

    lasso通过求解

    \sum_{i = 1}^{n}(y_i - \beta_0 - \sum_{j = 1}^{p}\beta_jx_{ij})^2+\lambda\sum_{j = 1}^{p}|\beta_j| = RSS+\lambda\sum_{j = 1}^{p}|\beta_j|

    最小值得到系数\hat{\beta}_\lambda,与岭回归拟合公式相似,区别在于lasso采用

    L1惩罚项

    \lambda\sum_{j = 1}^{p}|\beta_j|

    而非L2惩罚项

    \lambda\sum_{j = 1}^{p}\beta_j^2 

    变量选择特性:

    和岭回归一样,lasso也将系数估计值往0方向缩减。

    当调节参数\lambda足够大时,L1惩罚项能将某些系数的估计值强制设定为0,从而实现变量选择,得到的模型更易解释,类似最优子集选择方法 。

    几何解释:

    lasso和岭回归的系数估计分别等价于求解

    \min_{\beta}\{\sum_{i = 1}^{n}(y_i - \beta_0 - \sum_{j = 1}^{p}\beta_jx_{ij})^2\}

    同时满足\sum_{j = 1}^{p}|\beta_j|\leq s(lasso)和\sum_{j = 1}^{p}\beta_j^2\leq s(岭回归) 。

    从几何角度看,以二维为例,lasso的限制条件区域是菱形,岭回归是圆形。

    在高维情况下,随着维度增加,岭回归的限制条件区域变成超球面,lasso变成多面体。

    由于lasso的多面体存在尖角,在与RSS等高线相交时,更易使某些系数为零,从而实现变量选择;

    而岭回归的限制条件区域没有尖角,系数不易为零 。

    性能对比:

    一般情况下,当一小部分预测变量是真实有效的,而其他预测变量系数非常小或者等于零时,lasso表现更出色;

    当响应变量是很多预测变量的函数且这些变量系数大致相等时,岭回归较为出色。

    与最小二乘相比,当最小二乘估计出现较大方差时,lasso以牺牲偏差为代价降低方差,且能进行变量选择,得到的模型更易解释。

    岭回归和lasso都有高效算法,其系数估计运算量与最小二乘拟合运算量基本一致

    简单例子说明:

    n = pX是对角线为1、非对角线位置为零的对角矩阵且无截距回归的特殊情况下,最小二乘解为\hat{\beta}_j = y_j

    岭回归是寻找\beta_1,\cdots,\beta_p ,使\sum_{j = 1}^{p}(y_j - \beta_j)^2+\lambda\sum_{j = 1}^{p}\beta_j^2达到最小,

    其估计形式为\hat{\beta}_j^R = y_j/(1 + \lambda)

    lasso是寻找使\sum_{j = 1}^{p}(y_j - \beta_j)^2+\lambda\sum_{j = 1}^{p}|\beta_j|达到最小的系数,

    其估计形式为

    \hat{\beta}_j^L =\begin{cases}y_j - \frac{\lambda}{2}, & y_j > \frac{\lambda}{2} \\ y_j + \frac{\lambda}{2}, & y_j < -\frac{\lambda}{2} \\ 0, & |y_j|\leq\frac{\lambda}{2}\end{cases}

    可见岭回归中每个最小二乘系数以相同比例压缩,而lasso中绝对值小于\lambda/2的系数被完全压缩至零,这种压缩方式被称为软阈值(soft - thresholding),解释了lasso能做变量选择的原因 。 

    贝叶斯解释:

    从贝叶斯角度,岭回归和lasso回归假设回归系数向量\beta具有先验(prior)分布p(\beta)=(\beta_0,\beta_1,\cdots,\beta_p)^T 。若残差独立且服从正态分布,当\beta的先验分布是高斯分布,均值为零,标准差为\lambda时,\beta后验形式最可能为岭回归的结果;当\beta的先验分布是双指数(拉普拉斯)分布,均值为零,尺度参数为\lambda时,其\beta后验形式最可能是lasso的结果。lasso的先验分布在零处存在尖峰,倾向于得到许多系数为零的分布,而岭回归假设系数关于零随机分布 。

    选择调节参数

    和子集选择方法需要确定最优模型一样,岭回归和lasso需要选择合适的调节参数\lambda(或公式中的s)。

    常用的方法是交叉验证,即选择一系列\lambda的值,计算每个\lambda对应的交叉验证误差,然后选择使交叉验证误差最小的参数值,最后用所有可用变量和选择的调节参数对模型进行重新拟合 。

    6.3 降维方法

    包括主成分回归偏最小二乘

    此前讨论的控制方差的方法,一种是选取原变量集的子集,另一种是压缩变量系数至零,这些都是基于原始预测变量X_1,\cdots,X_p。而本节探讨新方法,先将预测变量转换,再用转换后的变量拟合最小二乘模型,即降维(dimensionality reduction)方法。

    Z_1,Z_2,\cdots,Z_M表示M个原始预测变量的线性组合M < p,共有p个原始变量),即Z_m=\sum_{j = 1}^{p}\phi_{jm}X_j。然后用最小二乘拟合线性回归模型y_i = \theta_0+\sum_{m = 1}^{M}\theta_mz_{im}+\varepsilon_i,其中回归系数是\theta_0,\theta_1,\cdots,\theta_M 。如果系数\phi_{1m},\phi_{2m},\cdots,\phi_{pm}选择得当,降维方法效果通常比直接用最小二乘回归更好。降维是将估计p + 1个系数\beta_0,\beta_1,\cdots,\beta_p的问题简化为估计M + 1个系数\theta_0,\theta_1,\cdots,\theta_M的问题,维度从p + 1降至M + 1

    从公式推导可知,降维起到约束系数\beta_j的作用,当M < p时能降低拟合系数的方差 。选择Z_1,Z_2,\cdots,Z_M(即选择\phi_{jm} )有多种方法,这里介绍主成分回归和偏最小二乘。

    主成分回归

    主成分分析(PCA)原理:

    主成分分析是从多个变量中得到低维变量的有效方法。对于n\times p维数据矩阵XPCA是一种降维技术。在第一主成分方向上,数据变化最大。

    例如在100个城市的人口规模(pop)和广告支出(ad)数据中,第一主成分方向是数据波动性最大的方向,投影到该方向方差最大,投影到其他方向方差更小。

    第一主成分Z_1可表示为Z_1 = 0.839\times(pop - \overline{pop})+0.544\times(ad - \overline{ad}) ,其中系数是根据使Var(\phi_{11}\times(pop - \overline{pop})+\phi_{21}\times(ad - \overline{ad}))达到最大,且满足\phi_{11}^2+\phi_{21}^2 = 1的条件确定的 。主成分得分是样本点在主成分方向上与零点的距离,反映了数据在该主成分上的特征 。

    通常可构造p个不同主成分,第二主成分Z_2是与Z_1无关的原始变量线性组合中方差最大的,且Z_1Z_2零相关等价于二者方向垂直或正交 。

    主成分回归(PCR)步骤与效果:

    主成分回归是构造前M个主成分Z_1,\cdots,Z_M ,并以它们作为预测变量,用最小二乘拟合线性回归模型。

    其核心思想是少数主成分足以解释大部分数据波动及数据与响应变量的关系

    但假设Y的方向就是X_1,\cdots,X_p变动最剧烈的方向不一定成立,所以常需合理近似 。

    在模拟数据集上的应用表明,当选择合适的主成分个数M时,主成分回归能明显提升最小二乘的拟合效果,但如果数据生成机制复杂,需要很多主成分才能对响应变量充分建模时,主成分回归效果可能较差 。

    主成分回归中主成分数量M一般通过交叉验证确定。

    应用主成分回归前,通常要对每个变量进行标准化处理,保证变量在相同尺度,避免方差大的变量主导主成分

    从本质上看,主成分分析更接近岭回归,主成分回归和岭回归也极其相似,甚至可认为岭回归是连续型的主成分回归 。

    偏最小二乘

    与主成分回归的区别:

    主成分回归的主成分方向是通过无指导方法得到,响应变量Y对主成分的构造无帮助,可能导致所选主成分方向虽能很好解释预测变量,但不一定能很好解释响应变量 。

    偏最小二乘(partial least squares,PLS)有指导的主成分回归替代方法

    偏最小二乘原理与步骤:

    同主成分回归一样,偏最小二乘也是将原始变量的线性组合Z_1,\cdots,Z_M作为新变量集,用它们拟合最小二乘模型。

    不同的是,偏最小二乘利用响应变量Y的信息筛选新变量,不仅能很好地近似原始变量,还与响应变量相关 。

    计算第一个偏最小二乘方向Z_1时,将公式Z_m=\sum_{j = 1}^{p}\phi_{jm}X_j中的系数\phi_{jm}设定为YX_j简单线性回归的系数(该系数同YX_j的相关系数成比例),使Z_1最大权重赋给与响应变量相关性最强的变量 。

    确定第二个PLS方向时,先用Z_1中的每个变量对Z_1做回归,取其残差调整每个变量,再利用这些正交化后的数据计算Z_2,重复此迭代过程确定多个PLS成分Z_1,\cdots,Z_M ,最后用Z_1,\cdots,Z_M拟合线性最小二乘模型来预测Y

    应用注意事项:

    同主成分回归一样,偏最小二乘回归前应对预测变量和响应变量标准化处理,其方向个数M一般通过交叉验证选择 。

    偏最小二乘在化学统计学领域应用广泛,但在实际中,其表现通常没有岭回归或主成分回归好,虽然它可以减小偏差,但可能同时增大方差 。

    6.4 高维问题

    这部分内容聚焦于高维问题,详细介绍了高维数据的概念、高维度下出现的问题、高维数据的回归方法以及高维数据分析结果的解释,具体如下:

    高维数据

    低维与高维的界定:

    大多数传统统计方法适用于低维情况,即观测数n 远大于特征数p

    例如,用年龄、性别、身体和体质指数(BMI)预测血压的模型中, n\gg p ,这属于低维问题。然而,在过去20年,新技术改变了数据收集方式,使得特征数p 很大,而观测数n常因成本、抽样能力等受限。当特征数比观测数大时,数据被称为高维数据。同时,在有指导学习中,讨论内容也适用于p略小于n 的情况 。

    高维数据示例:

    - 预测血压时,加入约50万个单核苷酸多态性(SNPs)指标,此时 n\approx200p\approx500000

    - 市场分析师构建“词袋”模型,根据用户搜索词作为特征研究网络购物模式,假设n\approx1000p非常大 。

    高维度下出现的问题

    传统方法的失效:

    p>n 时,传统的线性最小二乘回归等方法不再适用。以最小二乘回归为例,当变量个数p大于或等于观测数n时,最小二乘无法实施。

    因为此时不管特征变量与响应变量是否相关,最小二乘估计的系数都能很好拟合数据,且模型残差为零,极易导致过拟合问题。

    高维数据的回归

    适用方法:

    本章介绍的向前逐步选择、岭回归、lasso和主成分回归等方法,在高维回归中作用显著,它们能有效避免最小二乘法的过拟合问题 。

    lasso示例:

    图6 - 24展示了lasso在简单模拟数据中的表现。特征变量p取20、50或2000个,与输出相关,用n = 100个训练观测进行lasso回归并在独立测试数据集上得到均方误差

    使用lasso对具有n = 100个观测的数据进行建模,p(特征的个数)取三个不同的值。p个特征中只有20个与响应变量有关。箱线图的纵轴表示使用公式(6.7)中三个不同调节参数\lambda时的测试均方误差。为了方便解释,横轴表示的是自由度而不是\lambda的取值;对lasso来讲,自由度就是非零系数估计的个数。当p = 20时,在最小数量的正则化的情况下得到最小的测试均方误差。当p = 50时,我们在较大数量正则化的情况下得到最小的测试均方误差。当p = 2000时,不管正则化数量的大小,lasso的表现都很差,因为事实上2000个特征变量中只有20个真正与输出变量相关。

    结果表明:

    - 正则或压缩在高维问题中至关重要。

    - 合适的调节参数对良好预测很关键。

    - 测试误差随特征或预测变量个数增加而增大,除非新增特征与响应变量确实相关 。这种现象被称为维数灾难即过多不相关特征会使模型过拟合,降低拟合质量;而相关特征能提升模型质量,但拟合系数时方差降低效果可能不明显

    高维数据分析结果的解释 

    模型结果解释需谨慎:

    使用lasso、岭回归等拟合高维数据时,解释模型结果要非常谨慎。

    高维情况下多重共线性极端,变量间可能存在复杂线性组合,难以准确确定哪个变量真正与输出变量相关,无法确定最优系数。

    例如用50万个SNPs预测血压,向前逐步选择可能得到不同但都能预测血压的变量集合,虽不影响模型价值,但不能夸大其结果 。

    误差和拟合效果的验证:

    解释高维数据拟合模型的误差和拟合效果时要特别注意。

    p>n时易得到残差为零却无用的模型,不能仅用训练数据的误差平方和、p 值、R^{2}等衡量模型拟合效果。应在独立测试集上进行验证或交叉验证,如独立测试集的均方误差或R^{2}才是对模型拟合效果的有效度量 。

    第七章 非线性模型(Non-Linear Modeling)

    这部分内容主要介绍了对线性模型的扩展,以处理响应变量和预测变量之间的非线性关系,具体涵盖多项式回归、阶梯函数、回归样条、光滑样条、局部回归以及广义加性模型等方法,同时对多项式回归进行了详细阐述,具体如下:

    线性模型扩展概述

    本书此前多集中于线性模型,其描述和实现简便,解释性与推断理论成熟,但标准线性回归模型在预测上有局限。

    第6章介绍的一些模型虽基于线性假设,通过降低模型复杂度和估计方差来改进,但模型本质仍为线性。

    本章探讨在保持模型解释性的前提下,对线性模型进行扩展,以更好地拟合数据,包括多项式回归、阶梯函数、回归样条、光滑样条、局部回归及广义加性模型等。

    线性模型扩展方法

    多项式回归:将预测变量的幂作为新的预测变量来替代原始变量,以此表达数据的非线性关系,如三次回归模型有预测变量XX^2X^3

    阶梯函数:把某个预测变量的取值空间切割成K个不同区域,每个区域对应一个新的定性变量,通过分段拟合来描述非线性关系 。

    回归样条:先将X的取值范围切割成K个区域,在每个区域分别拟合多项式函数,且对多项式有一定限制以保证区域边界处光滑连接,是多项式回归和阶梯拟合方法的推广 。

    光滑样条:与回归样条类似,但生成机理不同,通常通过最小化带光滑惩罚项的残差平方和得到结果 。

    局部回归:与样条结果相近,区别在于其区域之间可重叠,能保证局部回归整体光滑 。

    广义加性模型:将上述模型推广到多个预测变量的情形 。

    7.1 多项式回归

    基本原理:

    为体现响应变量和预测变量间的非线性关系,

    把标准线性模型y_i = \beta_0+\beta_1x_i+\epsilon_i

    换成多项式函数y_i = \beta_0+\beta_1x_i+\beta_2x_i^2+\beta_3x_i^3+\cdots+\beta_dx_i^d+\epsilon_i

    该方法称为多项式回归,用最小二乘回归可求解系数。

    选择多项式阶数d时不宜过大,一般不超3或4,否则曲线在边界处形状会异常 。

    实例分析:

    以Wage数据集为例,图7 - 1左图展示了wage关于age的散点图及四阶多项式回归拟合结果(蓝色实线)。通过观察age在18岁到80岁间62个观测值的函数拟合结果,能更好理解二者关系。

    对于给定的x_0,拟合值\hat{f}(x_0)=\hat{\beta}_0+\hat{\beta}_0x_0+\hat{\beta}_2x_0^2+\hat{\beta}_3x_0^3+\hat{\beta}_4x_0^4。拟合值的方差Var(\hat{f}(x_0))可通过最小二乘法得到的系数方差估计和协方差计算(若\hat{C}\hat{\beta}_i5\times5协方差矩阵,且\ell_0^T=(1,x_0,x_0^2,x_0^3,x_0^4),那么Var(\hat{f}(x_0))=\ell_0^T\hat{C}\ell_0),标准误差是方差平方根,据此可画出拟合值曲线及两倍标准误差曲线 。

    逻辑斯谛回归应用:

    从图7 - 1可看出,wage数据来自两个总体(高收入组和低收入组)。

    将wage视为二元变量,以age的多项式函数作为预测变量进行逻辑斯谛回归,可预测二元响应变量,公式为

    Pr(y_i > 250|x_i)=\frac{\exp(\beta_0+\beta_1x_i+\beta_2x_i^2+\cdots+\beta_dx_i^d)}{1 + \exp(\beta_0+\beta_1x_i+\beta_2x_i^2+\cdots+\beta_dx_i^d)}

    图7 - 1右图展示了高收入人群和低收入人群的拟合概率及置信区间,高收入人群置信区间更宽 。

    7.2 阶梯函数

    基本原理:

    在处理响应变量和预测变量的关系时,若使用特征变量的多项式形式作为预测变量,会得到在X取值空间全局皆非线性的拟合函数。

    但有时不需要全局模型,此时可使用阶梯函数拟合。

    阶梯函数的做法是将X的取值范围划分成若干区间,在每个区间上拟合一个不同的常数,这相当于把连续变量转换为有序的分类变量

    构建方式:

    首先在X取值空间上创建分割点c_1c_2\cdotsc_K,然后构造K + 1个新变量。新变量通过示性函数I(\cdot)定义,具体如下:

    C_0(X)=I(X < c_1)

    C_1(X)=I(c_1\leq X < c_2)

    C_2(X)=I(c_2\leq X < c_3)

    \cdots

    C_{K - 1}(X)=I(c_{K - 1}\leq X < c_K)

    C_K(X)=I(c_K\leq X)

    其中示性函数I(\cdot)在条件成立时返回1,否则返回0

    由于X只能落在K + 1个区间中的某一个,所以对任意X的取值,C_0(X)+C_1(X)+\cdots+C_K(X)=1 。这样定义的变量也称为哑变量 。

    在模型中的应用:

    以这些新变量C_1(X)C_2(X)\cdotsC_K(X)作为预测变量,用最小二乘法拟合线性模型:y_i = \beta_0+\beta_1C_1(x_i)+\beta_2C_2(x_i)+\cdots+\beta_KC_K(x_i)+\varepsilon_i

    对于X的一个给定值,C_1(X)C_2(X)\cdotsC_K(X)中至多只有一项系数非零 。

    参数解释:

    在上述模型中,当c_j < X < c_{j + 1}时,预测值为\beta_0+\beta_j,此时\beta_j可被解释为当XX < c_1增至c_j < X < c_{j + 1}时响应变量的平均增量 。

    实际效果和局限性:

    -实际效果:以Wage数据集为例,用wage对age拟合逻辑斯谛回归,公式为

    Pr(y_i > 250|x_i)=\frac{\exp(\beta_0+\beta_1C_1(x_i)+\cdots+\beta_KC_K(x_i))}{1 + \exp(\beta_0+\beta_1C_1(x_i)+\cdots+\beta_KC_K(x_i))}

    并用于预测一个人是高收入者的概率。

    图7 - 2展示了拟合效果,左图是用阶梯函数拟合wage对age的最小二乘回归结果及95\%置信区间,右图是对二元变量wage > 250建立逻辑斯谛回归模型的后验概率及置信区间 。

    -局限性:如果预测变量本身没有明显的分割点,用分段固定值拟合不太恰当。

    例如在图7 - 2左侧,第一个区间内wage随age本应有的增长趋势未得到体现。不过,阶梯函数拟合在生物统计和生态学等领域较受欢迎,比如将每五年作为一个年龄组来定义预测区间 。

    7.3 基函数

    多项式回归和阶梯函数回归本质上是特殊的基函数方法。

    其核心是对变量X的函数或变换b_1(X)b_2(X)\cdotsb_K(X)进行建模,以模型y_i=\beta_0+\beta_1b_1(x_i)+\beta_2b_2(x_i)+\cdots+\beta_Kb_K(x_i)+\varepsilon_i 替代线性模型。

    其中基函数b_1(\cdot)b_2(\cdot)\cdotsb_K(\cdot)在建模前选定,例如多项式回归的基函数是b_j(x_i)=x_i^j,阶梯函数的基函数是b_j(x_i)=I(c_j\leq x_i<c_{j + 1})

    该模型可视为以b_1(x_i)b_2(x_i)\cdotsb_K(x_i)为预测变量的标准线性模型,能用最小二乘法估计未知回归系数,并且第3章线性模型的推断结果,如标准误、系数估计值、用于模型整体显著性检验的F统计量等都可应用。

    除多项式函数和阶梯函数外,还可用小波变换或傅立叶级数构建基函数,后续章节将探讨回归样条这类常用基函数 。

    7.4  回归样条

    回归样条是对前面多项式回归和阶梯函数回归方法的延伸与推广,通过以下方面进行介绍:

    分段多项式:

    X的不同区域拟合独立的低阶多项式函数,以此取代在X全部取值范围内拟合高阶多项式。

    比如,分段三次多项式函数在不同区域拟合y_i=\beta_0+\beta_1x_i+\beta_2x_i^2+\beta_3x_i^3+\varepsilon_i ,不同区域系数不同,系数变化的临界点称为结点(knot)。

    无结点的分段三次多项式就是标准三次多项式(d = 3时的y_i=\beta_0+\beta_1x_i+\beta_2x_i^2+\beta_3x_i^3+\varepsilon_i),有一个结点c的分段三次多项式为

    y_i=\begin{cases}\beta_{01}+\beta_{11}x_i+\beta_{21}x_i^2+\beta_{31}x_i^3+\varepsilon_i, & x_i < c \\ \beta_{02}+\beta_{12}x_i+\beta_{22}x_i^2+\beta_{32}x_i^3+\varepsilon_i, & x_i\geq c \end{cases}

    更多结点可得到更光滑的分段多项式,若X整个范围内有K个不同结点,最终会得到K + 1个不同的三次多项式,阶梯函数是阶数为0的分段多项式 。

    约束条件与样条:

    图7 - 3左上角的拟合效果不佳,因拟合曲线过度光滑。为修正,需添加约束条件确保拟合曲线连续,如在age = 50处不能有跳跃。

    图7 - 3右上角限定多项式在age = 50处连续,拟合效果更好。

    左下角图进一步添加约束,要求分段多项式在age = 50处一阶导数和二阶导数都连续,这样的三次样条释放了三个自由度,从8个自由度减为5个自由度。

    右下角:线性样条,同时限定其在age = 50 连续。

    一般情况下,与K个结点一同使用的三次样条会产生4 + K个自由度。

    d阶样条是分段d阶多项式,且在每个结点直到d-1阶导数都连续,线性样条是在每个区域内拟合直线,并在各结点处满足连续 。

    样条基函数:

    可用基函数模型表示回归样条,以简化拟合d阶分段多项式函数的过程。一个有K个结点的三次样条函数可表示为y_i=\beta_0+\beta_1b_1(x_i)+\beta_2b_2(x_i)+\cdots+\beta_{K + 3}b_{K + 3}(x_i)+\varepsilon_i

    并能用最小二乘法拟合。

    最直接表示三次样条的方法是以三次多项式的基(xx^2x^3)为基础,在每个结点添加截断幂基(truncated power basis)函数

    拟合有K个结点的三次样条,需对截断项和3+ K个预测项(XX^2X^3h(X,\xi_1)h(X,\xi_2)\cdotsh(X,\xi_K))运用最小二乘回归,共需估计K + 4个系数,即K + 4个自由度。但样条在预测变量范围外的区域方差较大,自然样条(natural spline)是附加边界约束的回归样条,在边界区域函数为线性,使边界处估计更稳定 。

    确定结点的个数和位置:

    拟合样条时,结点位置选择很关键。结点多会使曲线急剧变化,结点少会使曲线太平稳,需权衡。实践中,让结点在数据上均匀分布较有效,具体是先确定自由度,再依靠软件在数据的均匀分位数点上设置相应个数的结点。例如用带四个自由度的自然三次样条函数拟合Wage数据,自动选择25\%50\%75\%分位作为结点位置。

    确定结点个数或样条函数自由度的方法,一是尝试多个结点数,选拟合曲线“形状最理想”的;

    二是用交叉验证法,移除部分数据拟合样条函数,再用其预测移除数据,重复操作后计算整体交叉验证的均方误差,选择均方误差最小的样条函数对应的结点数 。

    与多项式回归作对比:

    回归样条通常比多项式回归效果好。多项式回归常需高次幂(如X^{15} )才能光滑拟合,而回归样条通过增加结点数且保持自由度固定来实现光滑,结果更稳定。样条函数可在函数变化快的区域设多个结点,稳定区域设较少结点保证光滑性。

    图7 - 7对比了Wage数据中自由度为15的自然三次样条和幂次为15的多项式函数,多项式函数在边界处估计不理想,自然三次样条对数据的拟合结果更合理 。

    7.5 光滑样条

    简介:

    回归样条是先设定结点,产生函数列,再用最小二乘法估计系数。

    而光滑样条是另一种产生样条的方式。为拟合光滑曲线,

    若只最小化残差平方和RSS = \sum_{i = 1}^{n}(y_i - g(x_i))^2,可能得到过拟合且过于光滑的结果。

    所以通过最小化\sum_{i = 1}^{n}(y_i - g(x_i))^2+\lambda\int g''(t)^2dt(式7.11) 来获得光滑样条,其中\lambda 是非负调节参数。

    式(7.11)中,\sum_{i = 1}^{n}(y_i - g(x_i))^2是损失函数,使g 更好拟合数据;

    \lambda\int g''(t)^2dt是惩罚项,对函数 g的波动性进行惩罚,g''(t)是二阶导数,衡量函数的粗糙度,\int g''(t)^2dt 衡量 g'(t)在取值域内的整体变化,\lambda 越大,函数g越光滑 。

    \lambda = 0,惩罚项不起作用,g会很跳跃;

    \lambda \to \inftyg趋近于直线。合适的\lambda能让g既接近训练点又光滑。

    最小化式(7.11)得到的g分段三次多项式,在结点处一阶和二阶导数连续,在边界结点外区域是线性的,不同于自然三次样条,可看作自然三次样条的收缩版本 。

    选择光滑参数\lambda

    光滑样条可看作将每个x_i都设为结点的自然三次样条,但全部设为结点自由度太高,曲线变动剧烈。

    \lambda控制光滑样条的粗糙度和有效自由度(df_\lambda) ,\lambda0 增加到\infty ,有效自由度从n 降至0

    有效自由度用于衡量光滑样条的光滑性,\lambda越大越光滑(低偏差高方差) 。

    计算有效自由度的公式为 df_\lambda=\sum_{i = 1}^{n}[S_\lambda]_{ii}(式7.13) ,其中 \hat{g}_\lambda = S_\lambda y(式7.12) ,\hat{g}_\lambda 是式(7.11)对于特定\lambda的解,S_\lambdan \times n矩阵。

    确定 \lambda常用交叉验证法,选择使交叉验证的 RSS 最小的\lambda。留一交叉验证误差LOOCV可通过公式

    RSS_{cv}(\lambda)=\sum_{i = 1}^{n}\left[\frac{y_i - \hat{g}_\lambda^{(-i)}(x_i)}{1 - [S_\lambda]_{ii}}\right]^2\hat{f}(x_0)

    计算,\hat{g}_\lambda^{(-i)}(x_i)是剔除观测点(x_i, y_i) 后用训练数据集拟合的结果 。

    7.6 局部回归

    原理:

    是拟合光滑非线性函数的方法,在拟合目标观测点x_0 时,只用到该点附近的训练观测。如图7 - 9所示,蓝线是产生模拟数据的真实函数f(x),浅橘黄色线是局部回归拟合得到的\hat{f}(x)

    图7 - 9 在模拟数据上演示局部回归模型,其中数据由蓝线对应函数f(x) 产生,浅橘黄色曲线是根据局部回归拟合得到的结果\hat{f}(x) 。橘黄色的点表示的是橘黄色直线指示的点x_0的邻居,黄色的钟形区域代表赋值给x_0的邻居的权重,权重随着距x_0的距离越远降至0。在x_0的拟合值\hat{f}(x_0) 是通过拟合一个加权线性回归得到的(也就是橘黄色线段),将x_0(橘黄色实心点)代入这个橘黄色线段对应的函数就得到其拟合值\hat{f}(x_0)

    算法步骤:

    1. 选取占所有数据s/k比例的最靠近 x_0的数据点x_i

    2. 给选出的数据点赋予权重K_{x_0}=K(x_i, x_0) ,离x_0越远权重为0,越近权重越高。

    3. 用加权最小二乘回归对选出的数据点进行拟合,即最小化\sum_{i = 1}^{n}K_{x_0}(y_i - \beta_0 - \beta_1x_i)^2

    4. 根据\hat{f}(x_0)=\hat{\beta}_0+\hat{\beta}_1x_0得到x_0的拟合值 。

    特点及扩展:

    不同的x_0 权重 K_{x_0}不同,每次计算新的拟合值都需新的权重值来最小化式子。

    局部回归也叫基于内存的过程,因预测时需所有训练数据。

    选择合适的权重函数K很重要,步骤1中的间距(span)  s控制非线性拟合的光滑性,s小,拟合效果剧烈起伏;s 大,相当于使用所有数据拟合。

    图7 - 10展示了用不同s 值( 0.7 和 0.2)拟合Wage数据的局部线性回归结果,s = 0.7 的结果更光滑 。

    局部回归可推广到多变量,如变系数模型是将其扩展到最近收集数据上的有效方式;

    对多个变量建模时,在二维空间选择目标点附近观测点拟合二元线性回归模型,理论上可用于高维空间,但p大于3或4时效果差,因与x_0相邻的观测值少,和高维情况下的最近邻回归问题类似

    7.7 广义可加模型(GAM)

    用于回归问题的GAM:

    7.1 - 7.6节介绍的是基于单个预测变量X预测响应变量Y的光滑模型,可看作简单线性回归模型的推广。GAM是基于多个变量 X_1, \cdots, X_p预测 Y 的光滑模型,是对多元线性回归的推广。

    标准线性模型

    y_i=\beta_0+\beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip}+\varepsilon_i

    推广后的GAM形式为

    y_i=\beta_0+\sum_{j = 1}^{p}f_j(x_{ij})+\varepsilon_i=\beta_0+f_1(x_{i1})+f_2(x_{i2})+\cdots+f_p(x_{ip})+\varepsilon_i

    (式7.15)

    每个X_j对应一个独立的函数f_j,模型具有可加性。

    图7.11 展示了针对Wage数据,在拟合模型(7.16)中每个特征与响应变量wage之间的关系图。每张图都显示了拟合函数和逐点标准误差。前两个函数分别是关于year和age的自然样条函数,自由度分别为4和5。第三个函数是一个阶梯函数,用于拟合定性变量education。 7.7.1节研究了用于定量响应变量的广义可加模型(GAMs),7.7.2节则研究了用于定性响应变量的广义可加模型。  

    图7.12 细节与图7.11相同,但现在f_1f_2分别是自由度为4和5的光滑样条函数

    例如预测工资(wage)的模型wage=\beta_0+f_1(year)+f_2(age)+f_3(education)+\varepsilon (式7.16) , yearage是定量变量,education是定性变量 。

    图7 - 11展示了用最小二乘法拟合模型(7.16)的结果, yearage用自由度分别为4和5的自然样条拟合,education用阶梯函数拟合。

    图7 - 12中 f_1f_2分别使用自由度为4和5的光滑样条,拟合带光滑样条的GAM更复杂,一些软件(如R中的gam() 函数) 可用向后拟合(backfitting)方法,通过循环依次对每个变量更新系数并保持其他系数不变,每次更新只对变量的部分残差进行拟合 。

    GAM的优点是能自动对标准线性回归忽略的非线性关系建模、使响应变量预测更精准、可加性便于看单个变量对 Y的影响、可通过分析自由度了解函数f_j的光滑性;

    局限是模型形式限定为可加,常忽略变量间有意义的交互项,但可通过增加X_j \times X_k 形式的交互项来表达,也可增加低维交互项并用二维光滑方法(如局部回归或二维样条)拟合 。

    用于分类问题的GAM:

    Y是定性变量时,GAM也适用。

    Y 取0或1为例,设p(X)=Pr(Y = 1|X) ,逻辑斯谛回归模型为

    \log(\frac{p(X)}{1 - p(X)})=\beta_0+\beta_1X_1+\beta_2X_2+\cdots+\beta_pX_p

    (式7.17)

    推广后的GAM逻辑斯谛回归模型为

    \log(\frac{p(X)}{1 - p(X)})=\beta_0+f_1(X_1)+f_2(X_2)+\cdots+f_p(X_p)

    (式7.18)

    如预测Wage数据中个人年收入超过250000美元的可能性,拟合的GAM模型为\log(\frac{p(X)}{1 - p(X)})=\beta_0+\beta_1 \times year+f_2(age)+f_3(education)(式7.19) ,f_2用自由度为5的光滑样条拟合,f_3对每个水平构造哑变量的阶梯函数拟合 。通过对数据处理和拟合,可从图形比较每个变量的贡献,如 ageeducation对跻身高收入人群的影响比 year 更大 。

    光滑度

    在机器学习中,光滑度(smoothness)用于描述函数或模型的一种性质,以下从不同角度为你介绍:

    从函数角度理解

    数学定义:从数学层面看,一个函数的光滑度通常与它的可微性相关。如果一个函数在其定义域内具有连续的导数,并且导数的变化也是连续的,那么可以说这个函数具有一定的光滑度。例如,一阶导数连续的函数比不可导的函数更光滑;二阶导数也连续的函数则更加光滑。像线性函数y = ax + b,其一阶导数为常数a ,是连续的,相对比较光滑;而锯齿状的函数,在转折点处不可导,光滑度就较差 。

    直观表现:从函数图像上直观理解,光滑的函数图像没有尖锐的角、跳跃或突变,曲线过渡自然流畅。比如二次函数y = x^2的图像是一条平滑的抛物线,而分段函数在分段点处若不连续或导数不连续,图像就会出现不光滑的情况 。

    在模型中的体现

    模型拟合曲线的光滑程度:在机器学习模型中,很多模型会拟合出一个用于预测的函数。以回归问题为例,如使用多项式回归、样条回归等方法时,得到的拟合曲线的光滑度是一个重要特性。光滑的拟合曲线意味着模型不会对训练数据中的噪声过度拟合。例如,过高阶的多项式回归可能会产生非常曲折的曲线,虽然能完美拟合训练数据,但光滑度差,这样的模型在面对新数据时往往泛化能力不佳;而像光滑样条模型,通过引入惩罚项(如最小化 \sum_{i = 1}^{n}(y_i - g(x_i))^2+\lambda\int g''(t)^2dt ) ,控制拟合曲线的光滑度,使得模型在拟合训练数据的同时,保证曲线的平滑,提高泛化性能 。

    特征与预测结果关系的平稳性:光滑度也反映了特征变量与预测结果之间关系的平稳程度。如果模型具有较好的光滑度,那么当特征变量发生微小变化时,预测结果的变化也是平稳和可预测的,不会出现剧烈波动。这在实际应用中很重要,比如在根据用户的年龄、收入等特征预测其信用风险时,希望模型的预测结果随着这些特征的变化是平滑的,这样的模型更符合现实逻辑,也更容易解释和信任 。

    与模型性能的关联

    防止过拟合:合适的光滑度有助于防止模型过拟合。过拟合的模型往往对训练数据中的噪声和特殊样本过于敏感,导致模型复杂度过高,光滑度差。通过控制模型的光滑度,例如在损失函数中加入正则化项(类似于光滑样条中的惩罚项),可以限制模型的复杂度,使模型能够学习到数据中的一般模式,而不是记住训练数据中的每一个细节,从而提高模型在未知数据上的泛化能力 。

    影响模型的可解释性:光滑的模型通常具有更好的可解释性。当模型的输出随着输入的变化是平滑的时候,人们更容易理解特征与预测结果之间的关系。例如在广义可加模型(GAM)中,通过对每个特征使用光滑的非线性函数,可以清晰地展示每个特征对预测结果的单独影响,以及这些影响是如何随着特征值的变化而平滑变化的 。

    第八章 基于树的方法(Tree-Based Methods)

    8.1 决策树基本原理

    本章聚焦基于树(tree - based)的回归和分类方法,这些方法通过分层和分割预测变量空间,将其划分为一系列简单区域,依据区域内训练集的均值(回归问题)或众数(分类问题)对给定观测值进行预测。基于树的方法简单易懂,但预测准确性常低于其他一些有指导的学习方法。此外,还介绍了装袋法、随机森林和提升法,这些方法通过综合多棵树来进行预测,能显著提升预测准确性,不过会损失一定的可解释性。

    回归树

    构建步骤:

    1. 划分预测变量空间:

    - 理论上,需将预测变量空间(即X_1X_2,\(\cdots\),\(X_p\)的所有可能取值构成的集合)分割成\(J\)个互不重叠的区域\(R_1\),\(R_2\),\(\cdots\),\(R_J\) 。为了便于理解和解释,实际中常将区域划分为高维矩形,也称作盒子(box)。

    - 划分的目标是找到使模型的残差平方和(RSS)最小的矩形区域。RSS的计算公式为\(\sum_{j = 1}^{J}\sum_{i \in R_j}(y_i - \hat{y}_{R_j})^2\)(式8.1),其中\(\hat{y}_{R_j}\)表示第\(j\)个矩形区域中训练集的平均响应值。

    - 由于考虑所有可能的划分在计算上不可行,通常采用自上而下(top - down)、贪婪(greedy)的递归二叉分裂(recursive binary splitting)方法。具体过程是从树的顶端开始,对每个内部结点,考虑所有的预测变量\(X_1\),\(X_2\),\(\cdots\),\(X_p\)以及每个变量对应的所有可能分割点\(s\) 。对于预测变量\(X_j\)和分割点\(s\) ,定义两个半平面\(R_1(j, s)=\{X|X_j < s\}\)和\(R_2(j, s)=\{X|X_j \geq s\}\)(式8.2)。然后选择能使\(\sum_{i \in R_1(j, s)}(y_i - \hat{y}_{R_1})^2 + \sum_{i \in R_2(j, s)}(y_i - \hat{y}_{R_2})^2\)(式8.3)取得最小值的预测变量\(j\)和分割点\(s\) ,其中\(\hat{y}_{R_1}\)和\(\hat{y}_{R_2}\)分别是\(R_1(j, s)\)和\(R_2(j, s)\)中训练集的平均响应值。

    - 重复上述步骤,对新生成的区域继续进行分割,直到满足某个停止准则,比如区域内的观测值数量小于某个最小值,或者RSS的减小量低于一定阈值等。

    2. 进行预测:

    当划分出区域\(R_1\),\(R_2\),\(\cdots\),\(R_J\)后,对于落入区域\(R_j\)的每个观测值,其预测值等于\(R_j\)上训练集响应值的简单算术平均。

    例如,若在第一步得到两个区域\(R_1\)和\(R_2\),\(R_1\)上训练集的平均响应值为10,\(R_2\)上训练集的平均响应值为20,那么对于给定观测值\(X = x\) ,若\(x \in R_1\),预测值为10;若\(x \in R_2\),预测值为20 。

    树的剪枝:

    上述构建回归树的方法在训练集中可能取得良好的预测效果,但容易造成过拟合,导致在测试集中效果不佳。原因是生成的树可能过于复杂。为了解决这个问题,可以通过剪枝来简化树的结构。简单的树(分裂点少、区域少)方差更小且可解释性更好。

    代价复杂性剪枝方法:

    代价复杂性剪枝(cost complexity pruning),也称最弱联系剪枝(weakest link pruning),考虑以非负调整参数\(\alpha\)标记的一系列子树。对于每一个\(\alpha\)的取值,都对应一棵子树\(T \subset T_0\)(\(T_0\)为最初生成的未剪枝的树),使得\(\sum_{m = 1}^{|T|}\sum_{i \in R_m}(y_i - \hat{y}_{R_m})^2 + \alpha|T|\)(式8.4)最小,其中\(|T|\)表示树\(T\)的终端结点数,\(\hat{y}_{R_m}\)是与终端结点\(R_m\)对应的预测值,也就是\(R_m\)中训练集的平均值。当\(\alpha = 0\)时,子树\(T\)等于原树\(T_0\),此时只衡量了训练误差;当\(\alpha\)增大时,终端结点数多的树会因其复杂性付出代价,使得满足式(8.4)最小值的子树变得更小。

    确定\(\alpha\)的值可以使用交叉验证或验证集来确定\(\alpha\) 。具体做法是将训练集划分为\(K\)折,对于不同的\(\alpha\) ,计算每折上的均方预测误差,然后对\(K\)个值求平均,得到平均误差。选择使平均误差最小的\(\alpha\) ,其对应的子树即为最终选择的树。


    建立回归树的完整过程:

    1. 利用递归二叉分裂在训练集中生成一棵大树,设定停止条件,如终端结点包含的观测值个数低于某个最小值时停止分裂。

    2. 对生成的大树进行代价复杂性剪枝,得到一系列以\(\alpha\)为参数的最优子树。

    3. 利用\(K\)折交叉验证选择\(\alpha\) :

    - 对训练集上所有不属于第\(k\)折的数据重复步骤1和步骤2,得到与\(\alpha\)一一对应的子树。 - 求出上述子树在第\(k\)折上的均方预测误差。

    - 重复上述操作,每个\(\alpha\)会有相应的\(K\)个均方预测误差,对这\(K\)个值求平均,选出使平均误差最小的\(\alpha\) 。

    4. 找出选定的\(\alpha\)值在步骤2中对应的子树,即为最终的回归树。

    图 8.1 

    图 8.4 

    图8.5

    图8 - 4和图8 - 5展示了在Hitters数据集上生成和修剪回归树的结果。首先将数据集随机分为训练集(包含132个观测值)和测试集(包含131个观测值)。

    在训练集上建立一棵未剪枝的回归树,然后使用6折交叉验证估计不同\(\alpha\)值下的均方误差(MSE)。

    图8 - 4是未剪枝的回归树;

    图8 - 5中,绿色曲线表示交叉验证(CV)误差,它是树终端结点数的函数,橙色曲线代表测试误差,图中还绘制了均方误差周围的标准误差带。

    可以看到,当终端结点数为3时,CV误差最小,剪枝后的树如图8 - 1所示,它包含三个终端结点 。


    分类树

    与回归树的区别:

    分类树用于预测定性变量,而回归树用于预测定量变量。

    在回归树中,对于给定观测值,响应预测值取其所属终端结点内训练集的平均响应值;在分类树中,给定观测值被预测为其所属区域内训练集中最常出现的类(most commonly occurring class)。

    同时,在解释分类树结果时,不仅关注特定终端结点对应的预测类别,还关注落入此区域的训练集中各个类所占的比例 。

    构建过程:

    分类树的构造过程和回归树类似,同样采用递归二叉分裂。但在分类树中,RSS无法作为确定二叉分裂点的准则,常用的替代指标有:

    分类错误率:

    其定义为\(E = 1 - \max(\hat{p}_{mk})\)(式8.5),

    其中\(\hat{p}_{mk}\)代表第\(m\)个区域的训练集中第\(k\)类所占的比例。该指标表示将给定区域内的观测值都分到此区域训练集上最常出现的类时,错误分类的比例。 

    基尼系数:

    定义为\(G = \sum_{k = 1}^{K}\hat{p}_{mk}(1 - \hat{p}_{mk})\)(式8.6),它衡量的是\(K\)个类别的总方差。当所有的\(\hat{p}_{mk}\)都接近0或1时,基尼系数会很小,因此被视为衡量结点纯度(purity)的指标,结点纯度越高,基尼系数越小 。

    互熵:

    定义为\(D = - \sum_{k = 1}^{K}\hat{p}_{mk}\log\hat{p}_{mk}\)(式8.7)。

    由于\(0 \leq \hat{p}_{mk} \leq 1\),可知\(0 \leq - \hat{p}_{mk}\log\hat{p}_{mk} \leq 1\),当\(\hat{p}_{mk}\)接近0或1时,互熵接近0。

    所以,互熵与基尼系数类似,也可用于衡量结点纯度 。 

    实际中,基尼系数和互熵对结点纯度更敏感,比分类错误率更常用。在构建分类树的过程中,依据这些指标来选择使划分后结点纯度最高(即指标值最小)的预测变量和分裂点,从而实现递归二叉分裂。

    树与线性模型的比较

    线性回归假设模型形式为\(f(X) = \beta_0 + \sum_{j = 1}^{p}X_j\beta_j\)(式8.8),

    而回归树模型的形式为\(f(X) = \sum_{m = 1}^{M}c_m \cdot 1_{(X \in R_m)}\)(式8.9),

    其中\(R_1\),\(R_2\),\(\cdots\),\(R_M\)表示特征空间划分后的区域。

    哪种模型更好取决于具体情况:

    如果预测变量和响应变量之间的关系能够很好地用式(8.8)中的线性模型来拟合,那么线性回归通常会有不错的预测效果,拟合效果优于不能揭示这种线性结构的回归树;

    反之,若预测变量和响应变量的关系呈现出复杂的高度非线性,如式(8.9)所示,那么树方法则比传统方法更具优势。可以通过交叉验证或验证集(第5章)来估计树方法和传统方法的测试误差,进而比较两者的优劣 。

    树的优缺点

    优点:

    决策树解释性强:与第3章和第4章中的传统方法相比,用于回归和分类的决策树在解释性方面优势明显,甚至比线性回归更便于理解 。

    接近人的决策模式:有人认为与传统的回归和分类方法相比,决策树更接近人的决策模式 。

    易于图形展示和解释:树可以用图形表示,在树规模较小时,非专业人士也能轻松理解(尤其是当树规模较小时) 。

    可直接处理定性变量:树可以直接处理定性的预测变量,而无需创建哑变量 。

    缺点:

    遗憾的是,树的预测准确性一般无法达到其他回归和分类方法的水平。不过,通过装袋法、随机森林和提升法等方法组合大量决策树,可以显著提升树的预测效果 。

    8.2 袋装法、随机森林和提升法

    装袋法(Bagging)

    基本原理:

    决策树通常具有高方差,即训练集的微小变化可能导致模型的显著差异。

    而线性回归在\(n\)(样本数量)与\(p\)(特征数量)比值适中时方差较低。

    装袋法(自助法聚集,bootstrap aggregation)是一种减小统计学习方法方差的通用技术。其原理基于这样一个事实:对一组独立观测值求平均可以减小方差

    例如,给定\(n\)个独立观测值\(Z_1,\cdots,Z_n\),每个观测值的方差为\(\sigma^2\),它们的平均值\(\bar{Z}\)的方差为\(\sigma^2/n\) 。

    因此,为了减小某种统计学习方法的方差从而提高预测准确性,可以从总体中抽取多个训练集,为每个训练集分别建立预测模型,然后对这些模型的预测值求平均。但在实际中,通常难以获取多个不同的训练集,而自助法(bootstrap)可以解决这个问题。

    自助法是从单个训练集中进行有放回的重复抽样,生成\(B\)个不同的自助抽样训练集。

    对于第\(b\)个自助抽样训练集,拟合模型并得到预测值\(\hat{f}^{*b}(x)\),最终的装袋法预测值\(\hat{f}_{bag}(x)\)是这\(B\)个预测值的平均值,即\(\hat{f}_{bag}(x)=\frac{1}{B}\sum_{b = 1}^{B}\hat{f}^{*b}(x)\) 。

    在回归和分类问题中的应用:

    回归问题:将装袋法应用于回归树时,只需用\(B\)个自助抽样训练集分别建立\(B\)棵回归树,然后计算这些树相应预测值的平均值。这些树通常是未经剪枝且枝叶茂盛的,因为每棵树的方差高但偏差小,对它们的拟合值求平均可以有效减小方差。大量实验证明,通过数百甚至数千棵树的组合,装袋法能大幅提高预测准确性 。

    分类问题:当\(Y\)为定性变量时,对于给定的测试值,记录\(B\)棵树各自给出的预测类别,然后采用多数投票(majority vote)的方式,将\(B\)个预测中出现频率最高的类作为总体预测 。

    示例与效果:图8 - 8展示了用装袋法预测Heart数据集的结果,测试错误率表示为\(B\)(由自助抽样训练集建立的树的个数)的函数。可以看出,装袋法的测试错误率略低于单个树的测试错误率。并且,树的个数\(B\)并不是决定装袋法效果的关键参数,即使\(B\)值很大也不会产生过拟合,在实践中,通常取足够大的\(B\)值,使误差稳定下来,比如在该例子中,\(B = 100\)就能得到很好的预测效果 。

    图 8.8 

    基于Heart数据集的装袋法和随机森林结果。测试错误率(黑色和橙色线)被表示为B的函数,B是自助抽样训练集建立的树的个数。随机森林的参数取\(m = \sqrt{p}\)。虚线表示单个分类树的测试错误率。绿色和蓝色曲线表示OOB错误率,在本例中它明显低于测试错误率。

    袋外误差估计(Out - of - Bag Error Estimation):

    存在一种无需交叉验证就能直接估计装袋模型测试误差的方法。

    在装袋法中,利用自助法得到的每个自助抽样训练集大约会包含原数据集三分之二的观测值,剩余约三分之一的观测值被称为袋外(out - of - bag,OOB)观测值。

    可以用所有将第\(i\)个观测值作为OOB的树来预测第\(i\)个观测值的响应值,这样会生成约\(B/3\)个对第\(i\)个观测值的预测。对这些预测值求平均(回归问题)或进行多数投票(分类问题),就可以得到第\(i\)个观测值的OOB预测。通过这种方式可以计算总体的OOB均方误差(回归问题)或分类误差(分类问题)。图8 - 8展示了Heart数据集的OOB误差,实践表明,当\(B\)足够大时,OOB误差是测试误差的有效估计,且使用OOB方法估计测试误差比交叉验证更简便 。

    变量重要性度量:

    与单棵树相比,装袋法通常能提高预测的准确性,但模型的可解释性会降低。不过,可以使用残差平方和(针对装袋法回归树)或基尼系数(针对装袋法分类树)对各预测变量的重要性作出整体概括。在装袋回归树的构建过程中,记录下任一给定预测变量引发的分裂而减小的RSS的总量,并对每棵树的该减小总量取平均,结果值越大说明该预测变量越重要。类似地,在装袋法分类树建模过程中,对某一给定的预测变量,计算其在每棵树上因分裂而使基尼系数减小的量并累加,再取所有\(B\)棵树的平均,以此衡量变量的重要性。

    针对装袋法回归树衡量变量重要性

    基本指标:

    使用残差平方和(Residual Sum of Squares,RSS)来衡量。RSS用于衡量模型预测值与实际值之间的差异程度,公式为\(\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2\),其中\(y_i\)是实际值,\(\hat{y}_i\)是预测值 。

    实现过程:

    在构建每一棵装袋回归树时,每当某个预测变量被用于分裂节点(即将数据划分为不同子集),就会计算这次分裂导致的RSS减小量。例如,假设当前节点有一组数据,以预测变量\(X\)的某个值\(x_0\)进行分裂,将数据分为\(X < x_0\)和\(X \geq x_0\)两部分,分别计算分裂前后的RSS,它们的差值就是该预测变量\(X\)在这次分裂中使RSS减小的量。对于每一棵回归树,记录下每个预测变量引发分裂而减小的RSS的总量。最后,对所有\(B\)棵树中同一预测变量的该减小总量取平均。如果某个预测变量的平均减小量较大,说明它在众多树的构建过程中,通过分裂节点显著降低了模型的预测误差,也就意味着这个预测变量对响应变量的影响较大,在模型中更为重要 。

    针对装袋法分类树衡量变量重要性

    基本指标:

    采用基尼系数(Gini index)来衡量。基尼系数用于衡量数据的不纯度,公式为\(G = \sum_{k = 1}^{K}\hat{p}_{mk}(1 - \hat{p}_{mk})\),其中\(\hat{p}_{mk}\)代表第\(m\)个区域中第\(k\)类所占的比例。基尼系数越小,说明数据的纯度越高,即某一类别的占比越高 。

    实现过程:

    在构建每一棵装袋分类树时,当使用某个预测变量进行节点分裂时,计算这次分裂导致的基尼系数减小量。比如,在某个节点上,依据预测变量\(Z\)进行分裂,分别计算分裂前后的基尼系数,它们的差值就是该预测变量\(Z\)在这次分裂中使基尼系数减小的量。对每一棵分类树,累加某个预测变量在各次分裂中使基尼系数减小的量。最后,取所有\(B\)棵树中同一预测变量的该累加值的平均。如果某个预测变量的平均减小量较大,表明它在树的构建过程中,通过分裂节点显著提高了数据的纯度,即能更好地区分不同类别,所以这个预测变量在模型中更重要 。 

    装袋法与单棵树的对比

    装袋法通过组合多棵树进行预测,通常比单棵树能获得更高的预测准确性。然而,由于是多棵树的集成,模型结构变得复杂,不像单棵树那样容易理解每个变量对结果的具体影响路径,所以可解释性降低 。

    随机森林(Random Forest)

    对装袋法的改进:

    随机森林是对装袋法的改进,通过对树去相关处理来进一步提升性能。在随机森林中,同样需要用自助抽样训练集建立一系列决策树,这一点与装袋法相似。但在建立决策树的每个分裂点时,随机森林不是考虑全部的\(p\)个预测变量,而是从包含\(m\)个预测变量的子集中随机选择用于分裂,且每个分裂点都重新进行抽样。通常\(m \approx \sqrt{p}\) ,例如Heart数据集有13个预测变量,则\(m\)取4 。

    原理与优势:

    在装袋法中,若数据集中存在很强的预测变量,所有的树都会将其用于顶部分裂点,导致树之间高度相关,而对相关的量求平均并不能有效减小方差。随机森林通过限制每个分裂点仅考虑预测变量的一个子集,使得约有\((p - m)/p\)的分裂点不会考虑最强的预测变量,从而增加了树之间的差异,降低了它们的相关性,减小了方差。这样即使树的数量很多,也不会导致预测方差过高 。

    示例与效果:

    在Heart数据集上,用\(m \approx \sqrt{p}\)构建随机森林使测试误差和OOB误差同时降低。对于包含4718个基因表达量的高维生物学数据集,分别用单棵树、装袋法(\(m = p\))和随机森林(不同\(m\)值)进行预测。单棵树的分类错误率为\(45.7\%\),初始错误率为\(75.4\%\) 。结果显示,用400棵树构建随机森林就能得到很好的预测效果,并且当选择合适的较小\(m\)值时,随机森林的预测效果略优于装袋法(\(m = p\)),且不会因树的数量增加而导致过拟合,能使分类错误率降低到稳定水平 。

    提升法(Boosting)

    基本原理:

    提升法是另一种提升决策树预测效果的方法,也是一种通用方法,可改进许多用于解决回归或分类问题的统计学习方法,这里主要关注其在决策树中的应用。与装袋法不同,装袋法中的树是相互独立地基于自助抽样数据集生成,而提升法中的树是顺序生成的,每棵树的构建都要利用到之前生成树的信息 。

    回归情形的步骤:

    1. 对训练集中的所有\(i\),初始化\(\hat{f}(x)=0\),\(r_i = y_i\)(\(r_i\)表示残差)。

    2. 对于\(b = 1,2,\cdots,B\)(\(B\)为树的总数),重复以下过程

    - 对训练数据\((X, r)\),建立一棵有\(d\)个分裂点(\(d + 1\)个终端结点)的树\(\hat{f}^b(x)\) 。

    - 将这棵树加入模型以更新\(\hat{f}(x)\):\(\hat{f}(x) \leftarrow \hat{f}(x)+\lambda\hat{f}^b(x)\)(式8.10),其中\(\lambda\)是取值较小的正的压缩参数,用于控制学习速度 。

    - 更新残差:\(r_i \leftarrow r_i-\lambda\hat{f}^b(x_i)\)(式8.11) 。

    3. 输出经过提升的模型:\(\hat{f}(x)=\sum_{b = 1}^{B}\lambda\hat{f}^b(x)\)(式8.12) 。

    理论依据与优势:

    提升法不是生成一棵大规模的决策树,因为大树可能过度拟合数据。提升法是一种缓慢学习(learning slowly)的训练模型方法,它利用现有模型的残差生成决策树,将新树加入模型以更新残差,通过参数\(d\)控制树的规模,通过\(\lambda\)调整学习速度。通常,学习缓慢的统计学习方法有较好的预测效果。与装袋法不同,提升法中每棵树的建立很大程度上依赖已有的树 。

    调整参数:

    树的总数\(B\): 与装袋法和随机森林不同,如果\(B\)值过大,提升法可能出现过拟合,但即使出现过拟合,其发展也很缓慢,一般使用交叉验证来选择合适的\(B\)值 。

    压缩参数\(\lambda\): 通常取\(0.01\)或\(0.001\),合适的取值取决于具体问题,它控制着提升法的学习速度,较小的\(\lambda\)能获得良好的预测效果 。

    每棵树的分裂点数\(d\): 控制着整个提升模型的复杂性。当\(d = 1\)时,每棵树是一个树桩(stump,仅由一个分裂点构成),这种情况下的提升法整体与加法模型相符,因为每个树只包含一个变量;更多情况下,\(d\)表示交互深度(interaction depth),它控制着提升模型的交互顺序 。

    示例与效果:

    在15类癌症基因表达数据集上使用提升法,当树的深度为1(树桩)时,在测试误差表现上效果很好,该模型的预测效果优于深度为2的模型,且它们都优于随机森林模型。这体现了提升法和随机森林的一个不同点:提升法通常使用更小的树,这有助于提高模型的可解释性 。

    贝叶斯加性回归树(Bayesian Additive Regression Trees,BART)

    方法概述:贝叶斯加性回归树是另一种以决策树为构建模块的集成方法,这里主要介绍其在回归问题中的应用(与分类相对)。装袋法和随机森林是通过对多个决策树的预测取平均来进行预测,每棵树独立构建;提升法是通过加权求和构建新树,每棵树尝试捕捉现有树未解释的信号。BART结合了这两种方法的特点,每棵树随机构建且尝试捕捉现有树未解释的信号 。

    算法步骤:

    1. 初始化:令\(\hat{f}_1^1(x)=\hat{f}_2^1(x)=\cdots=\hat{f}_K^1(x)=\frac{1}{nK}\sum_{i = 1}^{n}y_i\),即所有树初始化为响应值的平均值除以树的总数,此时\(\hat{f}^1(x)=\sum_{k = 1}^{K}\hat{f}_k^1(x)=\frac{1}{n}\sum_{i = 1}^{n}y_i\) 。

    2. 对于\(b = 2,\cdots,B\)(\(B\)为迭代次数): - 对于\(k = 1,\cdots,K\)(\(K\)为树的数量):

    - 对于\(i = 1,\cdots,n\),计算当前的部分残差\(r_i = y_i-\sum_{k' < k}\hat{f}_{k'}^b(x_i)-\sum_{k' > k}\hat{f}_{k'}^{b - 1}(x_i)\) 。

    - 通过对第\(k\)棵树进行随机扰动(从可能的扰动集合中选择,这些扰动包括改变树的结构,如添加或修剪分支;改变树的终端结点的预测值),拟合新树\(\hat{f}_k^b(x)\)到残差\(r_i\) 。

    - 计算\(\hat{f}^b(x)=\sum_{k = 1}^{K}\hat{f}_k^b(x)\) 。

    3. 计算经过\(L\)次预热迭代后的平均值:\(\hat{f}(x)=\frac{1}{B - L}\sum_{b = L + 1}^{B}\hat{f}^b(x)\) 。通常会舍弃前\(L\)次迭代得到的模型(预热期,burn - in period),因为早期迭代得到的模型效果往往不好 。

    特点与优势:

    BART的关键在于,在步骤2(a)ii中,不是拟合全新的树到当前部分残差,而是通过对前一次迭代得到的树进行轻微修改来改进拟合,这样可以防止过拟合,限制每次迭代中对数据的拟合程度。此外,BART可以通过计算\(\hat{f}^{L + 1}(x),\cdots,\hat{f}^{B}(x)\)的分位数来提供最终预测的不确定性度量。图8 - 13展示了将BART应用于Heart数据的结果,当树的数量\(K = 200\),随着迭代次数增加到10000,在初始迭代阶段,测试和训练误差会有波动,经过100次迭代的预热期后,BART的误差率趋于稳定,而提升法在一定次数迭代后开始过拟合 。使用BART时,通常选择较大的\(B\)和\(K\)值,以及适中的\(L\)值,如\(K = 200\),\(B = 1000\),\(L = 100\) ,并且BART已被证明具有出色的开箱即用性能,即无需大量调整就能取得良好效果 。

    树集成方法总结

    树作为集成方法中弱学习器是很有吸引力的选择,原因包括其灵活性以及处理各种数据类型和复杂关系的能力等 。

    这段英文总结了四种构建树集成模型的方法:装袋法(bagging)、随机森林(random forests)、提升法(boosting)和贝叶斯加性回归树(BART),具体内容如下:

    装袋法:树是在观测值的随机样本上独立生成的。因此,这些树往往非常相似,可能陷入局部最优,无法全面探索模型空间。

    随机森林:树同样在观测值的随机样本上独立生成。然而,每棵树的每个分裂点都是使用特征的随机子集进行的,这使得树之间去相关,从而更全面地探索模型空间,与装袋法有所区别。

    提升法:只使用原始数据,不进行随机抽样。树是依次生成的,采用“缓慢”学习的方法,每棵新树拟合的是先前树未捕捉到的信号,并且在使用前会进行压缩处理 。

    贝叶斯加性回归树:同样仅使用原始数据,树是依次生成的。不过,每棵树都会进行扰动,以避免局部最小值,更全面地探索模型空间。

    第九章 支持向量机(support vector machine,SVM)

    支持向量机(support vector machine,SVM)是20世纪90年代在计算机界发展起来的一种分类方法,自推出后愈发受欢迎,在许多问题中被证实效果较好,是适应性最广的分类器之一。可以将支持向量机看作是最大间隔分类器(maximal margin classifier)的推广。

    9.1 最大间隔分类器

    什么是超平面

    定义: 

    p维空间中,超平面(hyperplane)是p - 1维的平面仿射子空间。例如,二维空间中超平面是一条直线,三维空间中超平面是一个平面,p>3维空间中虽难以可视化,但仍是p - 1维的平面子空间。

    数学定义: 

    二维空间中,超平面定义为\beta_0 + \beta_1X_1+\beta_2X_2 = 0

    ,其中\beta_0\beta_1\beta_2为参数,任何使该式成立的X=(X_1,X_2)^T都是超平面上的点。

    推广到$p$维空间,超平面为\beta_0 + \beta_1X_1+\beta_2X_2+\cdots+\beta_pX_p = 0

    满足该式的点X=(X_1,X_2,\cdots,X_p)^T都在超平面上。

    超平面划分空间:

    - 若\beta_0 + \beta_1X_1+\beta_2X_2+\cdots+\beta_pX_p>0 ,说明X位于超平面一侧。

    - 若\beta_0 + \beta_1X_1+\beta_2X_2+\cdots+\beta_pX_p<0 ,说明X位于超平面另一侧。

    使用分割超平面分类

    数据假设:

    假设Xn\times p的数据矩阵,由p维空间中的n个训练观测组成,观测分为两个类别,即y_1,\cdots,y_n\in\{ - 1,1\} ,其中-1代表一种类别,1代表另一种类别。还有一个测试观测,其特征为长度为p的向量x^*=(x_1^*,\cdots,x_p^*)^T

    分类原理:

    若能构建一个超平面,把类别标签不同的训练观测分割开。如对于训练观测x_i

    y_i = 1时,\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip}>0

    y_i = - 1时,\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip}<0

    等价于y_i(\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip})>0

    测试观测根据落在分割超平面哪一侧判定类别 ,

    f(x^*)=\beta_0+\beta_1x_1^*+\beta_2x_2^*+\cdots+\beta_px_p^*

    的符号为正,测试观测被分入1类;符号为负,分入-1类。

    最大间隔分类器

    超平面的多样性:

    若数据可被超平面分割开,存在无数个超平面,需从中选择合理的一个。

    最大间隔超平面:

    也叫最优分离超平面,先计算每个训练观测到特定分割超平面的垂直距离,这些距离的最小值就是训练观测与分割超平面的间隔(margin),最大间隔超平面就是间隔最大的分割超平面。

    最大间隔分类器根据f(x^*)=\beta_0+\beta_1x_1^*+\beta_2x_2^*+\cdots+\beta_px_p^*的符号对测试观测x^*分类。

    支持向量:

    与最大间隔超平面距离一样且落在虚线上的训练观测点,它们决定了最大间隔超平面的位置,其他观测点只要不越过间隔边界,其位置改变不影响分割超平面。

    构建最大间隔分类器

    构建基于n个训练观测x_1,x_2,\cdots,x_n\in\mathbb{R}^p和类别标签y_1,y_2,\cdots,y_n\in\{ - 1,1\}的最大间隔分类器,最大间隔超平面是如下优化问题的解:

    •  \underset{\beta_0,\beta_1,\cdots,\beta_p,M}{\text{maximize}}M (9.9)
    •  满足\sum_{j = 1}^{p}\beta_j^2 = 1 (9.10)
    •  y_i(\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip})\geqslant Mi = 1,\cdots,n (9.11)                        约束条件(9.11)保证每个观测落在超平面正确一侧,(9.10)加强了(9.11)的意义,保证每个观测落在超平面正确一侧且与超平面距离至少为MM代表超平面的间隔 ,优化问题是找出最大化M\beta_0,\beta_1,\cdots,\beta_p

    线性不可分的情况

    若不存在分割超平面,最大间隔分类器不适用,此时需要下一节将扩展的方法,即使用软间隔(soft margin),最大间隔分类器在线性不可分情况下的推广叫做支持向量分类器(support vector classifier) 。

    9.2 支持向量分类器

    支持向量分类器概述

    最大间隔分类器的局限性:

    在实际情况中,数据可能无法用超平面分开,即使存在分割超平面,基于分割超平面的分类器也可能存在问题。

    例如在图9 - 5中,左图展示了正常的最大间隔超平面分类情况;右图中增加一个观测后,最大间隔超平面发生巨大变化且间隔变小,这表明最大间隔超平面对单个观测的变化极其敏感,可能出现过拟合训练数据的情况。

    图9 - 5

    支持向量分类器的引入:

    为提高分类器对单个观测分类的稳定性,使大部分训练观测更好地被分类,允许小部分训练观测误分,从而引入支持向量分类器(support vector classifier),也称为软间隔分类器(soft margin classifier)。

    它不要求每个观测都严格落在超平面正确一侧及间隔外,允许一些观测落在间隔错误一侧甚至超平面错误一侧。

    如图9 - 6左图,大部分观测在间隔外正确一侧,小部分在错误一侧;右图增加了两个点,不仅落在超平面错误一侧,还落在间隔错误一侧 。

    图9.6  图中用实线代表超平面,虚线代表间隔。

    - 紫色观测数据:第3 - 6个观测落在间隔正确一侧;第2个观测落在间隔上;第1个观测落在间隔错误一侧。

    - 蓝色观测数据:第7和第10个观测落在间隔正确一侧;第9个观测落在间隔上;第8个观测落在间隔错误一侧。

    - 额外增加两个点11和12 ,这两个点既落在超平面错误一侧,也落在间隔错误一侧 。

    支持向量分类器的细节

    分类依据与超平面求解:

    支持向量分类器依据测试观测落在超平面哪一侧判定类别,所选超平面是如下优化问题的解:

    • \underset{\beta_0,\beta_1,\cdots,\beta_p,\varepsilon_1,\cdots,\varepsilon_n}{\text{maximize}}M(9.12)
    •  满足\sum_{j = 1}^{p}\beta_j^2 = 1 (9.13)
    •  y_i(\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_px_{ip})\geqslant M(1 - \varepsilon_i) (9.14)
    •  \varepsilon_i\geqslant0\sum_{i = 1}^{n}\varepsilon_i\leqslant C (9.15)

    其中,C是非负的调节参数,M是间隔宽度,目标是最大化M\varepsilon_1,\cdots,\varepsilon_n是松弛变量,用于允许训练观测中有小部分观测落在间隔(及超平面)的错误一侧。

    松弛变量的含义:

    \varepsilon_i指出了第i个观测的位置。如果\varepsilon_i = 0,该观测在间隔正确一侧;

    如果0<\varepsilon_i\leqslant1,观测落在间隔错误一侧;

    如果\varepsilon_i>1,观测落在超平面错误一侧。

    调节参数$C$的作用:

    - C是所有\varepsilon_i之和的上界,可看作是对n个观测中穿过间隔的观测数量的“约束”。当C = 0时,不允许有穿过间隔的观测,此时等价于最大间隔超平面的优化问题(所有观测都能被超平面分割开) 。

    - 当C>0时,最多有C个观测可落在超平面错误一侧。C越大,越能容许观测穿过间隔,间隔越宽;C越小,越不容许观测穿过间隔,间隔越窄。

    - 实际中,C通常通过交叉验证选择,它控制了统计学习中偏差 - 方差的权衡。C较小时,间隔较窄,模型偏差大但方差小;C较大时,间隔较宽,模型偏差小但方差大 。

    - 例如图9 - 7,左上图C值最大,落在间隔错误一侧的观测数目较多,间隔较大;其他三个图C值较小,落在间隔错误一侧的观测数目越少,间隔越小。

     图9 - 7展示的是在式(9.12) - (9.15)中调节参数 C 取四个不同值时,使用支持向量分类器拟合相同数据的不同结果,反映了调节参数 C 对分类结果的影响:

    - 左上图中调节参数C的值最大,此时落在间隔的错误一侧的观测数目较多,因此间隔也较大。

    - 其他三个图中调节参数 C 的值较小,随着调节参数 C 的减小,落在间隔的错误一侧的观测数目越来越少,因此间隔也越来越小 。

    支持向量的决定性作用:

    只有落在间隔上的观测以及穿过间隔的观测(即支持向量)会影响超平面和分类器,落在间隔正确一侧的观测对支持向量分类器无影响。

    C较大时,间隔宽,穿过间隔的观测多,支持向量数目多,超平面确定涉及许多观测;

    C较小时,间隔窄,支持向量少,分类器方差小但偏差大 。

    支持向量分类器的优势:

    判定规则由支持向量确定,对距离超平面较远的观测来说,分类器非常稳健。

    它与线性判别分析(LDA)不同,LDA判别规则取决于组内观测的均值以及根据所有观测计算的组内协方差矩阵;

    也不同于逻辑斯谛回归,逻辑斯谛回归对于远离决策边界的观测敏感性较高。

    9.3 狭义的支持向量机

    使用非线性决策边界分类

    线性分类器的局限:

    当响应变量只有两个类别且边界是线性时,支持向量分类器适用。但实际中常遇到非线性分类边界,如图9 - 8 ,左图数据分类边界非线性,使用支持向量分类器(或其他线性分类器)效果不佳,右图显示其分类效果不理想。

     图9 - 8 左:所有观测分成两类,两类之间的分类边界是非线性的。右:支持向量分类器寻求线性的分类边界,所以分类效果非常不理想。

    扩展特征空间的方法:

    类似于线性回归中用预测变量函数解决非线性问题,在支持向量分类器中,可通过使用预测变量的二次多项式、三次多项式甚至更高阶多项式来扩大特征空间。

    例如,用2p个特征X_1,X_1^2,X_2,X_2^2,\cdots,X_p,X_p^2代替p个特征X_1,X_2,\cdots,X_p,此时优化问题从式(9.12) - (9.15)变为:

    • \underset{\beta_0,\beta_1,\cdots,\beta_p,\beta_{p + 1},\cdots,\beta_{2p},\varepsilon_1,\cdots,\varepsilon_n}{\text{maximize}}M(9.16)
    • 满足y_i(\beta_0 + \sum_{j = 1}^{p}\beta_jx_{ij}+\sum_{j = 1}^{p}\beta_{p + j}x_{ij}^2)\geqslant M(1 - \varepsilon_i)
    • $\sum_{i = 1}^{n}\varepsilon_i\leqslant C$ ,  \varepsilon_i\geqslant0\sum_{j = 1}^{p}\beta_j^2+\sum_{j = 1}^{p}\beta_{p + j}^2 = 1

    在扩大的特征空间中,按式(9.16)计算的决策边界实际是线性的,但对应原特征空间中的非线性边界。

    支持向量机

    核函数的引入:

    核函数的引入主要是为了更高效地处理非线性分类问题,在支持向量分类器中,其优化问题的解与观测数据之间的内积密切相关。

    对于两个观测向量$x_i$$x_j$,它们的内积$\langle x_i,x_j\rangle=\sum_{k = 1}^{p}x_{ik}x_{jk}$(其中$p$是特征的维度) 。

    线性支持向量分类器可以表示为$f(x)=\beta_0+\sum_{i = 1}^{n}\alpha_i\langle x,x_i\rangle$

    ,这里$x$是待分类的样本,$x_i$是训练样本,$\alpha_i$$\beta_0$是需要估计的参数。

    并且在计算过程中,只有支持向量对应的$\alpha_i$是非零的,也就是说对分类结果起关键作用的是支持向量与待分类样本之间的内积运算。

    当面对非线性分类边界的问题时,之前提到可以通过扩大特征空间的方式,比如使用多项式特征(像从$X_1,X_2$扩展到$X_1,X_1^2,X_2,X_2^2$等),将原空间的非线性问题转换为新空间的线性问题来处理。

    但这种直接扩大特征空间的方法存在问题,一方面会使特征维度急剧增加,导致计算量变得极大;另一方面,在一些情况下,新的特征空间可能非常复杂,甚至无法明确界定。

    核函数的作用:

    核函数$K(x_i,x_j)$就是用来替代原来的内积运算$\langle x_i,x_j\rangle$。它本质上是一种函数映射,能够在不直接计算高维甚至无限维特征空间内积的情况下,达到相同的分类效果。

    例如线性核函数$K(x_i,x_j)=\sum_{k = 1}^{p}x_{ik}x_{jk}$,它在效果上等同于原来的内积运算,适用于数据本身线性可分或者近似线性可分的情况。

    多项式核函数$K(x_i,x_j)=(1 + \sum_{k = 1}^{p}x_{ik}x_{jk})^d$$d$为正整数) ,通过对$d$的调整,可以在不同复杂度的高维空间中进行分类,能够处理一些非线性的分类边界。

    还有径向核函数$K(x_i,x_j)=\exp(-\gamma\sum_{k = 1}^{p}(x_{ik}-x_{jk})^2)$,它以样本之间的欧氏距离为基础,当样本距离较远时,核函数值会很小,意味着该样本对分类结果的影响较小,是一种局部性的度量方式,适合处理一些数据分布较为复杂的非线性分类问题。

    核函数的优势:

    使用核函数最大的优势在于避免了在扩大后的高维特征空间中进行复杂的计算。只需要计算训练样本之间的核函数值(数量为$\frac{n(n - 1)}{2}$个不同配对,$n$为样本数量) ,就可以完成分类器的构建和预测。

    特别是对于一些特征空间维度不确定甚至是无限维的情况(如径向核函数对应的特征空间) ,核函数提供了一种可行的计算方式,使得支持向量机能够有效地处理各种复杂的非线性分类问题 。

     图9 - 9

    左:把支持向量机应用在图9 - 8中的非线性数据上,选取的是自由度为3的多项式核函数,得到了更加合适的判别规则。

    右:使用径向核函数的支持向量机。这两种核函数的支持向量机都能够捕捉到决策边界。

    心脏数据的应用

    第8章用决策树等方法分析Heart数据,该数据有13个预测变量(如Age、Sex和Chol等),目标是预测个体是否患有心脏病,数据含297个样本观测,随机分为207个训练观测和90个测试观测。

    模型拟合与结果:

    先用LDA和支持向量分类器拟合训练观测,再用多项式核函数的支持向量机。

    图9 - 10左图是LDA和支持向量分类器对训练集预测结果的ROC曲线,两者表现不错,支持向量分类器效果更好。

    图9 - 10右图是支持向量机选取不同$\gamma$值的径向核函数的ROC曲线,$\gamma$值增加,拟合边界更非线性,$\gamma = 10^{-1}$时ROC曲线几乎完美,但这只是训练集结果。

    图9 - 11是测试集的ROC曲线,支持向量机在$\gamma = 10^{-3}$$\gamma = 10^{-2}$时分类效果可能比支持向量分类器好,且这三种都优于$\gamma = 10^{-1}$时SVM的分类效果,说明灵活方法虽能改善训练集分类效果,但不一定提升测试集效果 。

    图9 - 10 

     图9 - 11

    9.4 多分类的SVM

    到目前为止,所有的讨论都局限在二分类的情况,即两类别分类问题。

    如何把支持向量机(SVM)推广到更普遍的情况,即响应变量有任意多个不同类别的情况呢?

    人们发现SVM的基础,即分割超平面的概念,并不能自然地应用到类别数大于2的情况。尽管把SVM扩展到K类的情况的方法有很多,但是最普遍的两种方法是一类对一类(one - versus - one)的多分类支持向量机方法和一类对其余(one - versus - all)的多分类支持向量机方法。这里简要讨论这两种方法。

     “一类对一类”的分类方法

    使用SVM对样本进行分类,假设响应变量的类别数$K > 2$

    一类对一类(One - versus - one)分类方法,或称所有成对(all - pairs)分类方法需要构建$\binom{K}{2}$个SVM,每个SVM用来分隔两个类别。例如,其中一个SVM可能用来比较第$k$个类别(记为 +1类)和第$k'$个类别(记为 -1类)。

    使用所有$\binom{K}{2}$个SVM对一个测试观测进行分类,然后记录这个测试观测被分到每个类别的次数。

    这个测试观测的最终预测类别就是预测次数最多的那一类。

     “一类对其余”的分类方法

    “一类对其余”(one - versus - all)的多分类支持向量机方法,可以按以下思路理解:

    模型构建:

    假设有$K$个类别,就需要构建$K$个支持向量机(SVM)模型。

    每个模型都针对其中一个类别与其余所有类别进行区分。

    例如,第一个SVM模型会把第1类当作正类(标记为 +1),把剩下的第2类到第$K$类都当作负类(标记为 -1) ;第二个SVM模型把第2类当作正类,其余类别当作负类,依此类推,直到第$K$个SVM模型把第$K$类当作正类,其余当作负类。

    参数拟合:

    对于每个SVM模型,通过训练数据拟合出相应的参数。

    这些参数在公式

    $\beta_{0k}+\beta_{1k}x_{1}^{*}+\beta_{2k}x_{2}^{*}+\cdots+\beta_{pk}x_{p}^{*}$

    中表示,其中$k$代表第$k$个类别,$\beta_{0k}$是截距项,$\beta_{1k}$$\beta_{pk}$是与特征变量$x_{1}^{*}$$x_{p}^{*}$对应的系数。

    样本预测:

    当有一个新的测试样本$x^{*}$时,把它分别代入这$K$个SVM模型中进行计算,得到$K$个结果 。每个结果就是$\beta_{0k}+\beta_{1k}x_{1}^{*}+\beta_{2k}x_{2}^{*}+\cdots+\beta_{pk}x_{p}^{*}$在不同$k$值下的计算值。最终将这个测试样本归为计算结果最大的那个模型所对应的类别。

    简单来说,就是为每个类别都建立一个能区分它和其他所有类别的模型,新样本来了后看在哪个模型下得分最高,就把它归到哪一类。

    9.5 与logistic回归的关系

    这段内容围绕支持向量机(SVM)与逻辑斯谛回归的关系展开,具体如下:

    1. 公式形式关联

    SVM拟合支持向量分类器的公式可改写为:

    \[ \underset{\beta_{0},\cdots,\beta_{p}}{\text{minimize}}\left\{\sum_{i = 1}^{n}\text{max}[0,1 - y_if(x_i)]+\lambda\sum_{j = 1}^{p}\beta_{j}^{2}\right\} \]

    (9.25)

    该式呈现“损失函数 + 惩罚项”的形式,和逻辑斯谛回归等统计方法的形式:

    \[ \underset{\beta_{0},\cdots,\beta_{p}}{\text{minimize}}\{L(\mathbf{X},\mathbf{y},\beta)+\lambda P(\beta)\} \]

    (9.26)

    相似。式(9.25)中\(\lambda\sum_{j = 1}^{p}\beta_{j}^{2}\)类似岭回归惩罚项,用于平衡偏差和方差。

    其中,\(\lambda\)是调节参数,\(\lambda\)大时,\(\beta_1,\cdots,\beta_p\)小,能容忍更多穿过间隔的观测,模型偏差大、方差小;\(\lambda\)小时则相反。

    2. 损失函数对比

    SVM的损失函数为铰链损失:

    \[ L(\mathbf{X},\mathbf{y},\beta)=\sum_{i = 1}^{n}\text{max}\left[0,1 - y_i\left(\beta_0+\beta_1x_{i1}+\cdots+\beta_px_{ip}\right)\right] \]

    它和逻辑斯谛回归的损失函数相近。

    但SVM中,只有支持向量(即不满足 \(y_i(\beta_0 + \beta_1x_{i1}+\cdots+\beta_px_{ip})\geqslant1\) 的观测)影响分类器构建,因为满足该不等式的观测使损失函数值为0;而逻辑斯谛回归的损失函数对所有观测都不为0。

     3. 性能差异

    - 当不同类别观测能很好分离时,SVM性能优于逻辑斯谛回归。

    - 若不同类别存在较多重叠,逻辑斯谛回归更适用。

    4. 调节参数关键作用

    SVM中的调节参数(如式(9.15)中的 \(C\) 、式(9.25)中的 \(\lambda\) )并非无关紧要,它对模型拟合数据的程度影响重大,可决定模型是过拟合还是拟合不足。

    5. SVM与其他方法的联系及拓展

    - SVM不是唯一能用核函数适应非线性分类边界的方法,逻辑斯谛回归等也可使用,但SVM应用更广泛。

    - SVM可拓展到回归领域(支持向量回归),其原理是将间隔思想从分类器移植到回归中。与最小二乘回归(残差定义为 \(y_i-\beta_0-\beta_1x_{i1}-\cdots-\beta_px_{ip}\) ,通过最小化残差平方和找系数 )不同,支持向量回归通过特殊损失函数找系数。

    第十章 无指导学习(Unsupervised Learning)

    无指导学习(unsupervised learning)是一系列统计工具,旨在研究仅包含由n个观测组成的p个特征 \(X_1,X_2,\cdots,X_p\) 的情况,主要兴趣并非预测,因为数据中没有与之相关联的响应变量 \(Y\) 。

    它旨在发现数据中有价值的模式,常用于数据可视化以及在有指导学习方法之前对数据进行预处理 。例如癌症研究中分析乳腺癌病人基因表达水平、电商网站根据购物历史为购物者推荐商品、搜索引擎根据搜索历史归类人群并展示不同搜索结果等。

    与有指导学习相比,无指导学习更具挑战性,模型训练更倾向于主观性,验证机制也不够成熟。因为有指导学习可利用未用于模型拟合的观测数据检验响应变量 \(Y\) 的拟合效果,检查模型合理性,而无指导学习中无确切答案,无法检查模型合理性。 

    10.1 主成分分析 (Principal Components Analysis)

    1. 什么是主成分

    - 作为探索性数据分析的一部分,当要将p个特征 \(X_1,X_2,\cdots,X_p\) 上的n个观测可视化时,绘制二维散点图会产生 \(\frac{p(p - 1)}{2}\) 个散点图,当p很大时观察困难且可能无有价值的图,所以需要寻找更好的可视化方法。

    - PCA是一种寻找尽可能包含足够数据集变异信息的低维表示的方法。

    一组变量 \(X_1,X_2,\cdots,X_p\) 的第一主成分是变量标准化线性组合中方差最大的组合,即 \(Z_1=\phi_{11}X_1+\phi_{21}X_2+\cdots+\phi_{p1}X_p\) ,

    其中 \(\sum_{j = 1}^{p}\phi_{j1}^2 = 1\) , \(\phi_{j1}\) 是第一主成分的载荷。

    - 假定有一个 \(n\times p\) 维数据集 \(X\) ,且每个变量都经过中心化处理(均值为0),样本特征 \(z_{ij}\) 的线性组合为 \(z_{ij}=\phi_{1i}x_{1j}+\phi_{2i}x_{2j}+\cdots+\phi_{pi}x_{pj}\) ,第一主成分的载荷向量在满足 \(\sum_{j = 1}^{p}\phi_{j1}^2 = 1\) 条件下,使 \(\max_{\phi_{11},\cdots,\phi_{p1}}\{\frac{1}{n}\sum_{i = 1}^{n}(\sum_{j = 1}^{p}\phi_{j1}x_{ij})^2\}\) 。

    - 第一主成分的载荷向量 \(\phi_1 = (\phi_{11},\phi_{21},\cdots,\phi_{p1})^T\) 定义了数据变异最大的方向,将数据点投影到该方向上的投影值就是主成分的得分 \(z_{i1}\) 。第二主成分 \(Z_2\) 是与 \(Z_1\) 不相关的线性组合中方差最大的,且其载荷向量 \(\phi_2\) 与 \(\phi_1\) 垂直。

    2. 主成分的另一种解释

    - 主成分可以提供一个与观测最为接近的低维线性空间。第一主成分载荷向量是 \(p\) 维空间中一条最接近 \(n\) 个观测的线(用平均欧式距离度量接近程度) 。

    前 \(M\) 个主成分得分向量和载荷向量可以在 \(M\) 维欧式距离意义下为第 \(i\) 个观测 \(x_{ij}\) 提供最优近似,公式为

    \(x_{ij}\approx\sum_{m = 1}^{M}z_{im}\phi_{jm}\)

    (当 \(M=\min(n - 1,p)\) 时有明确表达式 \(x_{ij}=\sum_{m = 1}^{M}z_{im}\phi_{jm}\) )。

    - 例如图10 - 2展示了三维模拟数据集,前两个主成分张成的平面使每个点到该平面的距离平方和最小,前两个主成分得分向量给出了观测在平面上的投影坐标,其方差达到最大。

    3. 关于PCA的其他方面

    变量的标准化:

    进行PCA前变量应中心化(均值为0)(即让每个观测值减去该变量的均值),且是否标准化(每个变量乘不同常数)会影响结果。

    如在USArrests数据集中,Assault、Murder、Rape和UrbanPop这4个变量因量纲不同,若不标准化,第一主成分载荷向量会在方差大的变量(如Assault)上有很大权重。

    标准化是将每个变量的方差变为1,通常建议标准化,但在变量度量单位相同的特定情形下可不标准化,如测量基因表达水平时,若单位相同可不标准化。

    主成分的唯一性:

    在不考虑符号变化的情况下,每个主成分载荷向量是唯一的 ,不同软件计算出的主成分载荷向量差异仅在正负号上,且符号改变不影响分析,因为 \(Z\) 与 \(-Z\) 方差相同,用公式近似估计 \(x_{ij}\) 时,载荷向量和得分向量符号同时改变,二者乘积不变。

    方差的解释比例:

    第 \(m\) 个主成分的方差解释比率(PVE)公式为

    \(\frac{\frac{1}{n}\sum_{i = 1}^{n}z_{im}^2}{\frac{1}{n}\sum_{j = 1}^{p}\sum_{i = 1}^{n}x_{ij}^2}\)

    ,计算前 \(M\) 个主成分的累计PVE可对前 \(M\) 个PVE进行求和,一共有 \(\min(n - 1,p)\) 个主成分,它们的和为1。

    在USArrests数据中,第一主成分解释了数据的62.0%的方差,第二个主成分解释了24.7%的方差,前两个主成分一共解释了将近87%的方差。

    决定主成分的数量:

    一个 \(n\times p\) 维数据矩阵 \(X\) 有 \(\min(n - 1,p)\) 个不同主成分,但通常只需少数前几个主成分就可可视化和解释数据。

    可通过碎石图决定主成分数量,碎石图中出现肘点(elbow),即下一个主成分解释的方差比例突然减少的点,可作为选择主成分数量的参考,但该问题没有唯一答案,实际中常通过看前几个主成分寻找数据中有价值的模式 。

     图 10 - 4 左:碎石图用于表示从 USArrests 数据中得到的 4 个主成分方差的解释比率。右:从 USArrests 数据中得到的 4 个主成分的累计方差解释率。

    在有指导学习中用于回归的主成分得分向量数目选择可参照交叉验证等方法的调节参数对变量选择的结果。

    4. 主成分的其他用途

    在6.3.1节中提到,主成分得分向量可以被用作预测变量来进行回归分析。很多诸如回归、分类和聚类这样的统计技术都可以很容易地被应用到列向量是前 \(M \ll p\) 个主成分得分向量的 \(n\times M\) 矩阵中,而不是应用于整个 \(n\times p\) 数据矩阵,这样可以得到一个噪声较小的结果,因为数据集中的主要信号(而不是噪声)通常集中在少数几个主成分中。

    案例:USArrests数据集

    该数据集包含美国50个州中每100000个居民中因犯Assault(强暴)、Murder(谋杀)和Rape(强奸)3种罪而被逮捕的人数以及UrbanPop(各个州城镇居民的比例) 。主成分得分向量长度 \(n = 50\) ,主成分载荷向量的长度为 \(p = 4\) 。每个变量都经过标准化(均值为0且方差为1) 。

     图10 - 1 USArrests数据的前两个主成分。蓝色的州名代表了前两个主成分的得分。

    橙色箭头表明了前两个主成分的载荷向量(数轴为图上方和右侧的轴)。

    例如, Rape数据的第一主成分的载荷是0.54,它的第二主成分的载荷是0.17(Rape 这个词就是在点(0.54, 0.17)上)。这幅图就是双标图,因为它同时显示了主成分得分和主成分载荷

    - 从表10 - 1可知第一载荷向量在Assault、Murder和Rape这3个变量上的权重大致相等,在UrbanPop上权重相对较小,该主成分大致解释了严重罪行的总体犯罪率;第二主成分向量在UrbanPop上有较大权重,在其他3个变量上权重较小,大致刻画了每个州的城市化水平。

    - 通过主成分得分向量可看出各州之间的差异,如加利福尼亚州、内华达州和佛罗里达州在第一主成分上有较大正值,犯罪率较高;像北达科他州在第一主成分上取负值,犯罪率较低。加利福尼亚州在第二主成分上有较大得分,城市化水平较高;像密西西比州城市化水平相对较低。像印第安纳州在两个主成分上的值都趋于0,在犯罪率水平和城市化水平上大致处于中等水平。

     图10 - 3 USArrests数据的两个主成分的双标图。左:与图10 - 1相同,变量经过标准化。 右:用未经标准化的数据产生主成分,Assault变量在第一主成分上有明显的最大载荷,因为在这4个变量中它的方差最大。一般情况下,建议将变量标准化。

    - 图10 - 3展示了经过标准化和未经标准化数据生成的主成分双标图对比,可看出标准化对结果有实质性影响。

    - 图10 - 4给出了该数据集中每个主成分的PVE和累积PVE,左图为碎石图,可用于参考选择主成分数量 。

    10.2 聚类分析方法(Clustering Methods)

    聚类分析(clustering)是在数据集中寻找子群或类的技术,应用广泛。它将数据分割到不同类中,使类内观测相似,类间观测差异大。

    例如分析患乳腺癌病人的组织样本数据,可通过聚类寻找未知亚型。与主成分分析不同,主成分分析试图寻找观测的低维表示来解释大部分方差,而聚类分析试图从观测中寻找同质子类 。在市场研究中,可通过聚类分析对人群进行市场分割。

    K均值聚类

    1. 基本原理

    是把数据集分成K个不重复类的方法。

    需先确定类数K,其源于使类内差异尽可能小的数学问题。

    定义\(C_1, \cdots, C_K\)为每个类中包含观测指标的集合,满足\(C_1 \cup C_2 \cup \cdots \cup C_K = \{1, \cdots, n\}\)(每个观测属于K个类中至少一类)和\(C_k \cap C_{k'} = \varnothing\)(\(k \neq k'\),类与类无重叠) 。

    类内差异用\(W(C_k)\)度量,目标是解决最小化问题\(\text{minimize}\left\{\sum_{k = 1}^{K} W(C_k)\right\}\)(公式10.9)。

    通常用平方欧式距离定义类内差异\(W(C_k)=\frac{1}{|C_k|}\sum_{i,i' \in C_k}\sum_{j = 1}^{p} (x_{ij} - x_{i'j})^2\)(公式10.10),\(|C_k|\)是第k个类中观测的数量。

    结合可得\(\text{minimize}\left\{\sum_{k = 1}^{K} \frac{1}{|C_k|}\sum_{i,i' \in C_k}\sum_{j = 1}^{p} (x_{ij} - x_{i'j})^2\right\}\)(公式10.11) 。

    2. 算法步骤

     - 为每个观测随机分配1到K的数字作为初始类。

    - 重复操作直到类的分配停止:

    • 分别计算K个类的中心,第k个类中心是该类中p维观测向量的均值向量。
    • 将每个观测分配到距离其最近的类中心所在类中(用欧式距离定义“最近”)。

    3. 算法性质与结果

    该算法能保证每步结束后目标(公式10.11)的值减小,最终达到局部最优。结果依赖初始类分配,所以要从不同初始形态多次运行算法,选使目标值最小的方案。如在含150个二维观测的模拟数据案例中,用不同K值(K=2、3、4)聚类 。当K=3时,经多次迭代得到局部最优解,不同初始分配会得到不同局部最优解,需选择最优的,其中一种局部最优解的目标值为235.8 。

    4. 存在问题

    需预先确定类数K,但选择合适的K值较困难。

    系统聚类法

    1. 无需预设类数

    与K均值聚类不同,系统聚类法事先不需要规定类数K,还能输出谱系图展示各观测聚类关系。

    2. 谱系图解释

    以二维空间45个模拟数据为例,谱系图中每片叶子代表一个观测,沿着树向上,相近观测先汇入枝条,越往上枝条间观测差异越大。可通过在谱系图上水平切割确定类数,如高度为9切割得2个类,高度为5切割得3个类 。

    3. 算法步骤

    - 计算\(n\)个观测中所有\(C_{n}^{2} = \frac{n(n - 1)}{2}\)对数据间的相异度(常用欧式距离),将每个观测视为一类。

    - 令\(i = n, n - 1, \cdots, 2\) :

    • 在\(i\)个类中,比较任意两类相异度,找到最小相异度的一对类合并,用两类间相异度表示合并高度。
    • 计算剩下\(i - 1\)个新类间相异度。

    4. 类间相异度度量

    常用距离(linkage)概念,包括最长距离法(计算两类间最大观测相异度)、最短距离法(计算两类间最小观测相异度)、类平均法(计算两类间观测相异度平均值)、重心法(计算两类中心相异度)。类平均法和最长距离法更常用,因产生的谱系图类数较均衡;重心法可能出现倒置现象,导致绘制和解释谱系图困难 。

    5. 相异度指标选择

    不同指标影响谱系图,如欧式距离和基于相关性的距离。以网店零售商对顾客聚类为例,若用欧式距离,消费低的顾客可能被聚一起;用基于相关性的距离,偏好相似的顾客会被聚一起。同时,计算观测间相异性前,可能需对变量标准化,如购买频率不同的商品对相异度计算有不同影响 。

    聚类分析的实践问题

    1. 小策略影响大结论 

    - 需考虑观测或变量是否要标准化处理,如变量中心化或标准化为标准差为1。

    - 在K均值聚类中,要思考数据分成多少类合适,不同选择对结果影响大,且无统一标准,应尝试多种参数。

    2. 验证聚类的合理性

    对数据集聚类可能得到不同类,但需验证找到的类是否代表数据真性,可通过对独立观测集聚类看结果是否相似,或用给每个类一个p值的方式评估 。

    3. 其他考虑

    K均值和系统聚类会强制给每个观测分类,可能不适合小众子类的情况,因小众群内和与其他观测间差异都大。可使用混合模型(类似K均值聚类的温软版)。此外,聚类方法对受干扰数据处理效果不佳。

    4. 解释聚类结果

    聚类分析中参数选择影响结果,建议用不同参数多次聚类比较。聚类结果不是绝对真理,应作为科学假设和深入研究的起点 。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值