1、摘要在实际问题中,经常遇到需要研究两组多重相关变量间的相互依赖关系,并研究用一组变量(常称为自变量或预测变量)去预测另一组变量(常称为因变量或响应变量),除了最小二乘准则下的经典多元线性回归分析(MLR),提取自变量组主成分的主成分回归分析(PCR)等方法外,还有近年发展起来的偏最小二乘(PLS)回归方法。偏最小二乘回归提供一种多对多线性回归建模的方法,特别当两组变量的个数很多,且都存在多重相关性,而观测数据的数量(样本量)又较少时,用偏最小二乘回归建立的模型具有传统的经典回归分析等方法所没有的优点。偏最小二乘回归分析在建模过程中集中了主成分分析,典型相关分析和线性回归分析方法的特点,因此在分
2、析结果中,除了可以提供一个更为合理的回归模型外,还可以同时完成一些类似于主成分分析和典型相关分析的研究内容,提供更丰富、深入的一些信息。本文介绍偏最小二乘回归分析的建模方法;通过例子从预测角度对所建立的回归模型进行比较。关键词:主元分析、主元回归、回归建模1偏最小二乘回归原理考虑p个变量与m个自变量 的建模问题。偏最小二乘回归的基本作法是首先在自变量集中提出第一成分t(t是 的线性组合,且尽可能多地提取原自变量集中的变异信息);同时在因变量集中也提取第一成分u,并要求t与u相关程度达到最大。然后建立因变量与t的回归,如果回归方程已达到满意的精度,则算法中止。否则继续第二对成分的提取,直到能达到
3、满意的精度为止。若最终对自变量集提取r个成分,偏最小二乘回归将通过建立与的回归式,然后再表示为与原自变量的回归方程式,即偏最小二乘回归方程式。为了方便起见,不妨假定p个因变量与m个自变量均为标准化变量。因变量组和自变量组的n次标准化观测数据阵分别记为: 偏最小二乘回归分析建模的具体步骤如下:(1)分别提取两变量组的第一对成分,并使之相关性达最大。(2)假设从两组变量分别提出第一对t和u,t是自变量集,的线性组合:,u是因变量集的线性组合:。为了回归分析的需要,要求: t1和u1各自尽可能多地提取所在变量组的变异信息; t1和u1的相关程度达到最大。由两组变量集的标准化观测数据阵和,可以计算第一
4、对成分的得分向量,记为和:第一对成分和的协方差可用第一对成分的得分向量和的内积来计算。故而以上两个要求可化为数学上的条件极值问题:利用Lagrange乘数法,问题化为求单位向量和,使最大。问题的求解只须通过计算矩阵的特征值和特征向量,且M的最大特征值为,相应的单位特征向量就是所求的解,而可由计算得到。(3)建立,对的回归及,对的回归。假定回归模型为:其中分别是多对一的回归模型中的参数向量,和是残差阵。回归系数向量的最小二乘估计为:称为模型效应负荷量。(4)用残差阵和代替和重复以上步骤。记则残差阵。如果残差阵中元素的绝对值近似为0,则认为用第一个成分建立的回归式精度已满足需要了,可以停止抽取成分
5、。否则用残差阵和代替和重复以上步骤即得:分别为第二对成分的权数。而为第二对成分的得分向量。分别为X,Y的第二对成分的负荷量。这时有(5)设nm数据阵的秩为r0表示在主对角线上方,k0表示在主对角线下方。(在这对角线元素就是特征值i)val,ind=sort(val,descend);%降序排列ind表示据单下标换算出全下标w(:,i)=vec(:,ind(1);%提出最大值对应的特征向量w_star(:,i)=chg*w(:,i);%计算w*的取值(w*是最大特征值对应的特征向量w*)t(:,i)=e0*w(:%计算成分t的主元向量(T=E0*W*)p(48)(e0不是固定的在循环体内的)%第
6、三步建立回归模型,并估计主成分系数pi pi=e0*t(:,i)/(t(:,i),i);%计算第i个主成分系数向量pi =pi_i= E0*ti/(ti*ti) P(46)-(5-12)chg=chg*(eye(n)-w(:,i)*pi%计算w到w*的变换矩阵(w*为用为缩减的自变量数据矩阵X去求新的主元成分ti的对应的权值向量而wi为用为缩减的自变量数据矩阵X的残差矩阵Ei-1去求得ti对应的权值向量eye(n)=I ,I为单位向量)(下次循环用的)p(69) p(51)%计算数据残差Ei(作为初始矩阵计算下一个成分ti)e=e0-t(:;%计算残差矩阵e0=e;%将残差矩阵付给e0,再依次
7、计算下一个主成分(循环计算出所有主成分)%第四步PLS确定主元r个数采用交叉检验法确定,一般rm;%以下计算ss(i)的值即残差的平方和(全部样本的)%计算回归系数bi(因变量与主成分之间的系数)beta=t(:i),ones(num,1)f0;%求回归方程 的系数(全部样本的因变量与主成分之间的系数不是自变量),数据标准化,没有常数项e=ones(8,1)表示将一个8行1列且元素全为1的矩阵赋值给ebeta(end,:)=; %删除回归分析的常数项cancha=f0- t(:i)*beta;%求矩阵残差矩阵%(e(k)=y(k)-b*t)ss(i)=sum(sum(cancha.2);%求误差平方和%以下求press(i)因变量残差(去掉第j个样本后的预测误差)for j=1:numt1=t(:i);f1=f0;she_t=t1(j,:she_f=f1(j,:%把舍去的第j个样本点保存起来t1(j,:f1(j,:%删除第j个观测值beta1=t1,o
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1