% Domanda 1 % Caricamento dati Xtab=readtable('ADMluglio2021.xlsx','Sheet','Foglio1','Range','B9:E39','ReadRowNames',true); X=Xtab{:,:}; namesV=Xtab.Properties.VariableNames; namesR=Xtab.Properties.RowNames; %% Matrice dei diagrammi di dispersione spmplot(Xtab) %% Matrice di cograduazione con i relativi p-values [Rco,Rcopval]=corr(X,'type','Spearman'); % Commento: cograduazione discreta tra X1 e X3. % p value tra X1 e X3 appena sotto la soglia del 5 per cento. Rcotable=array2table(Rco,'RowNames',namesV,'VariableNames',namesV); Rcopvaltable=array2table(Rcopval,'RowNames',namesV,'VariableNames',namesV); disp('Matrice di cograduazione') disp(Rcotable) disp('Matrice dei p-values') disp(Rcopvaltable) %% Componenti principali outPCA=pcaFS(Xtab); % La prima componente è funzione diretta di tutte e tre le variabili in % esame, di conseguenza può essere interpretata come un indicatore % sintetico dell'ammontare di acquisto dei 3 prodotti % I consumatori che presentano valori elevati della prima PC effettuano acquisti % dei 3 prodotti in esame in maniera superiore alla media % La seconda componente % è caratterizzata per lo più dalla variabile X2 in maniera % crescente e in misura minore da X1 (in maniera descrescente). % I consumatori che presentano valori elevati della seconda componenti principale % effettuano forti acquisti per il bene X2 e bassi acquisti per il bene % X1. % Angolo modesto tra X1 e X3 ==> correlazione diretta elevata tra acquisto % del prodtto 1 e acquisto del prodotto 3 % Il consumatore 3 presenta valori positivi di PC1 (di conseguenza effettua % acquisti in maniera superiore alla media). Il consumatore 3 nel biplot si % colloca nella direzione di X1 (di conseguenza effettua acquista elevati % per il bene 1) %% Esercizio 2 % Calcolare un intervallo di confidenza al 99% della spesa per l'acuisto % del bene 2 (variabile X2) Sapendo che i consumatori 11, 12, …, 30 sono % uomini calcolare l'intervallo di confidenza al 99 per cento della spesa % per il bene 2 separatamente per uomini e donne Commentare se esiste una % differenza significativa in termini di spesa media per l'acquisto del % bene 2 tra uomini e donne X2=X(:,2); % Codifico 1=Maschi, 0=Femmine group=zeros(size(X2,1),1); group(11:30)=1; % intervallo di confidenza al 99 per cento della spesa globale % e i due intervalli di confidenza della spesa per maschi e femmine. % Intervallo di confidenza per la spesa globale mea=mean(X2); scor=std(X2); n=length(X2); pertstud=tinv(0.995,n-1); sqrtn=sqrt(n); Cint=[mea-pertstud*scor/sqrtn mea+pertstud*scor/sqrtn]; disp('Estremi dell''intervallo di confidenza della spesa globale al 99 per cento') disp(Cint) %% Calcolo intervallo di confidenza della spesa per gli uomini X2maschi=X2(group==1); mea=mean(X2maschi); scor=std(X2maschi); n=length(X2maschi); pertstud=tinv(0.995,n-1); sqrtn=sqrt(n); CintM=[mea-pertstud*scor/sqrtn mea+pertstud*scor/sqrtn]; disp('Estremi dell''intervallo di confidenza della spesa globale al 99 per cento per gli uomini') disp(CintM) %% Intervallo di confidenza al 99 per cento della spesa globale per le donne X2donne=X2(group==0); mea=mean(X2donne); scor=std(X2donne); n=length(X2donne); pertstud=tinv(0.995,n-1); sqrtn=sqrt(n); CintF=[mea-pertstud*scor/sqrtn mea+pertstud*scor/sqrtn]; disp('Estremi dell''intervallo di confidenza della spesa globale al 99 per cento per le donne') disp(CintF) %% Calcolo intervallo di confidenza utilizzando la funzione grpstats statstbl = grpstats(X2,group,'meanci',0.01); disp(array2table(statstbl,'RowNames',{'Int conf Donne' 'Int conf Uomini'},... 'VariableNames',{'Estremo inferiore' 'Estremo superiore'})); % Commento gli uomini tendono a spendere di più (in media) rispetto alle % donne per l'acquisto del bene 2. Gli intervalli di confidenza al 99 per % cento sono in parte sovrapposti % Il boxplot di seguito fornisce informazioni ulteriori sulla distributione % di X2 distinta per maschi e femmine figure boxplot(X2,group,'Labels',{'Donne', 'Uomini'}) %% Data la seguente tabella di contingenza % Trattamento \ Esito Guariti Non Guariti % Farmaco 1 52 10 % Farmaco 2 40 11 % Calcolare la tabella delle frequenze attese nell'ipotesi di indipendenza % Calcolare l'indice Chi2 ed il relativo pvalue, % l'indice di Cramer ed il relativo intervallo di confidenza % Calcolare e commentare il rapporto dei prodotti incrociati % Calcolare e commentare l'indice U. %% Costruzione tabelle N e Ntable N=[52 10; 40 11]; n=sum(N,'all'); Ntable=array2table(N,'RowNames',{'Farmaco 1', 'Farmaco 2'},... 'VariableNames',{'Guariti' 'Non Guariti'}); Ntheo=sum(N,2).*sum(N,1)/n; Ntabletheo=array2table(Ntheo,'RowNames',{'Farmaco 1', 'Farmaco 2'},... 'VariableNames',{'Guariti' 'Non Guariti'}); disp('Tabella delle frequenze effettive') disp(Ntable) disp('Tabella delle frequenze teoriche') disp(Ntabletheo) % Le frequenze teoriche sono molto simili a quelle effettive. % L'associazione tra tipo di farmaco e guarigione non dovrebbe essere % significativa. out=corrNominal(Ntable); disp('Indice Chi2') disp(out.Chi2pval) % Il valore del test chi 2 è distribuito come una v.c. Chi2 con 1 grado di % libertà. disp('p-value indice Chi2') disp(out.Chi2) % pvalue elevato==> associazione non significativa disp('Indice di Cramer') out.ConfLimtable('CramerV',:) % Associazione molto bassa pari al 7 per cento del valore massimo possibile disp('Indice dei rapporti incrociati theta') th=(N(1,1)*N(2,2))/(N(1,2)*N(2,1)); disp(['Il valore dell''indice \theta è ' num2str(th)]) % Valore vicino ad 1 (ossia all'ipotesi di indipendenza) % Calcolo dell'indice $\theta$ utilizzando le funzioni MATLAB prod, diag e flip thchk=prod(diag(N))/prod(diag(flip(N))); %% Indice U (varia tra 0 e 1) sqrtth=sqrt(th); U=(sqrtth-1)/(sqrtth+1); disp(['Il valore dell''indice U è ' num2str(U)]) % L'informazione che proviene da quest'indice è in accordo con l'indice di % Cramer. % Conclusione: relazione assolutamente non significativa tra "tipologia di % farmaco" e guarigione/non guarigione