偏最小二乘法matlab编程.doc_第1页
偏最小二乘法matlab编程.doc_第2页
偏最小二乘法matlab编程.doc_第3页
偏最小二乘法matlab编程.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、起源与发展 偏最小二乘法(partial least squares method,PLS)是一种新型的多元统计数据分析方法,它于1983年由伍德(S.Wold)和阿巴诺(C.Albano)等人首次提出。其实在早在70年代伍德(S.Wold)的父亲H Wold便在经济学研究中引入了偏最小二乘法进行路径分析,创建了非线性迭代偏最小二乘算法(Nonlinear Iterative Partial Least Squares algorithm,NIPALS),至今仍然是PLS中最常用和核心的算法。PLS在20世纪90年代引入中国,在经济学、机械控制技术、药物设计及计量化学等方面有所应用,但是在生物医学上偏最小二乘法涉及相对较少。对该方法的各种算法和在实际应用中的介绍也不系统,国内已有学者在这方面做了一些努力,但作为一种新兴的多元统计方法,还不为人所熟知。 PLS是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小。通常用于曲线拟合。有人用下式来形容PLS:偏最小二乘回归多元线性回归分析典型相关分析主成分分析 二、特点:与传统多元线性回归模型相比,偏最小二乘回归的特点是:(1) 能够在自变量存在严重多重相关性的条件下进行回归建模;(2) 允许在样本点个数少于变量个数的条件下进行回归建模;(3) 偏最小二乘回归在最终模型中将包含原有的所有自变量;(4) 偏最小二乘回归模型更易于辨识系统信息与噪声(甚至一些非随机性的噪声);(5) 在偏最小二乘回归模型中,每一个自变量的回归系数将更容易解释。 偏最小二乘法的Matlab源码(2008-09-21 09:31:21)所谓偏最小二乘法,就是指在做基于最小二乘法的线性回归分析之前,对数据集进行主成分分析降维,下面的源码是没有删减的/greensim)。 function y5,e1,e2=PLS(X,Y,x,y,p,q) % 偏最小二乘回归的通用程序 % 注释以“基于近红外光谱分析的汽油组分建模”为例,但本程序的适用范围绝不仅限于此 % % 输入参数列表 % X 校正集光谱矩阵,nk的矩阵,n个样本,k个波长 % Y 校正集浓度矩阵,nm的矩阵,n个样本,m个组分 % x 验证集光谱矩阵 % y 验证集浓度矩阵% p X的主成分的个数,最佳取值需由其它方法确定% q Y的主成分的个数,最佳取值需由其它方法确定 % 输出参数列表 % y5 x对应的预测值(y为真实值) % e1 预测绝对误差,定义为e1=y5-y % e2 预测相对误差,定义为e2=|(y5-y)/y| % 第一步:对X,x,Y,y进行归一化处理n,k=size(X); m=size(Y,2); Xx=X;x; Yy=Y;y; xmin=zeros(1,k); xmax=zeros(1,k); for j=1:k xmin(j)=min(Xx(:,j); xmax(j)=max(Xx(:,j); Xx(:,j)=(Xx(:,j)-xmin(j)/(xmax(j)-xmin(j); end ymin=zeros(1,m); ymax=zeros(1,m); for j=1:m ymin(j)=min(Yy(:,j); ymax(j)=max(Yy(:,j); Yy(:,j)=(Yy(:,j)-ymin(j)/(ymax(j)-ymin(j);end X1=Xx(1:n,:); x1=Xx(n+1):end,:);Y1=Yy(1:n,:); y1=Yy(n+1):end,:); % 第二步:分别提取X1和Y1的p和q个主成分,并将X1,x1,Y1,y1映射到主成分空间 CX,SX,LX=princomp(X1); CY,SY,LY=princomp(Y1); CX=CX(:,1:p); CY=CY(:,1:q); X2=X1*CX; Y2=Y1*CY; x2=x1*CX; y2=y1*CY; % 第三步:对X2和Y2进行线性回归 B=regress(Y2,X2,0.05);%第三个输入参数是显著水平,可以调整 % 第四步:将x2带入模型得到预测值y3y3=x2*B; % 第五步:将y3进行“反主成分变换”得到y4 y4=y3*pinv(CY); % 第六步:将y4反归一化得到y5 for j=1:m y5(:,j)=(ymax(j)-ymin(j)*y4(:,j)+ymin(j); end % 第七步:计算误差 e1=y5-y; e2=abs(y5-y)./y); function MD,ERROR,PRESS,SECV,SEC=ExtraSim1(X,Y)% 基于PLS方法的进一步仿真分析 % 功能一:计算MD值,以便于发现奇异样本 % 功能二:计算各种p取值情况下的ERROR,PRESS,SECV,SEC值,以确定最佳输入变量个数 n,k=size(X); m=size(Y,2); pmax=n-1; q=m; ERROR=zeros(1,pmax); PRESS=zeros(1,pmax); SECV=zeros(1,pmax); SEC=zeros(1,pmax); XX=X; YY=Y; N=size(XX,1); for p=1:pmax disp(p); Err1=zeros(1,N);%绝对误差 Err2=zeros(1,N);%相对误差 for i=1:N disp(i); if i=1 x=XX(1,:); y=YY(1,:); X=XX(2:N,:); Y=YY(2:N,:); elseif i=N x=XX(N,:); y=YY(N,:); X=XX(1:(N-1),:); Y=YY(1:(N-1),:); else x=XX(i,:); y=YY(i,:); X=XX(1:(i-1),:);XX(i+1):N,:); Y=YY(1:(i-1),:);YY(i+1):N,:); end y5,e1,e2=PLS(X,Y,x,y,p,q); Err1(i)=e1; Err2(i)=e2; end ERROR(p)=sum(Err2)/N; PRESS(p)=sum(Err1.2); SECV(p)=sqrt(PRESS(p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论