clear

%%% carico il file dati_studenti
load dati_studenti
ind=find(dati_studenti(:,1)==0); % cerco gli indici relativi ai maschi
alt=dati_studenti(ind,2); %considero le sole altezze dei maschi
peso=dati_studenti(ind,3); %considero i soli pesi dei maschi
%peso(46)=105;
n=length(ind);

X=[alt,peso] %nel vettore X metto altezza e peso dei maschi
AA=cov(X) %calcolo la matrice di varianza covarianza

Xbar=mean(X) %calcolo il vettore delle medie

alpha=0.0027; %livello di significativita'
for i=1:n
    T2(i)=(X(i,:)-Xbar)*AA^(-1)*(X(i,:)-Xbar)';
end

lim=chi2inv(1-alpha,2) %calcolo il chi quadro per l'ellisse
t=[0,n];
nsam=1:n;
UCL=[lim lim];
% t1=46;
% x46=alt(46);
% y46=peso(46);

figure(1)
subplot(311);
plot(nsam,T2,t,UCL,'r');%,t1,Q(46),'o') %carta di controllo T2 con UCL
xlabel('n. campione')
ylabel('T^2')
subplot(312);plot(nsam,alt);%,t1,x46,'o') %carta delle altezze
xlabel('n. campione');
ylabel('altezza')
subplot(313);plot(nsam,peso);%,t1,y46,'o') %carta dei pesi
xlabel('n. campione')
ylabel('peso')

figure(2)
plot(X(:,1),X(:,2),'*'); %scatter plot altezze-pesi
xlabel('altezze');ylabel('pesi');
hold


xx=140:1:220;
yy=40:1:120;
m1=length(xx);
m2=length(yy);
Sigma=inv(AA);
%%%% calcolo la distanza di Mahalanobis per l'ellisse di controllo
for i=1:m1
    for j=1:m2
        vX=[xx(i),yy(j)];
        ell(j,i)=(vX-Xbar)*AA^(-1)*(vX-Xbar)';
    end
end
contour(xx,yy,ell,[lim lim],'r') %disegno l'ellisse di controllo sullo scatter plot


