system: [SYSTEM]

user: 2. 最小二乘法、主成分分析法与偏最小二乘方法的数学原理 2.1. 最小二乘方法 最小二乘方法 [ 1 ] 能够对实际问题有比较好的解释，该方法的核心是所有估计值与被估计值之差的平方和达到最小。因变量向量用y表示，自变量向量为x。若只有一个因变量，则此时的最小二乘方法即为最简单形式的最小二乘的曲线拟合，给定m个合适的函数 r 1 ( x ) ， ⋯ ， r m ( x ) 及n组数据 { y ( i ) ， x ( i ) } i = 1 n ，其中 { y ( i ) ， x ( i ) } 表示因变量、自变量组 ( y ， x ) 的第i组值。为了方便，记 y ( i ) 为 y i 。选定适当的参数 ，得到曲线 y = β ¯ 0 + β ¯ 1 r 1 ( x ) + β ¯ 2 r 2 ( x ) + ⋯ + β ¯ n r m ( x ) ，s.t. L ( β ¯ 0 ， β ¯ 1 ， ⋯ ， β ¯ m ) ≜ min β i ， 0 ≤ i ≤ m ∑ j ( y ( j ) − ( β 0 + β 1 r 1 ( x ( j ) ) + β 2 r 2 ( x ( j ) ) + ⋯ + β m r m ( x ( j ) ) ) ) 2 . 在没有其他限制条件下， L ( β 0 ， β 1 ， ⋯ ， β m ) 关于 β i ( i = 1 ， 2 ， ⋯ ， m ) 的一阶偏导为0是得到 L ( β 0 ， β 1 ， ⋯ ， β m ) 的极小值的必要条件。选取参数 β i = β ¯ i ( i = 0 ， 1 ， ⋯ ， m ) 的数学工作原理如下： 令 Y = [ y 1 ， y 2 ， ⋯ ， y n ] T ， L ( β 0 ， ⋯ ， β m ) = ∑ j ( y j − ( β 0 + β 1 r 1 ( x j ) + β 2 r 2 ( x j ) + ⋯ + β m r m ( x j ) ) ) 2 ，分别求L关于 β i ( i = 0 ， ⋯ ， m ) 的偏导数，并令其为0，即 ∂ L ∂ β 0 = − 2 ∑ j ( y j − ( β 0 + β 1 r 1 ( x ( j ) ) + ⋯ + β i r i ( x ( j ) ) + ⋯ + β m r m ( x ( j ) ) ) ) = 0 ∂ L ∂ β i = − 2 ∑ j r i ( x ( j ) ) ( y j − ( β 0 + β 1 r 1 ( x ( j ) ) + ⋯ + β i r i ( x ( j ) ) + ⋯ + β m r m ( x ( j ) ) ) ) = 0   ( i = 1 ， 2 ， ⋯ ， m ) 计算可得 β = ( β ¯ 0 ， β ¯ 1 ， ⋯ ， β ¯ m ) = ( X T X ) − 1 ⋅ X T Y (1) 其中， X = [ 1 r 1 ( x ) ⋯ r m ( x ) ] = [ 1 r 1 ( x ( 1 ) ) ⋯ r m ( x ( 1 ) ) 1 r 1 ( x ( 2 ) ) ⋯ r m ( x ( 2 ) ) ⋮ ⋮ ⋱ ⋮ 1 r 1 ( x ( n ) ) ⋯ r m ( x ( n ) ) ] 。 选择合适的函数 r i ( x ) ( i = 1 ， 2 ， ⋯ ， m ) 并不容易，常简化曲线拟合为线性拟合或多项式拟合，最简单的模型为线性回归模型，即因变量y是自变量 x = ( x 1 ， x 2 ， ⋯ ， x n ) T 1的线性组合： m = n ，   y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n = β T ⋅ ( 1 ， x T ) ， 其中 β = ( β 0 ， β 1 ， ⋯ ， β n ) T . 给定n组数据 { y i ， x ( i ) T } i = 1 n ，   x ( i ) T = ( x i 1 ， ⋯ ， x i n ) ，待定的系数 β i ( i = 0 ， 1 ， ⋯ ， n ) 使得误差平方的叠加和最小，易得出 当 β = ( X T X ) − 1 ⋅ X T Y ≜ β ¯ 时， ∑ j ( y j − ( β 0 + β 1 x j 1 + β 2 x j 2 + ⋯ + β n x j n ) ) 2 其达到最小值，此时 y = β ¯ 0 + β ¯ 1 x 1 + β ¯ 2 x 2 + ⋯ + β ¯ n x n ， 其中 X = [ 1 x 1 ⋯ x n ] = [ 1 x 11 ⋯ x 1 n 1 x 21 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ 1 x n 1 ⋯ x n n ] ， 。 线性回归模型 y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n 是最简单的数据处理模型，不一定能够真正反映实际数据的内存规律；最小二乘方法涉及所有的变量，不同自变量数据之间可能存在全部或部分线性相关性关系，这时数据的有效信息可能不能直接体现出来。减少线性回归模型的变量的个数，但又不要丢弃太多的信息，主成分分析方法 [ 2 ] [ 3 ] 是可选方法之一。 2.2. 主成分分析法 针对不同自变量数据之间存在全部或部相关性关系，导致(1)式中 X T X 成为病态矩阵，不再适合用最小二乘方法，W.F. Massy [ 3 ] 提出了主成分回归(Principal Component Regression，简称PCR)方法。主成分分析的核心在于降维，将原有的多个性能指标(即多个自变量)减少为只含有少数几个综合性能指标。这些综合性能指标是原来的性能指标的线性组合，它们相互独立且集中反映出原始变量的较多信息，在选择综合性能指标时，一般通过信息量与原有信息量的百分比(如95%或更多、更少的百分比)来衡量。 设x是有n个随机变量组成的列向量2，研究它们所体现的信息，通常得计算出这n个随机变量的方差、协方差，找出这n个随机变量间有意义的相关性结构。然而若n较大，计算向量x的方差、协方差要花费比较多时间，除非n很小或者变量之间的相关性结构很简单，否则发现随机变量间的相关性结构比较困难。研究随机变量隐含的信息时，考虑研究一些维数远远低于n的派生变量，这些派生变量是原来变量的线性组合，它们保留了原来变量绝大部分信息，这样的派生变量称之为主成分。 主成分分析法中，寻找主成分的步骤如下3： 第一步：寻找第一个主成分，即找出x的一个线性组合 β 1 ，记为 β 1 ≜ α 1 T x ，其中 α 1 是一个n维列向量， α 1 = ( α 11 ， α 12 ， ⋯ ， α 1 n ) T ， x = ( x 1 ， x 2 ， ⋯ ， x n ) T ， var ( β 1 ) 为 β 1 的方差。 β 1 ≜ α 1 T x = α 11 x 1 + α 12 x 2 + ⋯ + α 1 n x n ， s.t. var ( β 1 ) 最大，且 α 1 T ⋅ α 1 = 1 。 第二步：寻找第二个主成分，也即寻找x的第二个线性组合 β 2 ，记为 β 2 ≜ α 2 T x ，其中 α 2 是一个n维列向量， α 2 = ( α 21 ， α 22 ， ⋯ ， α 2 n ) T ， ， β 2 ≜ α 2 T x = α 21 x 1 + α 22 x 2 + ⋯ + α 2 n x n ， s.t. var ( β 2 ) 最大，且 α 2 T ⋅ α 2 = 1 ， β 1 与 β 1 线性无关。 以此类推，直至找到线性关系 β k ，使其与 β 1 ， β 2 ， ⋯ ， β k − 1 线性无关且具有最大方差。至此，k个主成分找到了。 第三步：建立因变量与主成分的回归方程，其中最简单的是线性回归方程。可依据最小二乘回归得到数学模型。 获得主成分的数学推导过程描述如下。 两个随机变量具有线性无关性，是指两个随机变量之间的协方差为0。在寻找主成分前，先对随机变量的数值进行规范化处理，使得随机变量的均值为0，方差为1。设随机变量的向量x的协方差矩阵为 ∑ 。 对于第一主成分 β 1 ：利用Lagrange乘子法，构造Lagrange函数 L ( α 1 ) ≜ var ( β 1 ) − λ ( α 1 T α 1 − 1 ) = α 1 T ⋅ ∑ ⋅   α 1 − λ ( α 1 T α 1 − 1 ) ， 其中λ是Lagrange乘子，依据极值原理， ∂ L ( α 1 ) ∂ α 1 = 0 是在条件 α 1 T ⋅ α 1 = 1 时 var ( β 1 ) 的取得最大值的充要条件。上式两边对 α 1 求导，令其为0，即 1 2 ⋅ ∂ L ( α 1 ) ∂ α 1 = ∑ ⋅   α 1 − λ α 1 = ( ∑ −   λ ⋅ I n ) ⋅ α 1 = 0 ⇒ ∑ ⋅   α 1 = λ α 1 其中 I n 是n阶单位矩阵。显然λ是 ∑ 特征值， α 1 是相应的特征向量。由于 var ( β 1 ) = α 1 T ⋅ ∑ ⋅   α 1 = λ α 1 T α 1 = λ ，所以 max var ( β 1 ) = ( max λ ) α 1 T α 1 = ( max λ ) ≜ λ 1 。因此，第一主成分中出现的系数为协方差矩阵 ∑ 的最大特征值 λ 1 的特征向量 α 1 。 对于第二主成分 β 2 ：由于 β 1 ， β 2 线性无关，故 cov ( β 1 ， β 2 ) = α 1 T ⋅ ∑ ⋅   α 2 = 0 ，而 α 1 T ⋅ ∑ ⋅   α 2 = α 2 T ⋅ ∑ ⋅   α 1 = α 2 T ⋅ λ 1 α 1 = λ 1 α 2 T ⋅ α 1 = λ 1 α 1 T ⋅ α 2 = 0 ，从而有 α 1 T ⋅ ∑ ⋅   α 2 = α 2 T ⋅ ∑ ⋅   α 1 = 0 = α 2 T ⋅ α 1 = α 1 T ⋅ α 2 利用Lagrange乘子法，构造Lagrange函数 L ( α 2 ) ≜ var ( β 2 ) − λ ( α 2 T α 2 − 1 ) − γ ( α 2 T α 1 − 0 ) = α 2 T ⋅ ∑ ⋅   α 2 − λ ( α 2 T α 2 − 1 ) − γ ( α 2 T α 1 − 0 ) 上式两边对 α 2 求导，令其为0，即 1 2 ⋅ ∂ L ( α 2 ) ∂ α 2 = ∑ ⋅   α 2 − λ α 2 − γ α 1 = 0 (2) 两边左乘 α 1 T ，得 α 1 T ⋅ ∑ ⋅   α 2 − λ α 1 T ⋅ α 2 − γ α 1 T ⋅ α 1 = 0 ⇒ γ α 1 T ⋅ α 1 = 0 ⇒ γ = 0 代入(2)，得 ∑ ⋅   α 2 − λ α 2 = 0 ⇒ ∑ ⋅   α 2 = λ α 2 ，显然λ是 ∑ 的特征值， α 2 是相应的特征向量。由于 var ( β 2 ) = α 2 T ⋅ ∑ ⋅   α 2 = λ α 2 T α 2 = λ ，所以 max var ( β 2 ) = ( max λ ) α 2 T α 2 = ( max λ ) ≜ λ 2 。假设 ∑ 没有重根，则 λ 1 > λ 2 ， λ 2 是 ∑ 的第二大特征根，相应的特征向量 α 2 是第二主成分中出现的系数4。 类似地，可以依次从大到小求出 ∑ 的其它特征根及特征向量，找出相应的主成分，通常依据 ∑ i = 1 s | λ i | ∑ i = 1 t | λ i | ≥ 95 % or 90 % 确定从 ∑ 所有t个特征值 λ i ( i = 1 ， ⋯ ， t ) 中选取s个特征值 λ i ( i = 1 ， ⋯ ， s ) 。 2.3. 偏最小二乘法 偏最小二乘方法 [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] 是20世纪80年代从应用中总结出来的一种降维技术。偏最小二乘回归方法的一大优点是：考虑样本总体对预测值的影响程度时，也充分考虑了单个因素间的综合作用对预测的影响。在回归速率上，偏最小二乘方法比一般的多元回归方法更快一些，对样本的要求更加宽松。偏最小二乘回归方法可以看成是最小二乘回归、主成分方法及典型相关分析方法的综合体。 偏最小二乘方法的原理如下： 设X5是含有n个随机变量 x 1 ， x 2 ， ⋯ ， x n 组成的自变量的列向量，Y是含有一个或多个随机变量 y 1 ， y 2 ， ⋯ ， y q ( q ≥ 1 ) 的因变量的列向量。找出X的k个线性组合 β i ( i = 1 ， 2 ， ⋯ ， k ) ，这些线性组合满足主成分分析的要求；在Y中找出r个线性组合 τ i ( i = 1 ， 2 ， ⋯ ， r ) ，它们也满足主成分分析的要求。建立 β i 与 τ i 的回归关系，使它们之间的相关程度达到最大；并构造 β i 与 X ， Y 的回归关系，建立Y与X的回归关系。 偏最小二乘回归分析的步骤： 第一步：分别找出X与Y的第一主成分 β 1 ， τ 1 ，并且使 β 1 ， τ 1 的协方差 cov ( β 1 ， τ 1 ) 达到最大。 β 1 ≜ X T α 1 = α 11 x 1 + α 12 x 2 + ⋯ + α 1 n x n ， s.t. max var ( β 1 ) ， 且 α 1 T ⋅ α 1 = 1 . τ 1 ≜ Y T μ 1 = μ 11 y 1 + μ 12 y 2 + ⋯ + μ 1 q y q ， s.t. max var ( τ 1 ) ， 且 μ 1 T ⋅ μ 1 = 1 ; max cov ( β 1 ， τ 1 ) . 上述的方法在推导过程中，作了如下假定：1) 各变量的特征维数不大；2) 过程不存在序列相关性；3) 过程是线性的。以上方法中要求X及Y均已经作了预处理，使X及Y中心化、均值化。 第二步：先建立 β 1 与 τ 1 的回归关系： τ 1 = β 1 W T ，其中W为相应的权值；由 β 1 与X的线性回归方程及τ与Y的线性回归方程，得到 β 1 与Y的线性回归方程。 X = β 1 P T + E 1 ， Y = τ 1 Q T + F 1 ( 0 ) ， Y = β 1 R 1 T + F 1 当 E 1 ， F 1 ( 0 ) ， F 1 均为0时，显然有 P = X T ⋅ β 1 β 1 T ⋅ β 1 = X T ⋅ β 1 ‖ β 1 ‖ 2 ， Q = Y T ⋅ τ 1 τ 1 T ⋅ τ 1 = X T ⋅ τ 1 ‖ τ 1 ‖ 2 ， R 1 = Y T ⋅ β 1 β 1 T ⋅ β 1 = Y T ⋅ β 1 ‖ β 1 ‖ 2 ；一般地， E 1 ， F 1 ( 0 ) ， F 1 分别是这些回归方程的残差矩阵。 第三步：分别用 E 1 ， F 1 替换 X ， Y ，重复第一步~第二步，依次寻找X的第二主成分 β 2 。类似地，依次得到第三主成分 β 3 ，…，第d个主成分 β d 。 由第二步得到Y与X的主成分β的回归关系式： Y = β 1 R 1 T + β 2 R 2 T + β 3 R 3 T + ⋯ + β d R d T + F d ，利用第一步中的结果，容易得到Y与X的回归关系。 下面对第一步作详细分析，利用Lagrange乘子法求解 β 1 ， τ 1 。 令 ， 由于 cov ( β 1 ， τ 1 ) = α 1 T cov ( X ， Y ) μ 1 = α 1 T ( X T ⋅ Y ) μ 1 ， 所以 ， 依据极值原理， L ( α ， μ ) 关于 α ， μ 在边界上取得极大值的充要条件为相应的偏导数为0。下面分别对 α ， μ 求偏导，得 ∂ L ∂ α 1 = X T Y μ 1 − 2 λ 1 α 1 = 0 ⇒ X T Y μ 1 = 2 λ 1 α 1 ， (i) ∂ L ∂ μ 1 = Y T X α 1 − 2 λ 2 μ 1 = 0 ⇒ Y T X α 1 = 2 λ 2 μ 1 ， (ii) 所以由(i)，(ii)可得 ( X T Y ) ( Y T X ) α 1 = ( X T Y ) ⋅ ( 2 λ 2 μ 1 ) = 2 λ 2 ( X T Y ) ⋅ μ 1 = 2 λ 2 ( 2 λ 1 α 1 ) = 2 λ 2 ⋅ 2 λ 1 α 1 ( Y T X ) ( X T Y ) μ 1 = ( Y T X ) ⋅ ( 2 λ 1 α 1 ) = 2 λ 1 ( Y T X ) ⋅ α 1 = 2 λ 1 ( 2 λ 2 μ 1 ) = 2 λ 2 ⋅ 2 λ 1 μ 1 μ 1 T ⋅ ( Y T X ) α 1 = α 1 T ⋅ ( 2 λ 1 α 1 ) = 2 λ 1 ( α 1 T ⋅ α 1 ) = 2 λ 1 ⋅ ( Y T X ) α 1 = μ 1 T ⋅ ( 2 λ 2 μ 1 ) = 2 λ 2 μ 1 T ⋅ μ 1 = 2 λ 2 α 1 T ⋅ ( X T Y ) μ 1 = α 1 T ⋅ ( 2 λ 1 α 1 ) = 2 λ 1 ( α 1 T ⋅ α 1 ) = 2 λ 1 注意到 μ 1 T ⋅ ( Y T X ) α 1 = ( α 1 T ⋅ ( X T Y ) μ 1 ) T ⇒ 2 λ 2 = ( 2 λ 1 ) T = 2 λ 1 。 由此可得出， α 1 是矩阵 ( X T Y ) ( Y T X ) 的最大特征值所对应的特征向量，也是X的第一主成分 β 1 的系数部分； μ 1 是矩阵 ( Y T X ) ( X T Y ) 的最大的特征值所对应的特征向量，也是Y的第一主成分 τ 1 的系数。 采用PLS进行计算机处理数据时，常常通过迭代方式进行。在n维空间中任意选取一个非零列向量u (与列向量Y有相同的维数的向量)，PLS回归迭代过程包括6个步骤 [ 3 ] ： 1 )   w = X T u / ( u T u ) 4 )   c = Y T t / ( t T t ) 2 )   ‖ w ‖ → 1 ( w = w / ‖ w ‖ ) 5 )   ‖ c ‖ → 1 ( c = c / ‖ c ‖ ) 3 )   t = X w 6 )   u = Y c 如果Y是一维向量，我们用y表示Y，此时有 u = y ；当满足精确度要求时，迭代步骤停止。可以证明w是 α 1 的近似值，c为 μ 1 的近似值，说明如下： 设最初选取的非零向量为 u ( 0 ) ，第一次利用PLS的6个步骤的1) 3) 4) 6)得到的为 w ( 1 ) ， t ( 1 ) ， c ( 1 ) ， u ( 1 ) ；由 u ( k ) 利用PLS的6个步骤的1) 3) 4) 6)得到的为 w ( k + 1 ) ， t ( k + 1 ) ， c ( k + 1 ) ， u ( k + 1 ) w ( k + 1 ) = X T u ( k ) / ( u ( k ) T u ( k ) ) = X T Y c ( k ) / ( ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ) = X T Y Y T t ( k ) / ( ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ⋅ ( t ( k ) T t ( k ) ) ) = X T Y Y T X w ( k ) / ( ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ⋅ ( t ( k ) T t ( k ) ) ⋅ ‖ w ( k ) ‖ ) 所以 w ( k + 1 ) = X T Y Y T X ⋅ w ( k ) / ( ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ⋅ ( t ( k ) T t ( k ) ) ⋅ ‖ w ( k ) ‖ ) ( X T Y Y T X ) ⋅ w ( k ) = ( ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ⋅ ( t ( k ) T t ( k ) ) ⋅ ‖ w ( k ) ‖ ) ⋅ w ( k + 1 ) 类似地，有以下式子成立 c ( k + 1 ) = Y T X X T Y c ( k ) / ( ( t ( k + 1 ) T t ( k + 1 ) ) ⋅ ‖ w ( k + 1 ) ‖ ⋅ ( u ( k + 1 ) T u ( k + 1 ) ) ⋅ ‖ c ( k ) ‖ ) ∴ c ( k + 1 ) = Y T X X T Y c ( k ) / ( ( t ( k + 1 ) T t ( k + 1 ) ) ⋅ ‖ w ( k + 1 ) ‖ ⋅ ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ) ( Y T X ⋅ X T Y ) c ( k ) = ( ( t ( k + 1 ) T t ( k + 1 ) ) ⋅ ‖ w ( k + 1 ) ‖ ⋅ ( u ( k ) T u ( k ) ) ⋅ ‖ c ( k ) ‖ ) ⋅ c ( k + 1 )