%% Domanda 1 % Costruire tramite ciclo for la matrice X di seguito oppure utilizzando % la funzione gallery, oppure tramite le funzioni diag % 0 1 0 0 0 0 0 % 6 0 2 0 0 0 0 % 0 5 0 3 0 0 0 % 0 0 4 0 4 0 0 % 0 0 0 3 0 5 0 % 0 0 0 0 2 0 6 % 0 0 0 0 0 1 0 %% Domanda 1 n=7; % X tramite la funzione gallery X=gallery('clement',n); %% oppure tramite ciclo for Xchk=zeros(n,n); for i=1:n for j=1:n if i==j+1 Xchk(i,j)=n-i+1; end if i==j-1 Xchk(i,j)=i; end end end %% Oppure tramite le funzioni diag Xchk1=diag(1:n-1,1)+diag(n-1:-1:1,-1); assert(isequal(X,Xchk),"X diverso da Xchk") assert(isequal(X,Xchk1),"X diverso da Xchk1") %% Domanda 2 % Caricare in memoria la table di dimensione 200x6 contenente le % caratteristiche facciali di 200 soldati svizzeri tramite l'istruzione % load('head.mat'); % 1) Calcolare e commentare l'indice di curtosi per le variabili del dataset % % Dopo aver standardizzato i dati, % 2) rappresentare graficamene tramite boxplot le variabili del dataset % aggiungendo i nomi delle variabili sull'asse delle ascisse % 3) Applicare il metodo di clustering delle k medie imponento 2 gruppi % Rappresentare graficamente l'allocazione delle unità ai % 2 gruppi che sono stati % ottenuti tramite la matrice dei diagrammi di dispersione. % 4) Mostrare ed interpretare i centroidi che sono stati ottenuti load('head.mat'); Xtable=head; X=Xtable{:,:}; % Calcolare e commentare l'indice di asimmetria per la terza variabile. disp("Indice di curtosi per la sei variabili") disp(kurtosis(X)) % le variabili con curtosi superiori a 3 sono leptocurtica, cioè più % "appuntite" di una normale, quelle con curtosi inferiori a 3 sono % platicurtiche, cioè più "piatte" di una normale. % Standardizzazione % Xst matrice degli scostamenti standardizzati (formato array) Xst=zscore(X); % Xstable matrice degli scostamenti standardizzati (formato table) Xsttable=Xtable; Xsttable{:,:}=Xst; boxplot(Xst,"Labels",Xtable.Properties.VariableNames) %% Cluster analysis [idx,C]=kmeans(Xst,2); figure spmplot(Xsttable,idx); % Dall'esame dei centroidi emerge che un gruppo è caratterizzato da facce % con lunghezze inferiori alla media generale e l'altro con lunghezze % superiori a quelle della media generale. disp('Analisi dei centroidi') disp(C) %% Domanda 3 % Caricare in memoria la table di dimensione 200x6 contenente le % caratteristiche facciali di 200 soldati svizzeri % Discutere la quota di varianza spiegata dalle prime due PC % Che caratteristiche presentano i soldati che hanno valori elevati della % prima componente principale? % Dall'esame del biplot che caratteristiche presenta il soldato numero 159 % Che relazione c'è tra la lunghezza delle frecce nel biplot e la % comunalità di una variabile % Mostrare la variabile che presenta la comunalità più alta con riferimento % alle prime 3 componenti principali. % Applicare la tecnica delle componenti principali out=pcaFS(Xtable); % Il soldato numero 159 presenta valori elevati della prim PC di % conseguenza presenta un faccia con caratteristiche più grandi della % media. Il soldato 159 si trova nella direzione delle due frecce length % ragion di conseguenza presenta valori elevati di queste due variabili % length_tragion_nasion length_tragion_gnathion % La lunghezza delle frecce è proporzionale alla quota di varianza spiegata % di ogni variabile dalle prime due componenti principalieù % Estraggo la quota di varianza delle variabili spiegata dalle prime 3 componenti % principali comu=out.communalitiesT(:,5); disp(comu) [maxc,indmax]=max(comu{:,1}); disp("Variabile con la più alta comunalità") disp(comu.Properties.RowNames(indmax))