%% PARTE I % Il foglio denominato "Pivot controllo" del file cars.xlsx contiene la % tabella di contingenza riferita a diverse tipologie di auto e alle % caratteristiche percepite dai consumatori di queste auto. Calcolare e % commentare l'indice Chi2. Effettuare un'analisi delle corrispondenze e % commentare i risultati ottenuti (bontà di adattamento delle prime due % dimensioni latenti, punti dominanti, interpretazione prima dimensione % latente...). Discutere la relazione tra l'inerzia totale e l'indice Chi2. Ntable=readtable('cars.xlsx','Sheet','Pivot controllo','Range','A4:H43','ReadRowNames',true); out=CorAna(Ntable); % Analisi soddisfacente. Le prime due dimensioni latenti spiegano il 70 per % cento circa dell'inerzia totale. % L'attributo safety è associato ai modelli Subaru e Volvo. % Fuel Economy con i modelli Smart, Kia, Hyundai, Volkswagen.... %% PARTE II % La spesa settimanale relativa ad un determinato bene di 35 consumatori è % riportata di seguito X=[10; 11; 12; 23; 300; 15; 15; 8; 5; 12; 18; 17; 7; 6; 19; 17; 21; 10; 13; 18 19; 13; 15; 11; 12; 19; 19; 13; 9; 15; 20; 17; 13; 10; 14]; % 1) Calcolare e commentare il boxplot della spesa. Calcolare il quantile % 0.51. close all boxplot(X) % Il consumatore 5 è un chiaro valore anomalo. % Il 51 per cento dei consumatori effettua un ammontare di spesa minore o % uguale a Euro 14.35 disp(quantile(X,0.51)) % 2) Calcolare e commentare gli indici di kurtosi e asimmetria. ku=kurtosis(X); sk=skewness(X); % Distribuzione con code pesanti (l'indice risente molto del valore anomalo % di spesa). Distribuzione con asimmetri positiva (l'indice risente molto % del valore anomalo di spesa). sel=[1:4 6:35]; kuNOOUT=kurtosis(X(sel)); skNOOUT=skewness(X(sel)); % Senza il valore anomolo l'indice di asimmetria diventa negativo e la % curtosi diventa molto più vicina a 3. % 3) Sapendo che i consumatori 10-15 21-22 30-33 provengono dalla Lombardia, % i consumatori 1, 23-28 provengono dalla Toscana e gli altri dalla Liguria % calcolare il boxplot separato per ogni regione. n=length(X); % Creo la variabile classificatoria regione che distingue i consumatori in % base alla regione di appartenenza regione=cellstr(num2str((1:n)')); sel1=[10:15 21:22 30:33]; regione(sel1)={'Lombardia'}; sel2=[1 23:28]; regione(sel2)={'Toscana'}; sel3=setdiff(1:n,[sel1 sel2]); regione(sel3)={'Liguria'}; boxplot(X,regione) %% PARTE III % Fissare il seed dei numeri casuali a 1000 % Generare un vettore di numeri casuali dalla distribuzione normale % standardizzata di lunghezza 200. % Calcolare, utilizzando un ciclo for, la distribuzione di frequenza del % vettore precedente utilizzando le classi <=-2.5, (-2.5 --- -1] (-1 1] % (1 2.5] >2.5 % Calcolare un intervallo di confidenza per la media dell'universo % utilizzando un livello di confidenza del 99 per cento. % Rappresentare graficamente la distribuzione di frequenza. rng('default') rng(1000) X=randn(200,1); classi=[-Inf -2.5 -1 1 2.5 Inf]; %% Modo1 % Tramite histc calcolo le frequenze associate alle diverse classi h=histc(X,classi); close all %% Modo 2 utilizzo la funzione histcounts % alternativamente faccio riferimento alla funzione histcounts hh=histcounts(X,classi); close all barVariableWidth(hh,classi); %% Calcolo intervallo di confidenza al 99 per cento per la media dell'universo me=mean(X); s=std(X); n=length(X); quant=tinv(0.995,n-1); EstremoInf=me-quant*s/sqrt(n); EstremoSup=me+quant*s/sqrt(n); Confint=grpstats(X,[],'meanci','alpha',0.01); % Commento: i dati sono stati generati dalla distribuzione normale % standardizzata di conseguenza il valore 0 è all'interno dell'intervallo % di confidenza. % Controllo che l'implementazione manuale e tramite la funzione grpstats % producano gli stessi risultati isequal(EstremoInf,Confint(1)) isequal(EstremoSup,Confint(2))