📄 nippls.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 + -