No BSD License  

Highlights from
First-order multivariate calibration

image thumbnail
from First-order multivariate calibration by Alejandro Olivieri
Graphical interface for many multivariate calibration methods.

cval_arofmvc1
function cval_arofmvc1

load temp_values

set(k36_ipofmvc1,'Enable','on')
set(k36a_ipofmvc1,'Enable','on')

set(k39a_ipofmvc1,'Enable','off')
set(k39b_ipofmvc1,'Enable','off')
set(k39c_ipofmvc1,'Enable','off')
set(k39d_ipofmvc1,'Enable','off')


% ***********************************
%     Here start the calculations 
%     for cross-validation
% ***********************************

tic;
eval(['load ',ckname_ipofmvc1]);
ck_ipofmvc1=eval(strtok(ckname_ipofmvc1,'.'));
I_ipofmvc1=size(ck_ipofmvc1,1);

if datacal_ipofmvc1<2
   aaa_ipofmvc1=textread(calname_ipofmvc1,'%s');
   for i=1:I_ipofmvc1
      eval(['load ',aaa_ipofmvc1{i}])
   end
   if datacal_ipofmvc1==0
      eval(['R_ipofmvc1=',strtok(aaa_ipofmvc1{1},'.'),';']);
      for i=2:I_ipofmvc1
         R_ipofmvc1=[R_ipofmvc1,eval(strtok(aaa_ipofmvc1{i},'.'),';')];
      end
   elseif datacal_ipofmvc1==1
      eval(['R_ipofmvc1=',strtok(aaa_ipofmvc1{1},'.'),'(:,2);']);
      for i=2:I_ipofmvc1
         eval(['R_ipofmvc1=[R_ipofmvc1,',(strtok(aaa_ipofmvc1{i},'.')),'(:,2)];']);
      end
   end      
elseif datacal_ipofmvc1==2
   eval(['load ', Rname_ipofmvc1])
   R_ipofmvc1=eval(strtok(Rname_ipofmvc1,'.'));
end

I=I_ipofmvc1;clear I_ipofmvc1
R=R_ipofmvc1;clear R_ipofmvc1
ck=ck_ipofmvc1;clear ck_ipofmvc1

[J,I]=size(R);

%  Selects spectral regions

if size(reg_ipofmvc1,2)>0
   Rtemp=R;
   R=[];
   for i=1:size(reg_ipofmvc1,2)/2
      R=[R;Rtemp(reg_ipofmvc1(2*i-1):reg_ipofmvc1(2*i),:)];
   end
   clear Rtemp
end


%  Excludes samples from calibration

sam=ones(I,1);
for i=1:I
   for j=1:size(exccal_ipofmvc1,2)
      if i==exccal_ipofmvc1(j)
         sam(i)=0;
      end
   end
end
cktemp=ck;
Rtemp=R;
ck=[];
R=[];
for i=1:I
   if sam(i)==1
      ck=[ck;cktemp(i)];
      R=[R,Rtemp(:,i)];
   end
end
clear cktemp Rtemp

[J,I]=size(R);
s=[1:J];


% SNV if needed

if snv01_ipofmvc1==1
   for i=1:I
      delta=(max(R(:,i))-min(R(:,i)));
      R(:,i)=(R(:,i)-mean(R(:,i)))/delta;
   end
end

if snv11_ipofmvc1==1
   for i=1:I
      delta=(max(R(:,i))-min(R(:,i)));
      R(:,i)=(2*R(:,i)-max(R(:,i))-min(R(:,i)))/delta;
   end
end


% Spectral derivatives

if deriv_ipofmvc1>0
   x=[order_ipofmvc1,degree_ipofmvc1,npoints_ipofmvc1];
   sgrc_arofmvc1;
end

[J,I]=size(R);
s=[1:J];

R=R';

% Starts cross-validation

disp('    ');
disp('LEAVE-ONE-OUT CROSS VALIDATION')
disp('    ');
press=zeros(Amax_ipofmvc1+1,1);

% Method OSC/CLS

if met_ipofmvc1 == 9
   
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      skLS=Rcv*ckcv/norm(ckcv)^2;
      Aux=Rcv*ckcv;
      M=eye(J,J)-Aux*Aux'/(Aux'*Aux);
      Z=Rcv'*M;
      
      [a,b,c]=svd(Z',0);
      
      clear Z
      
      t=a*b;
      
      clear a
      
      la=diag(t'*t);
      clear t
      
      p=Rcv*c;
      for z=1:I-1
         if la(z)>0
            p(:,z)=p(:,z)/sqrt(la(z));
         end
      end
      Wq=M*p;
      
      clear M
      
      press(1)=press(1)+(ctemp)^2;
      for z=1:Amax_ipofmvc1
         pnas=eye(J)-Wq(:,1:z)*p(:,1:z)';
         snet=pnas'*skLS;
         bk=snet/(norm(snet)^2);
         d(z,map)=(bk'*pnas'*temp'-ctemp)^2;
         press(z+1)=press(z+1)+(bk'*pnas'*temp'-ctemp)^2;
      end
      clear Wq p
   end
   clear pnas
end



% Methods based on NAS calculations

if met_ipofmvc1 < 4
   
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      Rtemp=R';
      temp=Rtemp(:,map);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      meanr=sum(Rcv')/(I-1);
      meanc=sum(ckcv)/(I-1);
      if cent_ipofmvc1==1 
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr';
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      skLS=Rcv*ckcv/norm(ckcv)^2;
      
      % Method HLA/XS
      if met_ipofmvc1==1
         X1=[];
         X2=[];
         for i=1:I-1
            if ckcv(i)== 0 
               X1=[X1,Rcv(:,i)];
            else
               X2=[X2,Rcv(:,i)/ckcv(i)];
            end
         end	
         ix2=size(X2,2);
         meanx2=sum(X2')/ix2;
         X2=X2-meanx2'*ones(1,ix2);
         R1=[X1,X2];
         R1=R1';
      end
      
      % Method HLA/GO
      if met_ipofmvc1==2
         R1=Rcv'-ckcv*meanr/meanc;
      end
      
      % Method NAP/CLS
      if met_ipofmvc1==3
         R1=Rcv'-ckcv*skLS';
      end
      
      [u,S,v]=svd(R1',0);
      
      clear R1 S
      u=u(:,1:Amax_ipofmvc1);
      
      for A=0:Amax_ipofmvc1;
         if A==0		
            press(1)=press(1)+(ctemp)^2;
         else
            x=u(:,1:A);
            pnas=eye(J)-x*x';
            snet=pnas*Rcv*ckcv/norm(ckcv)^2;
            bk=snet/(norm(snet)^2);
            d(A,map)=(bk'*temp-ctemp)^2;
            press(A+1)=press(A+1)+(bk'*temp-ctemp)^2;
         end
         clear pnas
      end
   end
end

% Method PLS-1

if met_ipofmvc1 == 4
   
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      T=[];
      P=[];
      W=[];
      Wn=[];
      v=[];
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      for i=0:Amax_ipofmvc1;
         if i==0		
            press(1)=press(1)+(ctemp)^2;
         else
            W=Rcv*ckcv/(ckcv'*ckcv);
            Wn(:,i)=W/(sqrt(W'*W));
            T(:,i)=Rcv'*Wn(:,i);
            v(:,i)=T(:,i)'*ckcv/(T(:,i)'*T(:,i));
            P(:,i)=Rcv*T(:,i)/(T(:,i)'*T(:,i));
            Rcv=Rcv'-(T(:,i)*P(:,i)');
            Rcv=Rcv';
            ckcv=ckcv-(v(:,i)*T(:,i));
            bk=Wn(:,1:i)*inv(P(:,1:i)'*Wn(:,1:i))*v(:,1:i)';
            d(i,map)=(bk'*temp'-ctemp)^2;
            press(i+1)=press(i+1)+(bk'*temp'-ctemp)^2;
         end
      end
   end
end

% Method PCR

if met_ipofmvc1 == 5
   
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      [P,x,y]=svd(Rcv,0);
      for i=0:Amax_ipofmvc1;
         if i==0		
            press(1)=press(1)+(ctemp)^2;
         else
            Pa=P(:,1:i);
            Ta=Rcv'*Pa;
            v1a=pinv(Ta)*ckcv;
            bk=Pa*v1a;
            d(i,map)=(bk'*temp'-ctemp)^2;
            press(i+1)=press(i+1)+(bk'*temp'-ctemp)^2;
         end
      end
   end
end

% Method OSC/PLS

if met_ipofmvc1 == 6
   
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      T=[];
      P=[];
      W=[];
      Wn=[];
      v=[];
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      Aux=Rcv*ckcv;
      M=eye(J,J)-Aux*Aux'/(Aux'*Aux);
      Z=Rcv'*M;
      [a,b,c]=svd(Z',0);
      
      clear Z 
      
      t=a*b;
      
      clear a b
      
      la=diag(t'*t);
      p=Rcv*c;
      for z=1:I-1
         if la(z)>0
            p(:,z)=p(:,z)/sqrt(la(z));
         end
      end
      Wq=M*p;
      
      clear M t
      
      if Aext_ipofmvc1>0
         for z=1:Aext_ipofmvc1
            pnas=eye(J)-Wq(:,1:z)*p(:,1:z)';
         end
      else
         pnas=eye(J);
      end
      
      clear Wq p
      
      Rcv1=pnas'*Rcv;
      temp1=temp*pnas;
      ckcv1=ckcv;
      
      clear pnas
      
      for i=0:Amax_ipofmvc1;
         if i==0		
            press(1)=press(1)+(ctemp)^2;
         else
            W=Rcv1*ckcv1/(ckcv1'*ckcv1);
            Wn(:,i)=W/(sqrt(W'*W));
            T(:,i)=Rcv1'*Wn(:,i);
            v(:,i)=T(:,i)'*ckcv1/(T(:,i)'*T(:,i));
            P(:,i)=Rcv1*T(:,i)/(T(:,i)'*T(:,i));
            Rcv1=Rcv1'-(T(:,i)*P(:,i)');
            Rcv1=Rcv1';
            ckcv1=ckcv1-(v(:,i)*T(:,i));
            bk=Wn(:,1:i)*inv(P(:,1:i)'*Wn(:,1:i))*v(:,1:i)';
            d(i,map)=(bk'*temp1'-ctemp)^2;
            press(i+1)=press(i+1)+(bk'*temp1'-ctemp)^2;
         end
      end
   end
end

% Method NAP/PLS

if met_ipofmvc1 == 7
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      T=[];
      P=[];
      W=[];
      Wn=[];
      v=[];
      
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      skLS=Rcv*ckcv/norm(ckcv)^2;
      Rmk=Rcv'-ckcv*skLS';
      [u,S,vv]=svd(Rmk',0);
      if Aext_ipofmvc1>0
         for z=1:Aext_ipofmvc1
            pnas=eye(J)-u(:,1:z)*u(:,1:z)';
         end
      else
         pnas=eye(J);
      end
      
      Rcv1=pnas'*Rcv;
      temp1=temp*pnas;
      
      clear pnas
      
      ckcv1=ckcv;
      
      for i=0:Amax_ipofmvc1;
         if i==0		
            press(1)=press(1)+(ctemp)^2;
         else
            W=Rcv1*ckcv1/(ckcv1'*ckcv1);
            Wn(:,i)=W/(sqrt(W'*W));
            T(:,i)=Rcv1'*Wn(:,i);
            v(:,i)=T(:,i)'*ckcv1/(T(:,i)'*T(:,i));
            P(:,i)=Rcv1*T(:,i)/(T(:,i)'*T(:,i));
            Rcv1=Rcv1'-(T(:,i)*P(:,i)');
            Rcv1=Rcv1';
            ckcv1=ckcv1-(v(:,i)*T(:,i));
            bk=Wn(:,1:i)*inv(P(:,1:i)'*Wn(:,1:i))*v(:,1:i)';
            d(i,map)=(bk'*temp1'-ctemp)^2;
            press(i+1)=press(i+1)+(bk'*temp1'-ctemp)^2;
         end
      end
   end
end

% Method DOSC/PLS

if met_ipofmvc1 == 8
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      T=[];
      P=[];
      W=[];
      Wn=[];
      v=[];
      
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      skLS=Rcv*ckcv/norm(ckcv)^2;
      Rmk=Rcv-skLS*ckcv';
      [u,S,vv]=svd(Rmk,0);
      u=u(:,1:Aext_ipofmvc1);
      tmk=u'*Rmk;
      tmk=tmk';
      [u2,s2,v2]=svd(Rcv,0);
      u2=u2(:,1:Aaux_ipofmvc1);
      t2=Rcv'*u2;
      Rmas=u2*pinv(t2);
      rr=Rmas*tmk;
      pp=pinv(tmk)*Rcv';
      Rcv1=(Rcv'-Rcv'*rr*pp)';
      temp1=temp-temp*rr*pp;
      ckcv1=ckcv;
      
      for i=0:Amax_ipofmvc1;
         if i==0		
            press(1)=press(1)+(ctemp)^2;
         else
            W=Rcv1*ckcv1/(ckcv1'*ckcv1);
            Wn(:,i)=W/(sqrt(W'*W));
            T(:,i)=Rcv1'*Wn(:,i);
            v(:,i)=T(:,i)'*ckcv1/(T(:,i)'*T(:,i));
            P(:,i)=Rcv1*T(:,i)/(T(:,i)'*T(:,i));
            Rcv1=Rcv1'-(T(:,i)*P(:,i)');
            Rcv1=Rcv1';
            ckcv1=ckcv1-(v(:,i)*T(:,i));
            bk=Wn(:,1:i)*inv(P(:,1:i)'*Wn(:,1:i))*v(:,1:i)';
            d(i,map)=(bk'*temp1'-ctemp)^2;
            press(i+1)=press(i+1)+(bk'*temp1'-ctemp)^2;
         end
      end
   end
end

% Method DOSC/CLS

if met_ipofmvc1 == 10
   for map=1:I
      disp(['Sample left out = ',int2str(map),' of a total of ',int2str(I),' samples'])
      
      temp=R(map,:);
      Rcv=R';
      Rcv(:,map)=Rcv(:,I);
      Rcv=Rcv(:,1:I-1);
      ctemp=ck(map);
      ckcv=ck;
      ckcv(map)=ckcv(I);
      ckcv=ckcv(1:I-1);
      
      % MSC
      
      if msc_ipofmvc1==1
         meanr=sum(Rcv')/(I-1);
         espx=meanr-mean(meanr);
         espy=Rcv-mean(meanr);
         beta=espy'*pinv(espx);
         alpha=(1/J)*(sum(Rcv)-beta'*sum(meanr));
         Rcv=(Rcv-ones(J,1)*alpha)./(ones(J,1)*beta');
      end
      
      % Centers data
      
      if cent_ipofmvc1==1 
         meanr=sum(Rcv')/(I-1);
         meanc=sum(ckcv)/(I-1);
         Rcv=Rcv-meanr'*ones(1,I-1);
         temp=temp-meanr;
         ckcv=ckcv-ones(I-1,1)*meanc;
         ctemp=ctemp-meanc;
      end
      
      skLS=Rcv*ckcv/norm(ckcv)^2;
      Rmk=Rcv-skLS*ckcv';
      [u,S,vv]=svd(Rmk,0);
      u=u(:,1:Aext_ipofmvc1);
      tmk=u'*Rmk;
      tmk=tmk';
      
      [u2,s2,v2]=svd(Rcv,0);
      
      for i=0:Amax_ipofmvc1
         t2=Rcv'*u2(:,1:i);
         Rmas=u2(:,1:i)*pinv(t2);
         rr=Rmas*tmk;
         pp=pinv(tmk)*Rcv';
         Rcv1=(Rcv'-Rcv'*rr*pp)';
         temp1=temp-temp*rr*pp;
         
         if i==0		
            press(1)=press(1)+(ctemp)^2;
         else
            snet=Rcv1*pinv(ckcv)';
            bk=snet/norm(snet)^2;
            d(i,map)=(bk'*temp1'-ctemp)^2;
            press(i+1)=press(i+1)+(bk'*temp1'-ctemp)^2;
         end
      end
   end
end

format short e

% Calculates statistical parameters

sep=sqrt(press/I);
rep=100*sep/mean(ck);
r2=1-press/norm(ck-mean(ck)*ones(size(ck)))^2;
[mini,Amin]=min(press);
Fpract=[];
pro=[];
for i=1:Amax_ipofmvc1+1
   if i<=Amin
      Fpract(i)=press(i)/(mini);
      vec=[Fpract(i),I,I];
      pro(i)=1-prob_arofmvc1(vec);
   else
      Fpract(i)=0;
      pro(i)=0;
   end
end

% Check for outliers
criti=fcrt_arofmvc1([(100-level_ipofmvc1)/100,1,I]);
outliers=[];Ratio=[];
for i=1:Amax_ipofmvc1
   for j=1:I
      Fprac=(I-1)*d(i,j)/(sum(d(i,:))-d(i,j));
      if Fprac > criti;
         outliers(i,j)=1;
      else
         outliers(i,j)=0;
      end
      Ratio(i,j)=Fprac/criti;
   end
end

fac=0:Amax_ipofmvc1;


% Figures

if met_ipofmvc1==9
   metodo='OSC/CLS';
end
if met_ipofmvc1==1
   metodo='HLA/XS';
end
if met_ipofmvc1==2
   metodo='HLA/GO';
end
if met_ipofmvc1==3
   metodo='NAP/CLS';
end
if met_ipofmvc1==4
   metodo='PLS-1';
end
if met_ipofmvc1==5
   metodo='PCR';
end
if met_ipofmvc1==6
   metodo='OSC';
end
if met_ipofmvc1==7
   metodo='NAP/PLS';
end
if met_ipofmvc1==8
   metodo='DOCS/PLS';
end
if met_ipofmvc1==10
   metodo='DOCS/CLS';
end



format short e
resul1=[fac',press,Fpract',pro'];
resul2=[fac',sep,rep,r2];
disp('   ')
disp('            A     PRESS             F              p');
disp(resul1);
disp('   ')
disp('            A     SEP             REP%          R2 ');
disp(resul2);

% Saves results
if saveres_ipofmvc1 ==1
   resul=[resul1,resul2];
   save resul_cv.txt resul -ascii
end

elap=toc;
disp('   ')
disp('Total elapsed time (seconds): ')
disp(elap)

save temp_values fac press metodo sep I outliers Ratio d -append

figure(1)

Contact us at files@mathworks.com