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

📄 figmerit.m

📁 PLS_Toolbox是用于故障检测与诊断方面的matlab工具箱
💻 M
字号:
function [nas,nnas,sens,sel,nfnas] = figmerit(x,y,Rhat)
%FIGMERIT Analytical figures of merit for multivariate calibration
%  Calculates analytical figures of merit for PLS and PCR models.
%  The inputs are the preprocessed (usually centered and scaled)
%  spectral data (x), the preprocessed analyte data (y), and the
%  PCR or PLS approximation to x, (Rhat). Generally, Rhat is found
%  by multiplying the scores by the loadings from PLS or PCR, using
%  the number of LVs or PCs in the corresponding calibration model.
%  The outputs are the matrix of net analyte signals for each of the
%  spectra (nas), the norm of the net analyte signal for each sample
%  (nnas), the matrix of sensitivities for each sample (sens), the
%  vector of selectivities for each sample (sel), and the "noise
%  filtered" estimate of the net analyte signal (nfnas), which is
%  just the multiple of the regression vector that best fits the nas.
% 
%Example: given the 7 LV PLS model formed from
%  [b,ssq,p,q,w,t,u,bin] = pls(x,y,7);
%  Rhat = t*p';
%
%I/O: [nas,nnas,sens,sel,nfnas] = figmerit(x,y,Rhat);

%Copyright Eigenvector Research, Inc. 1997-98
%Barry M. Wise May 30, 1997
 
[mx,nx] = size(x);
nas = zeros(mx,nx);
nnas = zeros(mx,1);
sel = zeros(mx,1);
rhat = mean(Rhat(find(y>0),:));
[u,s,v] = svd(Rhat,0);
npcs = max(find((diag(s)/s(1,1)) > 1e-10));
Rhatinv = (u(:,1:npcs)*inv(s(1:npcs,1:npcs))*v(:,1:npcs)')';
chatk = Rhat*Rhatinv*y;
alpha = inv(rhat*Rhatinv*chatk);
Rhat_k = Rhat - alpha*chatk*rhat;
[u,s,v] = svd(Rhat_k);
Rhat_kinv = (u(:,1:npcs-1)*inv(s(1:npcs-1,1:npcs-1))*v(:,1:npcs-1)');
temp = Rhat_kinv'*Rhat_k;
temp = x*temp;
nas = x - temp;
if nargout > 4
  nfnas = Rhat - temp;
end
sens = nas;
for i = 1:mx
  nnas(i) = norm(nas(i,:));
  sel(i) = nnas(i)/norm(x(i,:));
  sens(i,:) = sens(i,:)/y(i);
end


⌨️ 快捷键说明

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