%% Testo % 1) Caricare le variabili "retta" e "affiliazione" presenti nel file di Excel % UnivUSAanova.xlsx. % 2) rimuovere in maniera listwise le righe del dataset che presentano valori % mancanti % 3) Costruire la distribuzione di frequenze della variabile classificatoria % group. % % 4) Analizzare la distribuzione della retta tramite boxplot nei 3 strati % della variabile classificatoria ("Clero" "Stato" "Privati"). % % 5) Tramite la funzione di MATLAB anova1 testare l’ipotesi che le rette % medie per iscriversi a scuole statali, private o del clero differiscano tra % loro significativamente. Calcolare e commentare il p-value del test. Commentare % il risultato del test. % % 6) Calcolare il rapporto di correlazione (rapporto tra la VARfra e la % VARtot) %% Soluzione % 1) Caricamento dati da file di Excel % Oservazione: carico dentro Matlab solo la zona che contiene le due % variabili "retta" e "affiliazione" SheetName = "UnivUSA"; Range = "K1:L251"; Y = readtable("UnivUSAanova.xlsx",'Sheet',SheetName,'Range',Range,'ReadRowNames',false); %% 2) Rimozione valori mancanti (in maniera listwise) [X,indexmissX]=rmmissing(Y); % conta i missing di X % sum(indexmissX) %% Calcolo % Osservazione: con le espressioni std e var si intendono la standard deviation % e la varianza corrette % meanci specifica che vogliamo anche l'intervallo di confidenza. % Se non si specifica il livello di confidenza MATLAB per default propone % intervalli di confidenza al 95 per cento. X1=grpstats(X,'affiliazione',{'mean' 'std' 'var' 'meanci'},'Alpha',0.01); disp('Calcolo statistiche descrittive e intervalli di confidenza al 99 per cento delle medie') disp(X1) n=size(X,1); % Varianza nei gruppi VARnei=sum(X1{:,'var_retta'}.*(X1{:,'GroupCount'}-1))/n; DEVneiCalcoltaManualmente=VARnei*n; % Media generale della variabile retta MediaGenerale=mean(X{:,'retta'}); % Media generale utilizzando la proprietà associativa della media % aritmetica MediaGeneraleCHK=sum(X1{:,'mean_retta'}.*(X1{:,'GroupCount'})/n); disp('Differenza nel calcolo della media con i due metodi') disp(MediaGenerale-MediaGeneraleCHK) % Varianza tra i gruppi VARfra=sum((X1{:,'mean_retta'}-MediaGenerale).^2.*(X1{:,'GroupCount'}))/n; DEVfraCalcoltaManualmente=VARfra*n; %% 3) Distribuzione di frequenze della variabile classificatoria tabulate(X.affiliazione) %% 4) Analisi preliminare tramite boxplot boxplot(X.retta,X.affiliazione); %% 5) Test ANOVA di uguaglianza delle medie % Analisi ANOVA [pval,anovatab,stats]=anova1(X.retta,X.affiliazione); % Commento: il p-value è molto basso di conseguenza rifiuto decisamente % l'ipotesi di uguaglianza delle tre medie nell'universo. %% Calcolo del rapporto di correlazione DEVfra=anovatab{2,2}; DEVnei=anovatab{3,2}; disp('Il rapporto di correlazione è pari a') disp(DEVfra/(DEVfra+DEVnei)) % Commento: le differenze tra le medie tra i gruppi spiegano oltre il 72% % della variabilità totale. %% Rappresentazione grafica intervalli di confidenza al 99 per cento % Dall'help di grpstats % grpstats(X,group,alpha) plots the means of the groups of data in the % vector or matrix X determined by the values of the grouping variable, % group. The grouping variable values are on the horizontal plot axis. Each % group mean has 100×(1 – alpha) per cent confidence intervals. % Osservazione: gli intervalli di confidenza utilizzano i quantili della % v.v. T di Student (e non quelli della normale) grpstats(X.retta,X.affiliazione,0.01);