%% Testo % % La matrice denominata dati (v. di seguito) contiene i dati relativi ai % passeggeri e alle merci trasportate da 8 aeroporti. I nomi degli % aeroporti sono contenuti nella cell eti I nomi delle variabili sono % contenuti nella cell etivar % % 1) Calcolare e commentare il coefficiente di cograduazione di Spearman % tra le variabili "numero di passeggeri" e "merci trasportate" utilizzando % la funzione corr. % % 2) Verificare il risultato ottenuto passando attraverso la funzione % tiedranks. % % 3) Verificare il risultato implementando direttamente la formula % $$ 1- 6 \frac{\sum_{i=1}^n \left[ g(x_i) -g(y_i) \right]^2}{n(n^2-1)} $$ % % 4) Costruire il diagramma di dispersione tra le variabili "numero di % passeggeri" (asse x) e "merci trasportate" (asse y), utilizzando come % simboli quadrati con bordo nero e riempimento rosso e aggiungendo ai % punti i nomi degli aeroporti. Aggiungere al grafico le etichette degli % assi. %% Dati di input eti={'Bergamo-Orio' 'Bologna-BorgoP' 'Cagliari-Elmas' 'Milano-Linate' 'Milano-Malpensa' 'Roma-Fiumicino' 'Venezia-Tessera' 'Verona-Villafranca'}; dati= [ 47820 4291239; 54780 3624072; 26425 2344282; 93942 9085999; 227718 19499158; 302890 28208161; 75196 5780783; 33178 2581420]; etivar={'Numero_passeggeri' 'Merci_trasportate'}; %% Soluzione %% Calcolo cograduazione % 1) Calcolare e commentare il coefficiente di cograduazione di Spearman % tra le variabili "numero di passeggeri" e "merci trasportate" utilizzando % la funzione corr. % Calcolo della matrice di cograduazione e dei relativi palues [R,Pval]=corr(dati,'type','Spearman'); disp('Matrice di cograduzione') disp(R) disp('Matrice dei coefficienti di cograduazione') disp(array2table(R,'VariableNames',etivar,'RowNames',etivar)) disp('Matrice dei pvalues') disp(array2table(Pval,'VariableNames',etivar,'RowNames',etivar)) % Commento: il pvalue è molto basso. Rifiuto decisamente l'ipotesi nulla di % assenza di cograduazione (assenza di relazione lineare tra i posti % d'ordine) tra le variabili merci trasportate e passeggeri trasportati %% Implementazione utilizzando la funzione tiedrank % 2) Verificare il risultato ottenuto passando attraverso la funzione % tiedranks. % datirank=zeros(size(dati)); for j=1:2 datirank(:,j)=tiedrank(dati(:,j)); end Rchk=corr(datirank); disp('Matrice dei coefficienti di correlazione basati sui gradi') disp(array2table(Rchk,'VariableNames',etivar,'RowNames',etivar)) %% Implementazione utilizzando direttamente la formula in funzione dei ranks % 3) Verificare il risultato implementando direttamente la formula % $$ 1- 6 \frac{\sum_{i=1}^n \left[ g(x_i) -g(y_i) \right]^2}{n(n^2-1)} $$ n=size(datirank,1); R12chk1=1-6*sum((datirank(:,1)-datirank(:,2)).^2)/(n*(n^2-1)); % Controllo che la differenza tra le due implementazioni sia "negligible" disp(Rchk(1,2)-R12chk1) %% Diagramma di dispersione personalizzato % 4) Costruire il diagramma di dispersione tra le variabili "numero di % passeggeri" (asse x) e "merci trasportate" (asse y), utilizzando come % simboli quadrati con bordo nero e riempimento rosso e aggiungendo ai % punti i nomi degli aeroporti. Aggiungere al grafico le etichette degli % assi, plot(dati(:,1),dati(:,2),'s',... 'MarkerEdgeColor','k','MarkerFaceColor','r') text(dati(:,1),dati(:,2),eti) xlabel(etivar{1},'Interpreter','none') ylabel(etivar{2},'Interpreter','none') % E' stata utilizzata l'opzione 'Interpreter','none' in quanto nel % linguaggio LATEX il simbolo _ significa pedice % per maggiori informazioni su LATEX % https://it.wikipedia.org/wiki/LaTeX