%===============================================================================
% Titolo:       statistiche.m   
%
% Progetto:     Esercitazioni di IMAD 

%
% Scopo:     	Statistica descrittiva dei dati relativi alla

%					popolazione studentesca 

%

% Autori:      Giancarlo Ferrari-Trecate, G. De Nicolao
%
%
% Commenti:     I vettori di dati vengono definiti nel file creadat.m  

% 
%===============================================================================


clc
close all



creadat


% -------------------------------------------------%----------------------------
%                                             		% 
%         ANALISI UNIVARIATA	 							%

%                                               	%

% -------------------------------------------------%----------------------------





dati=[h w s];



indici_m=find(~s);  %seleziona le righe corrispondenti ai maschi



dati=dati(indici_m,1:2); %si ridefinisce la marice dati come la matrice contenente pesi e

									% altezze dei soli studenti maschi



% Calcolo delle medie

% -------------------------------------------------------------


medie=mean(dati); % la funzione mean calcola la media per colonne

						% di una matrice

mh=medie(1);

mw=medie(2);





% Calcolo delle varianze

% -------------------------------------------------------------


varianze=std(dati).^2; % la funzione std calcola la SD per colonne

						% di una matrice

vh=varianze(1);

vw=varianze(2);



% Calcolo delle varianze

% -------------------------------------------------------------


devstandard=std(dati); % la funzione std calcola la deviazione standard

					        % per colonne di una matrice

dsh=devstandard(1);

dsw=devstandard(2);



% Stampa dei risultati

% -------------------------------------------------------------




disp('ALTEZZE')

disp('-------')

altezza_media=mh

varianza=vh

deviazione_standard=dsh





disp('Premi un tasto per continuare ...')

pause





disp('PESI')

disp('-------')

peso_medio=mw

varianza=vw

deviazione_standard=dsw

disp('Premi un tasto per continuare ...')

pause



% Disegna istogrammi e funzioni di distribuzione

% Per VC continue viene usata la funzione vccont.m ove bisogna

% specificare il numero di "barre" (bins) dell'istogramma da

% usare. Per approssimare la d.d.p di una VC continua

% e' necessario utilizzare

% un numero di bins non troppo elevato (perche' ??)

%

% Dalla d.d.p e' possibile dedurre la moda della VC

% Dalla funzione di distribuzione e' possibile individuare la mediana.

%

%

% NOTA: per VC discrete utilizzare la funzione vcdiscr.m

%

% -------------------------------------------------------------
                  



flag=1; % digita help vccont per capire l'uso della variabile flag



Y=dati(:,1);xlab='cm';tit='altezza';nbins=10;

subplot(221)

vccont(nbins,Y,xlab,tit,flag);

pause



flag=2;

Y=dati(:,1);xlab='cm';tit='altezza';nbins=10;

subplot(222)

vccont(nbins,Y,xlab,tit,flag);

pause



flag=1

Y=dati(:,2);xlab='Kg';tit='peso';nbins=10;

subplot(223)

vccont(nbins,Y,xlab,tit,flag);

pause



flag=2

Y=dati(:,2);xlab='Kg';tit='peso';nbins=10;

subplot(224)

vccont(nbins,Y,xlab,tit,flag);



disp('Premi ancora un tasto per continuare ...')

pause

%

% Confronta la funzione di distribuzione dei pesi

% con quella della Gaussiana avente media mw e varianza vw

% -------------------------------------------------------------


flag=2;  



Y=dati(:,2);xlab='Kg';tit='peso';nbins=10;

subplot(224)

vccont(nbins,Y,xlab,tit,flag);

hold on

assi=axis;

pesi=assi(1):0.1:assi(2);  







%

% In MatLab, la funzione erf e' gia' implementata

% digita help erf per capire il significato della riga seguente.

% -------------------------------------------------------------


erfpesi=(erf((pesi-mw)/(sqrt(2*vw)))+1)/2;

plot(pesi,erfpesi,'r-');



disp('Premi ancora un tasto per continuare ...')

pause

hold off



%

% Confronta la funzione di distribuzione delle altezze

% con quella della Gaussiana avente media mw e varianza vw

% -------------------------------------------------------------


flag=2;  



Y=dati(:,1);xlab='cm';tit='altezza';nbins=10;

subplot(222)

vccont(nbins,Y,xlab,tit,flag);

hold on

assi=axis;

altezze=assi(1):0.1:assi(2);  



erfaltezze=(erf((altezze-mh)/(sqrt(2*vh)))+1)/2;

plot(altezze,erfaltezze,'r-');



disp('Premi ancora un tasto per continuare ...')

pause

hold off



% -------------------------------------------------%----------------------------
%                                             		% 
%         ANALISI BIVARIATA	 							%

%                                               	%

% -------------------------------------------------%----------------------------



%

% Calcolo della matrice di covarianza 

% -------------------------------------------------------------


Varianza=cov(dati);



disp('Matrice varianza')

Varianza



%

% Calcolo della matrice di correlazione 

% -------------------------------------------------------------


Correlazione=corrcoef(dati);

disp('Matrice correlazione')

Correlazione



pause



% Normalizzazione dei dati 

% -------------------------------------------------------------


w_n=(dati(:,2)-mw)/dsw;

h_n=(dati(:,1)-mh)/dsh;





%

% Scatter plot di pesi normalizzati vs. altezze normalizzate. 

% La forma della nuvola di punti

% permette di valutare (qualitativamente) se c'e' indipendenza statistica 

% o meno tra le VC considerate.

% -------------------------------------------------------------


figure(2), clf



plot(w_n,h_n,'+');

xlabel('Pesi normalizzati');

ylabel('Altezze normalizzate');

title('Scatter plot');



disp('Premi ancora un tasto per continuare ...')

pause

