版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——偏最小二乘法PLS回归NIPALS算法的Matlab程序及例子偏最小二乘法PLS回归NIPALS算法的Matlab程序及例子②
function[T,P,W,Wstar,U,b,C,B_pls,...
Bpls_star,Xori_rec,Yori_rec,...
R2_X,R2_Y]=PLS_nipals(X,Y,nfactor)
%USAGE:[T,P,W,Wstar,U,b,C,Bpls,Bpls_star,Xhat,Yhat,R2X,R2Y]=PLS_nipals(X,Y,nfact)%PLSregressionNIPALSalgorithmPLS回归NIPALS算法
%ComputethePLSregressioncoefficientsPLS回归系数的计算%X=T*P'Y=T*B*C'=X*BplsXandYbeingZ-scores%B=diag(b)
%Y=X*Bpls_starwithXbeingaugmentedwithacolofones%andYandXhavingtheiroriginalunits%T'*T=I(NBnormalizationSAS)%W'*W=I%
%TestforPLSregression
%HerveAbdiNovember2002/revNovember2004%%
%VersionwithT,W,andCbeingunitnormalized%U,Parenot
%nfact=numberoflatentvariablestokeep保持潜在变量的数量%default=rank(X)
X_ori=X;Y_ori=Y;
ifexist('nfactor')~=1;nfactor=rank(X);endM_X=mean(X);M_Y=mean(Y);S_X=std(X);S_Y=std(Y);X=zscore(X);Y=zscore(Y);[nn,np]=size(X);[n,nq]=size(Y);ifnn~=n;
error(['Incompatible#ofrowsforXandY']);end
%Precisionforconvergenceepsilon=eps;
%#ofcomponentskepts%Initialistion%TheYset
U=zeros(n,nfactor);
C=zeros(nq,nfactor);%TheXset
T=zeros(n,nfactor);P=zeros(np,nfactor);W=zeros(np,nfactor);b=zeros(1,nfactor);R2_X=zeros(1,nfactor);R2_Y=zeros(1,nfactor);Xres=X;Yres=Y;
SS_X=sum(sum(X.^2));SS_Y=sum(sum(Y.^2));forl=1:nfactor
t=normaliz(Yres(:,1));
t0=normaliz(rand(n,1)*10);u=t;
nstep=0;
maxstep=100;
while(((t0-t)'*(t0-t)>epsilon/2)nstep=nstep+1;
disp(['LatentVariable#',int2str(l),'Iteration#:',int2str(nstep)])t0=t;
w=normaliz(Xres'*u);t=normaliz(Xres*w);%t=Xres*w;
c=normaliz(Yres'*t);
u=Yres*c;end;
disp(['LatentVariable#',int2str(l),',convergencereachedatstep',...int2str(nstep)]);%Xloadingsp=Xres'*t;%bcoef
b_l=((t'*t)^(-1))*(u'*t);b_1=u'*t;
%Storeinmatricesb(l)=b_l;P(:,l)=p;W(:,l)=w;T(:,l)=t;U(:,l)=u;C(:,l)=c;
%deflationofXandYXres=Xres-t*p';
Yres=Yres-(b(l)*(t*c'));
R2_X(l)=(t'*t)*(p'*p)./SS_X;
R2_Y(l)=(t'*t)*(b(l).^2)*(c'*c)./SS_Y;end
%Yhat=X*B_pls;X_rec=T*P';
Y_rec=T*diag(b)*C';%Y_residual=Y-Y_rec;
%%BringbackXandYtotheiroriginalunits%
Xori_rec=X_rec*diag(S_X)+(ones(n,1)*M_X);Yori_rec=Y_rec*diag(S_Y)+(ones(n,1)*M_Y);
%Unscaled_Y_hat=Yhat*diag(S_Y)+(ones(n,1)*M_Y);%TheWstartweightsgivesT=X*Wstar%
Wstar=W*inv(P'*W);B_pls=Wstar*diag(b)*C';
%%Bpls_starY=[1|1|X]*Bpls_star
%Bpls_star=[M_Y;[-M_X;eye(np,np)]*diag(S_X.^(-1))*B_pls*diag(S_Y)]Bpls_star=[[-M_X;eye(np,np)]*diag(S_X.^(-1))*B_pls*diag(S_Y)];Bpls_star(1,:)=Bpls_star(1,:)+M_Y;%%%%%%%%%%%%%Functions
Here%%%%%%%%%%%%%%%%%%%%%%%function[f]=normaliz(F);%USAGE:[f]=normaliz(F);
%normalizesendbackamatrixnormalizedbycolumn%(i.e.,eachcolumnvectorhasanormof1)[ni,nj]=size(F);
v=ones(1,nj)./sqrt(sum(F.^2));f=F*diag(v);
functionz=zscore(x);
%USAGEfunctionz=zscore(x);
%givesbackthez-normalizationforx
%ifXisamatrixZisnormalizedbycolumn%Z-scoresarecomputedwith
%samplestandarddeviation(i.e.N-1)%seezscorepop[ni,nj]=size(x);m=mean(x);s=std(x);
un=ones(ni,1);
z=(x-(un*m))./(un*s);应用例子
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%example_pls.m:PLSexample%RM3Fall2023
%November162023%
%Thisscriptshowshowtorun%aPartialleastsquareregression%(PLS).
%NeedPrograms:PLS_nipalsplotxyha%Theexampleisthe
%WineexamplefromAbdiH.(2023)%S/~herve
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clearclc;
disp(['ExampleofaPLSprogram.SeeAbdiH.(2023)']);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%************************************************************%%->Thisisyourtitle.
%%->Changeittofityourdataze_title=['PLS.Wines.'];
%%**********************************************************%%ThisisthedatamatrixofthePredictors(IV)%%->ChangeitforyourexampleX=[...
7713743147
105125167113133103];
%%%getthe#ofrowsand
columns%%%%%%%%%%%%%%%%%%%%%%%%%%[nI,nJ]=size(X);
%************************************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%->Theseareyourpredictorsnames.%->Changethemtofityourdata
%YouneedasmanynamesasmcXhascolumnsn=0;
%
n=n+1;nom_x(n)={'Price'};n=n+1;nom_x(n)={'Sugar'};n=n+1;nom_x(n)={'Alcohol'};n=n+1;nom_x(n)={'Acidity'};
%%%Testthe#ofcolumsnamesifnJ~=n;
erreur(['Error->(Wrong#ofcolumnnames)!']);end
%%***********************************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%->Theseareyourobservationsnames.%->Changethemtofityourdatal=0;
l=l+1;nom_r{l}={'W_1'};l=l+1;nom_r{l}={'W_2'};l=l+1;nom_r{l}={'W_3'};l=l+1;nom_r{l}={'W_4'};l=l+1;nom_r{l}={'W_5'};ifnI~=l;
erreur(['Error->(Wrong#ofrownames)!']);end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械设计工程师操作技巧指导书
- 智能物流系统车辆调度与路径优化方案研究与实践
- 目标提高交通安全意识警钟长鸣防意外小学主题班会课件
- 严谨网络安全护航网络成长小学1-6年级主题班会课件
- 危重患者的护理未来发展趋势
- 小学主题班会课件:诚信为本立身之道,厚德载物成长之基
- 2026年河南省新乡市事业单位人员招聘考试参考试题及答案详解
- 2026年黄山市黄山区事业单位人员招聘笔试参考试题及答案详解
- 2026年黄石市黄石港区事业单位人员招聘考试模拟试题及答案详解
- 2026年鹤岗市向阳区事业单位人员招聘考试备考题库及答案详解
- 水电站运行人员考试题及答案(教学参考)
- 2026年营养师《公共营养》测试卷(含答案)专项训练
- 2026年甘肃省三支一扶招聘考试(1800人)考试参考题库及答案详解
- 初中八年级历史《民族团结与祖国统一》单元整体导学案
- 2026年7月自考13811绩效管理押题及答案
- 2026年云南校长职级模拟题库及参考答案详解(综合题)
- 党委2026年第二季度党风廉政建设工作情况报告
- 2026江苏苏州市相城区区属国有企业招聘工作人员38人考试备考试题及答案解析
- 呼和浩特市2026年初三年级第二次模拟考试道德与法治试卷(含答案)
- 中国邮政集团笔试试题及答案
- 小学六年级英语下册Unit 1 The Lion and the Mouse趣味练习与复习课教案
评论
0/150
提交评论