%% Esame SDE Gennaio 2021 % % La zona A1:B440 del file SDEjan2021.xlsx contiene i risultati % di un'indagine in cui si è chiesto di associare % ad ogni brand nel mercato delle "soft drinks" una determinata parola. % % 1) Costruire la distribuzione di frequenza della variabile Marca % e rappresentare la distribuzione tramite grafico a torta. % Inserire come titolo del grafico il proprio cognome ed il numero di % matricola. % 2) Costruire la tabella di contingenza tra le due variabili (Variabile % Parola sulle righe). % 3) Calcolare l'indice di associazione tauyx ed il relativo intervallo di % confidenza. Commentare il valore dell'indice. % 4) Costruire e commentare il grafico di analisi delle corrispondenze. % 5) Rappresentare tramite grafico a barre l'inerzia di ogni punto riga. % Commentare i due punti che presentano l'inerzia più grande. % Commentare la relazione tra la sommma dell'inerzia di ciascun punto riga % ed il valore del test Chi2. % 6) Rappresentare graficamente tramite diagramma di dispersione % i dati riportati di seguito % Nome X Y % A 10 2 % B 12 4 % C 11 3 % D 15 5 % E 16 8 % Aggiungere al diagramma di dispersione il nome di ciascun punto. % Calcolare la matrice delle distanze Euclidee e di Mahalanobis di queste 5 % osservazioni. %% Soluzione close all clear X = readtable('SDEjan2021.xlsx','Sheet','Foglio1','range','A1:B440'); %% Distribuione di frequenza della variabile Marca Xca=categorical(X.Marca); disp('Distribuzione di frequenze della variabile marca') summary(Xca); pie(Xca); % GRAFICO A TORTA title('Riani'); % Coke e RedBull sono le tre marche più frequenti %% Tabella di contingenza % 2) Costruire la tabella di contingenza tra le due variabili (Variabile % Parola sulle righe). [N,chi2,pval,labels] =crosstab(X.Parola,X.Marca); % chi2 e pval sono rispettivamente il valore dell'indice chi quadrato % ed il p-value da confrontare con l'implementazione manuale. [r,c]=size(N); % Costruzione della tabella di contingenza in formato table % Dall'array N alla tabella Ntable Ntable=array2table(N,'RowNames',labels(1:r,1),'VariableNames',labels(1:c,2)); disp('Tabella di contingenza tra Parola e Marca') disp(Ntable) %% Indice tauyx % 3) Calcolare l'indice di associazione tauyx ed il relativo intervallo di % confidenza. Commentare il valore dell'indice. out=corrNominal(N); tauyx=out.tauyx; disp("Indice Tau ed intervallo di confidenza"); disp(out.ConfLimtable('tauyx',:)) % Relazione modesta ma significativa. % Interpretazione: la conoscenza della parola riduce del 10 per cento % circa l'eterogeneità nella previsione della bevanda abbinata (se % l'eterogeneità è sintetizzata tramite l'indice di Gini). %% Analisi delle corrispondenze outCA=CorAna(N,'Lr',labels(1:r,1),'Lc',labels(1:c,2)); % La marca Red Bull è associata prevalentemente alle parole "Energy e Picks % you up" % La parola "Teens" è associata a Diet Coke Pepsi e Fanta. % Coke si trova nella direzione della parola "When Tired" e vicino a Enjoy % Life. La rappresentazione è molto buona in quanto il piano fattoriale % delle prime due dimensioni latenti spiega quasi il 100 per cento % dell'inerzia totale della tabella di contingenza. %% 5) Rappresentare tramite grafico a barre l'inerzia di ogni punto riga. % Commentare i due punti che presentano l'inerzia più grande. % Commentare la relazione tra la sommma dell'inerzia di ciascun punto riga % ed il valore del test Chi2. % Mostro la tabella che contiene i dettagli dell'inerzia spiegata disp(outCA.Summary) % Rappresentare tramite grafico a barre l'inerzia di ogni punto riga. inerzia=outCA.OverviewRows(:,'Inertia'); figure bar(inerzia{:,1}) set(gca, 'xticklabel', inerzia.Properties.RowNames, 'xticklabelrotation', 60) % Commentare i due punti che presentano l'inerzia più grande. % I due punti con l'inerzia più grande sono "Energy" e "When Tired" %% Relazione In e Chi2 % Commentare la relazione tra la sommma dell'inerzia di ciascun punto riga % ed il valore del test Chi2. % La somma dell'inerzia di ogni punto riga è l'inerzia totale = valore del % test chi quadrato diviso la dimensione campionaria n % Controllo questa uguaglianza inerziatot=sum(inerzia{:,1}); chi2divn=chi2/sum(N,'all'); isequal(inerziatot,chi2divn) %% 6) Rappresentare graficamente tramite diagramma di dispersione % i dati riportati di seguito % Nome X Y % A 10 2 % B 12 4 % C 11 3 % D 15 5 % E 16 8 % Aggiungere al diagramma di dispersione il nome di ciascun punto. % Calcolare la matrice delle distanze Euclidee e di Mahalanobis di queste 5 % osservazioni. X=[10 2; 12 4; 11 3; 15 5; 16 8]; assi = {'X' 'Y'}; punti = {'A'; 'B'; 'C'; 'D'; 'E'}; figure; plot(X(:,1),X(:,2),'o','MarkerEdgeColor','b'); text(X(:,1),X(:,2),punti); xlabel(assi(1)) ylabel(assi(2)) %% Matrice distanze Euclidee e di Mahalanobis M=squareform(pdist(X,'mahalanobis')); Mtable=array2table(M,'RowNames',punti,'VariableNames',punti); disp('Distanze di Mahalanobis') disp(Mtable) E=squareform(pdist(X)); Etable=array2table(E,'RowNames',punti,'VariableNames',punti); disp('Distanze Euclidee') disp(Etable)