% La matrice X di seguito contiene i dati riferiti alla performance e % volatilità di 23 fondi di investimento % X=[35.32 18.45; % 34.96 18.18; % 35.51 19.77; % 39.36 18.37; % 39.51 19.74; % 39.30 20.10 % 42.54 19.86; % 39.34 17.70; % 30.07 17.75; % 33.46 17.25; % 36.26 19.60; % 49.40 20.62; % 42.12 20.98; % 42.15 22.72; % 38.72 22.14; % 40.26 17.64; % 40.26 18.22; % 37.62 19.60; % 32.78 16.46; % 36.71 17.97; % 40.98 18.17; % 21.30 14.13; % 41.00 18.20]; % 1) Costruire il diagramma di dispersione (utilizzando il comando plot) % tra le due variabili inserendo la performance sull'asse delle ascisse ed % utilizzando come simboli per i punti quadrati con bordo rosso riempiti di % colore nero di altezza pari a 12. % 2) Aggiungere al grafico le etichette degli assi. % Commentare la relazione tra le due variabili. % 3) Aggiungere al grafico la retta di regressione tra le due variabili % (suggerimento: utilizzare il comando lsline). % 4) Costruire il diagramma di dispersione (utilizzando il comando scatter) % tra le due variabili inserendo la performance sull'asse delle ascisse ed % utilizzando come simboli per i punti quadrati con bordo rosso riempiti di % colore nero con altezza pari a 40 punti. % 5) Chiudere tutte le finistre grafiche % Utilizzando la funzione boxplotb costruire un boxplot bivariato robusto % tra le variabili performance e volatilità (Suggerimento: utilizzare la funzione % boxplotb di FSDA) % 6) Costruire un diagramma di dispersione con gli istogrammi per le distribuzioni % marginali. (Suggerimento: utilizzare la funzione scatterhist oppure scatterhistogram). % 7) Costruire un diagramma di dispersione con i boxplot per le distribuzioni % marginali. (Suggerimento: utilizzare la funzione scatterhist oppure scatterhistogram). % % % Analisi univariate e bivariate in presenza più più gruppi % % % 8) Fare il clear di tutte le variabili presenti in memoria. % Caricare il dataset fisheriris in memoria tramite il comando % load fisheriris. % Viene caricato in memoria una matrice 150 x 4 denominata meas contenente % quattro caratteristiche di 3 specie di fiori di tipo iris. % I nomi delle 3 specie di fiori per ogni riga della matrice meas sono % contenuti nella variabile di raggruppamente chiamata species (cell di % dimensione 150x1 che viene caricata automaticamente dopo aver eseguito il % comando load fisheriris). % Le 4 variabili rappresentano rispettivamente la lunghezza % dei sepali, l'ampiezza dei sepali, la lunghezza dei petali e l'ampiezza % dei petali di 3 specie di fiori. % labels = {'Lunghezza sepali','Ampiezza dei sepali',... % 'Lunghezza dei petali','Ampiezza dei sepali'}; % Costruire un diagramma di dispersione tra le variabili 2 ("Ampiezza dei % sepali", asse x) e la variabile 3 ("Lunghezza dei petali", asse y). % utilizzando colori diversi per ogni valore della variabile di % raggruppamento. Aggiungere sull'asse delle ascisse e delle ordinate i % nomi delle due variabili. % Inserire prima gli istogrammi poi i boxplot ai bordi del % diagramma di dispersione. % Scrivere il programma in modo tale che se l'utente invece delle variabili % 2 e 3 possa selezionare qualsiasi altra coppia di variabili. %% Soluzione X=[35.32 18.45; 34.96 18.18; 35.51 19.77; 39.36 18.37; 39.51 19.74; 39.30 20.10 42.54 19.86; 39.34 17.70; 30.07 17.75; 33.46 17.25; 36.26 19.60; 49.40 20.62; 42.12 20.98; 42.15 22.72; 38.72 22.14; 40.26 17.64; 40.26 18.22; 37.62 19.60; 32.78 16.46; 36.71 17.97; 40.98 18.17; 21.30 14.13; 41.00 18.20]; %% 1) Costruire il diagramma di dispersione (utilizzando il comando plot) % tra le due variabili inserendo la performance sull'asse delle ascisse ed % utilizzando come simboli per i punti quadrati ('Marker','s') % con bordo rosso ('MarkerEdgeColor','r') riempiti di colore nero % (MarkerFaceColor','k') di altezza pari a 12 ('MarkerSize',12) plot(X(:,1),X(:,2),'o','Marker','s','MarkerEdgeColor','r', ... 'MarkerFaceColor','k','MarkerSize',10) %% 2) Aggiungere al grafico le etichette degli assi. % Commentare la relazione tra le due variabili. xlabel('Performance') ylabel('Volatilità') %% 3) Aggiungere al grafico la retta di regressione tra le due variabili % (suggerimento: utilizzare il comando lsline). lsline % Osservazione: per inserire una linea con ad esempio un diverso tratteggio % utilizzare i comandi che seguono % ax=lsline; % ax.LineStyle='--'; %% 4) Costruire il diagramma di dispersione (utilizzando il comando scatter) % tra le due variabili inserendo la performance sull'asse delle ascisse ed % utilizzando come simboli per i punti quadrati con bordo rosso riempiti di % colore nero con altezza pari a 40 punti. % Grafico a dispersione utilizzando il comando scatter scatter(X(:,1),X(:,2),40,'s','MarkerEdgeColor','r','MarkerFaceColor','k') % Aggiungere al grafico le etichette degli assi. xlabel('Performance') ylabel('Volatilità') %% Boxplot bivariato % 5) Chiudere tutte le finistre grafiche % Utilizzando la funzione boxplotb costruire un boxplot bivariato robusto % tra le variabili performance e volatilità (Suggerimento: utilizzare la funzione % boxplotb di FSDA) close all boxplotb(X) xlabel('Performance') ylabel('Volatilità') %% scatter con istogrammi ai margini % 6) Costruire un diagramma di dispersione con gli istogrammi per le distribuzioni % marginali. (Suggerimento: utilizzare la funzione scatterhist oppure scatterhistogram). close all scatterhist(X(:,1),X(:,2)) xlabel('Performance') ylabel('Volatilità') %% scatter con boxplot ai margini % 7) Costruire un diagramma di dispersione con i boxplot per le distribuzioni % marginali. (Suggerimento: utilizzare la funzione scatterboxplot). scatterboxplot(X(:,1),X(:,2)); %% Analisi univariate e bivariate in presenza più più gruppi % 8) Fare il clear di tutte le variabili presenti in memoria. % Caricare il dataset fisheriris in memoria tramite il comando % load fisheriris. % Viene caricato in memoria una matrice 150 x 4 denominata meas contenente % quattro caratteristiche di 3 specie di fiori di tipo iris. % I nomi delle 3 specie di fiori per ogni riga della matrice meas sono % contenuti nella variabile di raggruppamente chiamata species (cell di % dimensione 150x1 che viene caricata automaticamente dopo aver eseguito il % comando load fisheriris). % Le 4 variabili rappresentano rispettivamente la lunghezza % dei sepali, l'ampiezza dei sepali, la lunghezza dei petali e l'ampiezza % dei petali di 3 specie di fiori. % labels = {'Lunghezza sepali','Ampiezza dei sepali',... % 'Lunghezza dei petali','Ampiezza dei sepali'}; % Costruire un diagramma di dispersione tra le variabili 2 ("Ampiezza dei % sepali", asse x) e la variabile 3 ("Lunghezza dei petali", asse y). % utilizzando colori diversi per ogni valore della variabile di % raggruppamento. Aggiungere sull'asse delle ascisse e delle ordinate i % nomi delle due variabili. % Inserire prima gli istogrammi poi i boxplot ai bordi del % diagramma di dispersione. % Scrivere il programma in modo tale che se l'utente invece delle variabili % 2 e 3 possa selezionare qualsiasi altra coppia di variabili. load fisheriris labels = {'Lunghezza sepali','Ampiezza dei sepali',... 'Lunghezza dei petali','Ampiezza dei sepali'}; i=2; j=3; Xi=meas(:,i); Xj=meas(:,j); %% scatterhist e scatterboxplot figure scatterhist(Xi,Xj,'Group',species) xlabel(labels(i)) ylabel(labels(j)) title('Scatter e istogrammi distinti per i 3 gruppi') figure scatterboxplot(Xi,Xj,'Group',species) xlabel(labels(i)) ylabel(labels(j)) title('Scatter e boxplot distinti per i 3 gruppi') %% Se invece si desidera avere nelle distribuzioni marginali un unico gruppo % scatterhist e scatterboxplot figure scatterhist(Xi,Xj,'Group',species,'PlotGroup','off') xlabel(labels(i)) ylabel(labels(j)) title('Scatter distinti per i 3 gruppi ma grafico ad istogramma globale') %% Osservazione: l'opzione 'PlotGroup','off' non funziona % per scatterboxplot nella versione FSDA 8.5.10 % Tra qualche giorno (16 o 17 di ottobre 2021 viene rilasciata una nuova % versione di FSDA che corregge questo bug) figure scatterboxplot(Xi,Xj,'Group',species,'PlotGroup','off') xlabel(labels(i)) ylabel(labels(j)) title('Scatter e boxplot distinti per i 3 gruppi') %% Codice aggiuntivo per affronfondimenti (FACOLTATIVO) unigroup=unique(species); colore={'b' 'r' 'k'}; simbolo={'*' 'x' 's'}; figure for i=1:length(unigroup) boo=strcmp(unigroup(i),species); scatter(Xi(boo),Xj(boo),colore{i},simbolo{i}) hold('on') lsline end