电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

完整word版-偏最小二乘回归MATLAB程序代码

完整word版-偏最小二乘回归MATLAB程序代码_第1页
1/6
完整word版-偏最小二乘回归MATLAB程序代码_第2页
2/6
完整word版-偏最小二乘回归MATLAB程序代码_第3页
3/6
偏最小二乘回归 MATLAB 程序代码单因变量function y=pls(pz)[row,col]=size(pz);aver=mean(pz);stdcov=std(pz); %求均值和标准差rr=corrcoef(pz); %求相关系数矩阵%data=zscore(pz); %数据标准化stdarr = ( pz - aver(ones(row,1),:) )./ stdcov( ones(row,1),:); % 标准化数据结果与 zscore()一致x0=pz(:,1:col-1);y0=pz(:,end); %提取原始的自变量、因变量数据e0=stdarr(:,1:col-1);f0=stdarr(:,end); %提取标准化后的自变量、因变量数据num=size(e0,1);%求样本点的个数temp=eye(col-1);%对角阵for i=1:col-1%以下计算 w,w*和 t 的得分向量, w(:,i)= ( e0'* f0 )/ norm( e0'*f0 ); t(:,i)=e0*w(:,i) %计算成分 ti 的得分 alpha(:,i)=e0'*t(:,i)/(t(:,i)'*t(:,i)) %计算 alpha_i ,其中(t(:,i)'*t(:,i))等价于 norm(t(:,i))^2 e=e0-t(:,i)*alpha(:,i)' %计算残差矩阵 e0=e; %计算 w*矩阵 if i==1 w_star(:,i)=w(:,i); else for j=1:i-1 temp=temp*(eye(col-1)-w(:,j)*alpha(:,j)'); end w_star(:,i)=temp*w(:,i); end %以下计算 ss(i)的值 beta=[t(:,1:i),ones(num,1)]\f0 %求回归方程的系数 beta(end,:)=[]; %删除回归分析的常数项 cancha=f0-t(:,1:i)*beta; %求残差矩阵 ss(i)=sum(sum(cancha.^2)); %求误差平方和%以下计算 press(i) for j=1:num t1=t(:,1:i);f1=f0; she_t=t1(j,:);she_f=f1(j,:); %把舍去的第 j 个样本点保存起来 t1(j,:)=[];f1(j,:)=[]; %删除第 j 个观测值 beta1=[t1,ones(num-1,1)]\f1; %求回归分析的系数 beta1(end,:)=[]; %删除回归分析的常数项 cancha=she_f-she_t*beta1; %求残差向量 press_i(j)=sum(cancha.^2); end press(i)=sum(press_i) if i>1 Q_h2(i)=1-press(i)/ss(i-1) else Q_h2(1)=1 end if Q_h2(i)<0.0985 fprintf('提出的成分个数 r=%d',i); r=i; break endendbeta_z=[t,ones(num,1)]\f0; %求标准化 Y 关于主成分得分向量 t 的回归系数beta_z(end,:)=[]; %删除常数项xishu=w_star*beta_z; %求标准化 Y 关于 X 的回归系数, 且是针对标准数据的回归系数,每一列是一个回归方程mu_x=aver(1:col-1);mu_y=aver(end);sig_x=stdcov(1:col-1);sig_y=stdcov(end);ch0=mu_y-mu_x./sig_x*sig_y*xishu; %计算原始数据的回归方程的常数项xish=xishu'./sig_x*sig_y; %计算原始数据的回归方程的系数...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

完整word版-偏最小二乘回归MATLAB程序代码

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部