
%computing the linear discriminant function with FPCA (Fig. 7 supplemental material)


%Three groups


load Fl15


cxyz=[];



nrep=28;

%grupos: 1 control, 2 dcl, 3 enfermo
g=[repmat(1,1,12) repmat(2,1,6) repmat(3,1,10)];

grupo=g;



for i=1:nrep
    
    r=find(Fl(i).x); %son los distintos de cero
    s=find(Fl(i).y);
    t=find(Fl(i).z);
    cxyz=[cxyz; Fl(i).x(r)' Fl(i).y(s)' Fl(i).z(t)'];
    
end

xmi=cxyz;

ni=8;
 [co, sc, la] = princomp(cxyz) ;
coica=sc(:,1:ni);


%dlmwrite('pca8i.txt',coica);

%%
%in R
%library(MASS)

%dd=read.table('pca8i.txt',sep=',')
%grupo=c(rep(1,12),rep(2,6),rep(3,10))
%
%
% z <- lda(grupo~as.matrix(dd))
%

                       
ccd=[ -0.12185011  0.86889963 0.04346392  -0.07224460 ... 
 0.21777794  -0.18626150   0.07479963  -0.26963544  ];

%coeficiente discriminantes,92.91 % varianza primera función discriminante


alfa=ccd*co(:,1:ni)';


%Figures (included Fig. 5 supplementaary material)

load unitsphere2562.mat
load Fl15

averagei=SPHARMaverage(Fl,sphere, 15,0);


 r=find(Fl(1).x); %donde colocar los no ceros

%media -2*alfa
f=-2;
 [averagecompo,averagecompovf]=dibujopca(Fl,sphere, 15,0, [f f f],1,alfa,r);


scale=10;
dibujopcavector(averagei,averagecompovf,sphere, 15,0,scale);


dibujopcacolor2(averagei,averagecompovf)



lighting none
 
 view(142.5,-30)
lighting none


   %%%%%%%%%%%
   % CN-MCI
   
   xmi=xmi(1:18,:);

   cxyz=[];


 
    
%grupos: 1 control, 2 dcl, 3 enfermo
g=[repmat(1,1,12) repmat(2,1,6) repmat(3,1,10)];



nrep=18;

for i=1:nrep
    
    r=find(Fl(i).x); %son los distintos de cero
    s=find(Fl(i).y);
    t=find(Fl(i).z);
    
    cxyz=[cxyz; Fl(i).x(r)' Fl(i).y(s)' Fl(i).z(t)'   ];
    
end


ni=5;
 [co, sc, la] = princomp(cxyz) ;
coica=sc(:,1:ni);


%dlmwrite('pca5i.txt',coica);




%in R
%#función discriminante
%library(MASS)
%
%dd=read.table('pca5i.txt',sep=',')
%grupo=c(rep(1,12),rep(2,6))
%
% z <- lda(grupo~as.matrix(dd))


%única función discriminante. The discriminant function

ccd=[ -0.1598142   0.2733201  -0.4942570  -0.1158107 -0.3261123 ];


alfa=ccd*co(:,1:ni)';

%Figures

load unitsphere2562.mat
load Fl15

Fl=Fl(1:18,:);

averagei=SPHARMaverage(Fl,sphere, 15,0);


 r=find(Fl(1).x); %donde colocar los no ceros

%media -2*alfa
f=2;
 [averagecompo,averagecompovf]=dibujopca(Fl,sphere, 15,0, [f f f],1,alfa,r);


scale=3;
dibujopcavector(averagei,averagecompovf,sphere, 15,0,scale);
view(15,76)
%camlight;
%lighting gouraud

dibujopcacolor2(averagei,averagecompovf)

lighting none

dibujopcacolor2(averagei,averagecompovf)
view(134,-22)
lighting none



%%%%%%%%%%%%
%MCI-AD

load Fl15


cxyz=[];



nrep=28;

%grupos: 1 control, 2 dcl, 3 enfermo
g=[repmat(2,1,6) repmat(3,1,10)];

grupo=g;



for i=1:nrep
    
    r=find(Fl(i).x); %son los distintos de cero
    s=find(Fl(i).y);
    t=find(Fl(i).z);
    cxyz=[cxyz; Fl(i).x(r)' Fl(i).y(s)' Fl(i).z(t)'];
    
end

xmi=cxyz;

        
        
        
cxyz=xmi(13:28,:);

ni=3;

lni=ni;

 [co, sc, la] = princomp(cxyz) ;
coica=sc(:,1:ni);


%dlmwrite('pca3i.txt',coica);




%in R
%#función discriminante
%library(MASS)
%
%dd=read.table('pca3i.txt',sep=',')
%grupo=c(rep(2,6),rep(3,10))
%
%
% z <- lda(grupo~as.matrix(dd))


%única función discriminante. The discriminant function

ccd=[  -0.04318915 -0.16389893    0.41746352 ];


alfa=ccd*co(:,1:ni)';



load unitsphere2562.mat
load Fl15

Fl=Fl(13:28,:);

averagei=SPHARMaverage(Fl,sphere, 15,0);


 r=find(Fl(1).x); %donde colocar los no ceros

%media -2*alfa
f=-2;
 [averagecompo,averagecompovf]=dibujopca(Fl,sphere, 15,0, [f f f],1,alfa,r);

scale=10;
dibujopcavector(averagei,averagecompovf,sphere, 15,0,scale);


dibujopcacolor2(averagei,averagecompovf)



lighting none


%%%%%%%%%



%%%%%%%%%%%%%
%CN-AD

load Fl15


cxyz=[];



nrep=28;

%grupos: 1 control, 2 dcl, 3 enfermo
g=[repmat(1,1,12) repmat(2,1,6) repmat(3,1,10)];

grupo=g;



for i=1:nrep
    
    r=find(Fl(i).x); %son los distintos de cero
    s=find(Fl(i).y);
    t=find(Fl(i).z);
    cxyz=[cxyz; Fl(i).x(r)' Fl(i).y(s)' Fl(i).z(t)'];
    
end

xmi=cxyz;
do=[1:12 19:28];

xmi=xmi(do,:);

grupo=g(do);

ni=1;

lni=ni;


 [co, sc, la] = princomp(xmi) ;
coica=sc(:,1:ni);


%dlmwrite('pca1i.txt',coica);

%in R
%
%#función discriminante
%library(MASS)
%
%dd=read.table('pca1i.txt',sep=',')
%grupo=c(rep(1,12),rep(3,10))
%
%
% z <- lda(grupo~as.matrix(dd))
 
%para 2 única función discriminante

ccd=[  0.213508 ];



alfa=ccd*co(:,1:ni)';

%Figures 
load unitsphere2562.mat
load Fl15

Fl=Fl(do,:);

averagei=SPHARMaverage(Fl,sphere, 15,0);


 r=find(Fl(1).x); %donde colocar los no ceros

%media -2*alfa
f=-2;
 [averagecompo,averagecompovf]=dibujopca(Fl,sphere, 15,0, [f f f],1,alfa,r);


scale=10;
dibujopcavector(averagei,averagecompovf,sphere, 15,0,scale);


dibujopcacolor2(averagei,averagecompovf)



lighting none
