• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-10
  • 语言: Matlab
  • 标签: matlab  pls  

资源简介

经过验证的matlab的PLS代码,直接输入样品的xo、y0和验证的样品X,即可直接输出Y,可以放心使用

资源截图

代码片段和文件信息


function [solQ_h2datarryww_startxishu]=pls(x0y0x)
pz=[x0y0];
mu=mean(pz);
sig=std(pz); %求均值和标准差
rr=corrcoef(pz); %求相关系数矩阵
data=zscore(pz); %数据标准化
n=size(x02);m=size(y02);num=size(x01); %n是自变量的个数,m是因变量的个数num是样本点的个数
e0=data(:1:n);f0=data(:n+1:end); %提取标准化后的自变量、因变量数据
chg=eye(n);%对角阵
for i=1:n
%以下计算 w,w*和 t 的得分向量,
matrix=e0‘*f0*f0‘*e0;
[vecval]=eig(matrix);
val=diag(val);
[valind]=sort(val‘descend‘);
w(:i)=vec(:ind(1));%提出最大特征值对应的特征向量
w_star(:i)=chg*w(:i);%计算w*的取值
t(:i)=e0*w(:i) %计算成分 ti 的得分
alpha=e0‘*t(:i)/(t(:i)‘*t(:i)) %计算 alpha_i
e=e0-t(:i)*alpha‘ %计算残差矩阵
e0=e;
%以下计算 ss(i)的值
beta=[t(:1:i)ones(num1)]\f0 %求回归方程的系数
beta(end:)=[]; %删除回归分析的常数项
cancha=f0-t(:1:i)*beta; %求残差矩阵
ss(i)=sum(sum(cancha.^2)); %求误差平方和
%以下计算 press(i)
for j=1:n

评论

共有 条评论