
pcr与pls实验报告(第二稿).doc
17页PCA与PLS仿真报告1.实验目的1) 了解PCA和PLS的基本原理2) 利用Matlab程序语言建立真实线性和非线性数学模型,并利用PCR和PLS预估该模型,并计算对应的校正标准误差(SEC)、交叉检验标准误差(SECV)和预测标准误差(SEP),判断预估模型的准确性3) 分析噪声大小和样本矩阵线性关联对模型稳健性的影响2.算法介绍2.1 主成分分析(Principal Component Regression)主成分回归法(PCR)是采用多元统计中的主成分分析方法(Principal Component Analysis),先对输入矩阵X进行分解,然后选取其中的主成分来进行多元线性回归分析,故称之为主成分回归2.1.1主成分分析原理PCA将矩阵X(n×k)分解为k个向量的外积之和,即: (2-1)式中为得分向量(Score Vector);为载荷向量(Loading Vector)或称为主成分上式也可写成下列矩阵形式: (2-2)式中称为得分矩阵;称为载荷矩阵各个得分向量之间是正交的,各个载荷向量之间也是正交的,且每个载荷的向量长度都为1。
不难得出,此式说明了主成分分析的数学意义,即每个得分向量实际上是矩阵X在其对应载荷向量方向上的投影向量反映了矩阵X在方向的覆盖程度如果将得分向量按其长度做以下排列:则载荷向量代表矩阵变化(方差)最大的方向,与垂直并代表变化的第二大方向,代表X变化的最小的方向对进行主成分分析实际上等效于对的协方差矩阵进行特征向量分析矩阵的载荷向量实际上是矩阵的特征向量主成分分析与矩阵的奇异值分解(SVD)也是密切相关的奇异值分解法可将任意阶实数矩阵分解为三个矩阵的乘积,即: (2-3)式中为对角矩阵,是协方差矩阵特征值的平方根;和分别为标准列正交和标准行正交矩阵实际上,矩阵与矩阵的乘积等于主成分分析中的得分矩阵,矩阵则等于载荷矩阵矩阵的协方差矩阵的前f个特征值的和除以它的所有特征值之和,称为前f个主成分的累积贡献率,表示前f个主成分解释的数据变化占全部数据变化的比例选取主成分的个数取决于主成分的累计方差贡献率,通常使累计方差贡献率大于85%所需的主成分数能够代表原始变量所能提高的绝大部分信息2.1.2 主成分回归原理用矩阵X主成分分析得到的前f个得分向量组成矩阵,代替原始输入矩阵X进行多元线性回归(MLR),便得到了主成分回归模型: (2-4)B的最小二乘法解为: (2-5)在实际仿真中我们采用NIPALS迭代算法求取主成分,具体算法如下:(1)取中某列矢量作为的起始值:;(2)计算;(3)将归一化,;(4)计算,(5)比较新的与旧的,看是否满足收敛条件。
若满足收敛条件(),继续步骤(6),否则跳回步骤(2);(6)若已完成计算所需的主成分,则停止计算;否则计算残差阵: (7)用代替,返回步骤(1),求下一个主成分直到求取到所要求的主成分数时,算法停止利用NIPALS迭代算法对训练集矩阵训练集矩阵进行主元分析,得到载荷矩阵和得分矩阵,再根据式(2-5)求得,由此可求得预测集的预测Y值,具体公式如下: (2-6) 至此,主成分回归完成2.2 部分最小二乘法回归(Partial least squares regression)在PCR中,只对输入矩阵进行分解,消除无用的噪音信息同样,输出矩阵也包含无用信息,应对其作同样的处理,且在分解矩阵时应考虑矩阵的影响偏最小二乘法PLS就是基于以上思想提出的多元回归方法PLS的首先对输入矩阵和输出矩阵进行分解,其模型为: (2-7) (2-8)式中和分别为和矩阵的得分矩阵;和分别为和矩阵的载荷矩阵;和分别为和矩阵的PLS拟合残差矩阵。
PLS的第二步是将和作线性回归: (2-9) (2-10)在实际仿真中我们采用迭代算法求取主成分,具体算法如下:PLS2基本算式:(1)中的第一列;(2);(3)(4);(5);(6);(7);(8)如果收敛(收敛条件:)则转到(9)否则转到(2);(9)负载矢量:;(10)负载矢量:;(11)回归(对):;(12)残差:,;(13)计算下一维:转到(1),直到求得所需的维数 在PLS2的计算公式中若矩阵中只有一个目标变量,则PLS方法的整个计算将会简化,则算式为PLS1算法PLS1基本算式:(1);(2);(3);(4)回归(对):;(5)负载矢量:;(6)残差:,;(7)返回(1),开始下一维计算,直到求得所需维数 不论是PLS1算法还是PLS2算法,对训练集矩阵和训练集Y值矩阵进行计算即可得到对应载荷矩阵和X与Y的相关矩阵,再根据式(2-5)求得,由此可求得预测集的预测Y值,具体公式如下: (2-11) 至此,PLS回归完成。
三.输入共线性分析(岭回归) 设定输入数据矩阵中含有共线性量,则由多元线性回归求回归系数矩阵B时,算求取的对应行列式的值接近与0,对角线上的元素就会很大,因为有这样求得的回归系数的值的偏差较大,甚至无意义,因为可以看出当特征值有一个至少趋于0时,B与b的偏差很大解决上述问题,需用岭回归思想:当时,设想给加上一个正常数矩阵k(k>0), 为单位矩阵,那么接近奇异的可能性就会比接近奇异的可能性小得多,因为矩阵按大小排列的特征根为, 其中为矩阵按大小排列的特征根,当时,,因此用 (3-1)为回归系数的估计应比最小二乘估计稳定常数,且时,,可看作对的某种压缩具体算法实现如下:对中的数据矩阵,为100*1维的服从[0,1]上的均匀随机分布,用rand函数产生令随机噪声e服从[0,1]上均匀随机分布,噪声强度系数m=10,输出矩阵Y=X*b+m*e将随机矩阵,Y分成两部分,一部分为训练集,样本数为50;另一部分为预测集,样本数为50对训练集进行建模,用预测集对模型进行预测当K分别取1,100,10000,1000000时散点分布图如下:岭回归K(校正标准误差)SECR2(复相关系数)(留一法交叉检验误差 )SECVR2(复相关系数)10.5611-37.85230.05470.79131000.05320.76340.02080.8246100000.0051 0.99800.00630.985610000000.00490.99870.00420.9945讨论:上述岭回归图形和表格可以看出,当K取越大时,岭回归的回归精度越高。
实验过程中发现K取越大越好3.1 对岭回归模型进行预测用数据对模型进行预测,当K分别取1,100,10000,1000000时散点分布图如下:岭回归因子K(预测标准误差)SEP(复相关系数)R210.7388-53.51891000.1081 0.0965100000.00580.997010000000.0051 0.9982讨论:由上述岭回归预测图形和表格可以看出,当K越大时,岭回归预测模型精度越好发现的问题:岭回归得出的回归系数矩阵B与模型给定的系数b之间的误差较大3.2 随机噪声对岭回归回归模型的影响对岭回归进行回归噪声影响分析时,先设定岭回归因子K=10000,调节噪声强度系数m的值,观察m分别取5,10,20,50时回归分布图:讨论:由上图可以看出,噪声强度系数m取较小时,模型回归精确度比较好当噪声强度系数m越大时,岭回归的回归精度越差3.3 随机噪声对岭回归模型预测的影响对岭回归模型进行预测分析,令岭回归因子K=10000,调节噪声强度系数m的值,观察m分别取5,10,20,50时回归分布图:噪声强度系数(m)(预测标准误差)SEP(复相关系数)R250.00670.9951100.0115 0.9907200.02830.9479500.07060.5745讨论:由分布散点图和误差分析表格,可以看出,当噪声强度系数m取值较小时,岭回归预测精度较高,但当m取值越来越大时,岭回归预测精度变差。
四.模型估计以及误差分析4.1 线性模型进行PCA分析同样运用岭回归的数据,得到样本集,并将样本集分为两部分,一部分为训练集,样本数为50;另一部分为预测集,样本数为50对训练集进行建模,用预测集对模型进行预测根据和最初设定的主元数,以及NIPALS算法,可求得得分矩阵和载荷矩阵4.1.1 在不同主元下回归误差以及交叉检验误差计算该模型的回归误差和留一法交叉检验误差,并绘制对应散点图主元数(m)(校正标准误差)SECR2(复相关系数)(留一法交叉检验误差 )SECVR2(复相关系数)10.09850.84670.08760.804930.07670.92350.07550.915050.05010.99520.04490.990880.009 0.99660.00830.9942当主元数分别为1、3、5和8时,模型回归对应的散点图如下:4.1.2 对PCR模型进行预测将输入数据矩阵X分为两堆行列维数相同数据,分别为,,用来对模型进行预测,由NIPALS算法算出的得分向量和载荷向量,再根据式(2-6),即可求出预测集的值主元数m分别为1,3,5,8时,对应的散点分布图如下:主元数(m)(预测标准误差)SEP(复相关系数)R210.02370.952530.01620.976850.00900.989780.00760.9952150.00640.9970讨论:由模型预测分布散点图和预测误差表格可知,利用建模的主成分越多,模型预测精度越高。
但当主成分数和建模样本的组分数相近时,模型预测能力变差,基至不能利用其进行预测且实验发现对样本矩阵进行均值化处理的模型预测效果没有未进行均值化处理的效果好4.1.3 分析不同噪声水平对预测的影响 根据和最初设定的主元数8,以及NIPALS算法,可求得得分矩阵和载荷矩阵观察不同噪声强度m下的散点分布图:噪声强度系数m预测标准误差(SEP)复相关系数(R2)5。
