% Importare in formato table il dataset presente nel file % 'Indicatori_economici.xlsx' % 1) Costruire la matrice dei diagrammi di dispersione delle variabili % presenti nel file 'Indicatori_economici.xlsx' (ad eccezione degli % ADDETTI) inserendo sulla diagonale principale i grafici ad istogrammi % (suggerimento: utilizzare la funzione gplotmatrix) % % 2) Costruire la matrice dei diagrammi di dispersione di tutte le % variabili (ad eccezione degli ADDETTI), aggiungendo i nomi delle % variabili sulla diagonale principale (suggerimento: utilizzare la % funzione gplotmatrix) % OSSERVAZIONE: IL QUESITO CHE SEGUE RICHIEDE L'FSDA TOOLBOX % 3) Costruire la matrice dei diagrammi di dispersione di tutte le % variabili ad eccezione degli ADDETTI, aggiungendo i boxplot % sulla diagonale principale (suggerimento: utilizzare la funzione % spmplot del toolbox FSDA) % OSSERVAZIONE: IL QUESITO CHE SEGUE RICHIEDE L'ECONOMETRIC TOOLBOX % 4) Costruire la matrice dei diagrammi di dispersione di tutte le % variabili ad eccezione degli ADDETTI, aggiungendo le rette di regressione % in ogni diagramma ed il valore del coefficiente di correlazione % (suggerimento: utilizzare la funzione corrplot) % 4bis) Costruire la matrice dei diagrammi di dispersione di tutte le % variabili ad eccezione degli ADDETTI, aggiungendo le rette di regressione % in ogni diagramma ed il valore del coefficiente di cograduazione. % Mostrare in grassetto e colore rosso le cograduazioni che sono % significative (suggerimento: utilizzare la funzione corrplot) % 5) Rappresentare i dati tramite coordinate parallele (osservazione: % rappresentare i dati in forma standardizzata), % 6) Rappresentare i dati tramite coordinate parallele utilizzando la % matrice delle componenti principali % 7) Rappresentare le unità tramite stelle (suggerimento: utilizzare la % funzione glyphplot) % 8) Rappresentare le unità tramite facce (suggerimento: utilizzare la % funzione glyphplot) % 9) Rappresentazione le unità tramite curve trigonometriche (suggerimento: % utilizzare la funzione andrewsplot) inserendo nel pannello di sinistra il % grafico che si ottiene standardizzando preliminarmente i dati) e nel % pannello di destra il grafico corrispondente considerando i valori % originari. Nel pannello di destra aggiungere i nomi alle rispettive curve in % posizione x=800 sull'asse delle ascisse % Quale settore presenta caratteristiche anomale? % 10) Costruire la matrice dei diagrammi di dispersione dopo aver escluso il % settore considerato outlier. % Nei calcoli che seguono lavorare sulla matrice senza il settore outlier % 11) Costruire la matrice dei diagrammi di dispersione inserendo i % boxplot sulla diagonale principale e le stime della densità al di fuori % della diagonale principale (suggerimento: utilizzare la funzione spmplot % e l'opzione overlay dell'FSDA toolbox) % 12) Costruire la matrice dei diagrammi % di dispersione inserendo i boxplot sulla diagonale principale e gli % ellissi per ogni diagramma bivariato (suggerimento: utilizzare la funzione spmplot % e l'opzione overlay dell'FSDA toolbox) %---------------------------------------------------- % I quesiti che seguono si riferiscono ai grafici multivariati in presenza % di una variabile di ragguppamento % Fare il clear di tutte le variabili presenti in memoria. % Caricare in memoria il dataset degli IRIS data di fisher (in MATLAB % questo dataset si chiama fisheriris). La variabile di raggruppamente si % chiama species. Le 4 variabili rappresentano rispettivamente la lunghezza % dei sepali, l'ampiezza dei sepali, la lunghezza dei petali e l'ampiezza % dei petali. % labels = {'Sepal Length','Sepal Width','Petal Length','Petal Width'}; % oppure utilizzare le labels % {'SL','SW','PL','PW'} % 13) Costruire la matrice dei diagrammi di dispersione utilizzando simboli % diversi per i tre gruppi presenti nella variabile di raggruppamento. % Creare legende dinamiche cliccabili (suggerimento: utilzzare la funzione % spmplot dell'FSDA toolbox inserendo come secondo argomento la variabile % di raggruppamento) % 14) Rappresentare i dati di fisher in termini di coordinate parallele % 15) Ripetere il grafico precedente ma questa volta plottare solo la % mediana ed i percentili 0.05 e 0.95 for ciascun gruppo e un'ampiezza di % linea pari a 2 % 16) Rappresentare i dati di fisher in termini di curve trigonometriche % Quali sono i gruppi che si assomigliano? Quale gruppo risulta % marcatamente diverso da quello degli altri due? %% Soluzione %% Importare in formato table il dataset presente nel file % 'Indicatori_economici.xlsx' Xtable=readtable('Indicatori_economici.xlsx','ReadRowNames',... true,'ReadVariableNames',true); % Escludo la variabile addetti e trasformo la table in array X=table2array(Xtable(:,2:end)); nomivar=Xtable.Properties.VariableNames(2:end); nomiunit=Xtable.Properties.RowNames; %% 1) Matrice dei diagrammi di dispersione con istogrammi sulla diagonale gplotmatrix(X) % In alternativa era possibile utilizzare la funzione spmplot come segue % spmplot(X) %% 2) Matrice dei diagrammi di dispersione con etichette delle variabili sulla diagonale principale gplotmatrix(X,[],[],[],[],[],[],'variable',nomivar) %% 3) Matrice dei diagrammi di dispersione con boxplot sulla diagonale principale % Osservazione: spmplot fa parte di FSDA toolbox spmplot(X,'dispopt','box') %% 4) Matrice dei diagrammi di dispersione ed indicazione correlazione % e retta di regressione per ogni coppia di variabili % Viene esclusa la variabile addetti corrplot(Xtable(:,2:end)) %% 4bis) Costruire la matrice dei diagrammi di dispersione di tutte le % variabili ad eccezione degli ADDETTI, aggiungendo le rette di regressione % in ogni diagramma ed il valore del coefficiente di cograduazione. % Mostrare in grassetto e colore rosso le cograduazioni che sono % significative (suggerimento: utilizzare la funzione corrplot) corrplot(Xtable,'type','Spearman','testR','on') %% 5) Rappresentazione tramite coordinate parallele % Variabili tradotte in forma di scostamenti standardizzati parallelcoords(X,'standardize','on','Labels',nomivar) % In maniera alternativa si potevano standardizzare i dati % parallelcoords(zscore(X)) %% La funzione parallelplot è stata introdotta dalla versione 2019a parallelplot(Xtable(:,2:end)) %% 6) Rappresentazione tramite coordinate parallele % Variabili tradotte in forma di componenti principali parallelcoords(X,'standardize','PCA') %% 7) Rappresentazioni tramite stelle glyphplot(X,'obslabels',Xtable.Properties.RowNames) %% 8) Rappresentazioni tramite facce glyphplot(X(:,[5 1 2 3 4]),'glyph','face','obslabels',Xtable.Properties.RowNames) %% 9) Rappresentazione tramite curve trigonometriche % Nel pannello di sinistra si usano dati standardizzati subplot(1,2,1) andrewsplot(zscore(X)) % Nel pannello di destra i valori originari subplot(1,2,2) h=andrewsplot(X); % Nel pannello di destra aggiungere i nomi alle rispettive curve in % posizione x=800 sull'asse delle ascisse xcoo=[h.XData]; ycoo=[h.YData]; % Crea la sequenza 800, 1801, ... xinit=800; sel=xinit:1001:1000*(size(X,1)); % Aggiungi al grafico i nomi delle linee text(xcoo(sel),ycoo(sel),nomiunit) %% COMMENTI % In ciascuno dei grafici precedenti il settore delle raffinerie risulta % sempre molto distante dagli altri settori %% 10) Matrice dei diagrammi di dispersione senza il settore outlier n=size(X,1); Xpulito=X([1:5 7:n],:); gplotmatrix(Xpulito) %% 11) Matrice dei diagrammi di dispersione con boxplot sulla diagonale principale e stime della densità spmplot(Xpulito,'dispopt','box','overlay',1) %% 12) Matrice dei diagrammi di dispersione con boxplot sulla diagonale principale ed ellissi per ogni diagramma bivariato overlay=struct; overlay.type='ellipse'; spmplot(Xpulito,'dispopt','box','overlay',overlay) %% 13) scatter plot matrix in presenza di una variabile di ragguppamento % Call of spmplot without name/value pairs. % Iris data: scatter plot matrix with univariate boxplots on the main % diagonal load fisheriris; plo=struct; plo.nameY={'SL','SW','PL','PW'}; spmplot(meas,species) % Osservazione: i gruppi possono essere nascosti/mostrati facendo click % sulla legenda % spmplot(meas,species,plo,'hist'); %% 14) Rappresentazione in coordinate parallele dei Fisher Iris % Load the Fisher iris sample data. labels = {'Sepal Length','Sepal Width','Petal Length','Petal Width'}; parallelcoords(meas,'Group',species,'Labels',labels) %% 14bis) Rappresentazione in coordinate parallele dei Fisher Iris % Load the Fisher iris sample data. parallelplot(meas,'GroupData',species) %% 15) Ripetere il grafico precedente ma questa volta plottare solo la mediana % ed i percentili 0.05 e 0.95 for ciascun gruppo e un'ampiezza di linea % pari a 2 parallelcoords(meas,'Group',species,'Labels',labels,'quantile',.05,'LineWidth',2) %% 16) Rappresentazione tramite curve trigonometriche dei Fisher Iris data andrewsplot(meas,'group',species) % Commento: il gruppo degli iris versicolor risulta molto vicino a quello % degli iris virginica. Al contrario, il gruppo degli iris setosa sembra % marcatamente diverso da quello degli altri due.