⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nippls.m

📁 有监督自组织映射-偏最小二乘算法(A supervised self-organising map–partial least squares algorithm),可以用语多变量数据的回归分析
💻 M
字号:
function [B,P] = NIPPLS(X, Y, LatVar)

[Nobj, NvarX] = size(X);
[Dummy, NvarY] = size(Y);
if NvarX < LatVar
    disp('too much latent variables selected');
    return;
end 
% Initialise zero valued matrices
P       = zeros(NvarX,LatVar); % 
Q       = zeros(NvarY,LatVar);
W       = zeros(NvarX,LatVar);
T       = zeros(Nobj,LatVar);
U       = zeros(Nobj,LatVar);
B       = zeros(1,LatVar);
% Scan PLS model for all latent variables
for lv = 1:LatVar
  [PN,QN,WN,TN,UN] = Nipals(X,Y);
  B(1,lv)   = UN'*TN/(TN'*TN);
  X        = X - TN*PN';          % deflate X matrix
  Y        = Y - B(1,lv)*TN*QN';  % deflate Y matrix
  T(:,lv)   = TN(:,1);            % replace loadings, scores and weights
  U(:,lv)   = UN(:,1);
  P(:,lv)   = PN(:,1);
  W(:,lv)   = WN(:,1);
  Q(:,lv)   = QN(:,1);
end

BCoeff=TransformBack(B, W, P, Q, LatVar);
if NvarY > 1
  for lv = 2:LatVar
    j   = (lv-1)*NvarY+1;
    k  = j-NvarY;
    BCoeff(j:lv*NvarY,:) = BCoeff(j:lv*NvarY,:) + BCoeff(k:(lv-1)*NvarY,:);
  end
else
  BCoeff = cumsum(BCoeff);
end
B=BCoeff(1+(LatVar-1)*NvarY:LatVar*NvarY,:)';   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -