str(Dati) 'data.frame': 42 obs. of 6 variables: $ SESSO: Factor w/ 2 levels "M","F": $ ETA : int $ REG : int $ TIT : int $ GV : int $ RED : int"> str(Dati) 'data.frame': 42 obs.">

La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ESERCITAZIONI R 1. Gestione dati 1 – Caricamento dati > Dati<-read.table("Dataset_220311.csv", header=TRUE, sep=";") > str(Dati) 'data.frame': 42 obs.

Presentazioni simili


Presentazione sul tema: "ESERCITAZIONI R 1. Gestione dati 1 – Caricamento dati > Dati<-read.table("Dataset_220311.csv", header=TRUE, sep=";") > str(Dati) 'data.frame': 42 obs."— Transcript della presentazione:

1 ESERCITAZIONI R 1

2 Gestione dati 1 – Caricamento dati > Dati<-read.table("Dataset_ csv", header=TRUE, sep=";") > str(Dati) 'data.frame': 42 obs. of 6 variables: $ SESSO: int $ ETA : int $ REG : int $ TIT : int $ GV : int $ RED : int

3 Gestione dati 2 – Conversione variabili quantitative in fattori > Dati$SESSO<-factor(Dati$SESSO, labels=c("M","F")) > str(Dati) 'data.frame': 42 obs. of 6 variables: $ SESSO: Factor w/ 2 levels "M","F": $ ETA : int $ REG : int $ TIT : int $ GV : int $ RED : int

4 Gestione dati 3 – Conversione variabili quantitative in fattori > library(Rcmdr) ………. > str(Dati) 'data.frame': 42 obs. of 6 variables: $ SESSO: Factor w/ 2 levels "M","F": $ ETA : int $ REG : Factor w/ 5 levels "Lazio","Campania",..: $ TIT : Factor w/ 4 levels "L. elementare",..: $ GV : int $ RED : int

5 Gestione dati 4 – Rinominare una variabile e salvare il file di dati attivo > names(Dati) [1] "SESSO" "ETA" "REG" "TIT" "GV" "RED" > names(Dati)[c(5)]<-c("GI_VAC") > str(Dati) 'data.frame': 42 obs. of 6 variables: $ SESSO : Factor w/ 2 levels "M","F": $ ETA : int $ REG : Factor w/ 5 levels "Lazio","Campania",..: $ TIT : Factor w/ 4 levels "Lic. elementare",..: $ GI_VAC: int $ RED : int > save("Dati", file="C:/Users/Mario/Documents/Dati.rda") (> load("C:/Users/Mario/Documents/Dati.rda")) 5

6 Analisi monovariata 1 – Distribuzioni di frequenza attach(Dati) > table(REG) REG Lazio Campania Toscana Sicilia Lombardia > table(REG)/length(REG) REG Lazio Campania Toscana Sicilia Lombardia

7 Analisi monovariata 2 – Distribuzioni di frequenza e rappresentazioni grafiche > (table(REG)/length(REG))*100 REG Lazio Campania Toscana Sicilia Lombardia > pie(table(REG)) 7

8 Analisi monovariata 3 – Rappresentazioni grafiche > colori=c("red","blue","yellow","green","orange") > pie(table(REG), col=colori, main="Diagramma a torta delle regioni di provenienza") 8

9 Analisi monovariata 4 – Rappresentazioni grafiche > slices<-c(26,19,19,17,19) > lbs<-c("Lazio","Campania","Toscana","Sicilia","Lombardia") > lbs<-paste(lbs,slices) > lbs<-paste(lbs,"%",sep="") > pie(slices, labels=lbs, col=colori,main="Diagramma a torta delle regioni di provenienza") 9

10 Analisi monovariata 5 – Rappresentazioni grafiche 10

11 Analisi monovariata 6 – Rappresentazioni grafiche > library(plotrix) > pie3D(slices,labels=lbs, col=colori, main="Diagramma a torta delle regioni di provenienza") 11

12 Analisi monovariata 7 – Rappresentazioni grafiche > plot(REG) 12 > plot(REG, col="dark blue", ylim=c(0,12), main="Grafico a barre delle regioni di provenienza")

13 Analisi monovariata 8 – Variabili quantitative > summary(GI_VAC) Min. 1st Qu. Median Mean 3rd Qu. Max > mean(GI_VAC) [1] > median(GI_VAC) [1] 14 > min(GI_VAC) [1] 3 13

14 Analisi monovariata 9 – Variabili quantitative > max(GI_VAC) [1] 30 > range(GI_VAC) [1] 3 30 > quantile(GI_VAC) 0% 25% 50% 75% 100%

15 Analisi monovariata 10 – Variabili quantitative > var(GI_VAC) [1] > sd(GI_VAC) [1] > cv(GI_VAC) #richiede il pacchetto labstatR [1]

16 Analisi monovariata 11 – Variabili quantitative Boxplot > boxplot(GI_VAC, main="Boxplot distribuzione giorni vacanza") 16

17 Analisi monovariata 12 – Variabili quantitative: aggregazione delle modalità in classi > table(ETA) ETA > table(cut(ETA,breaks=c(0,20,40,60,80))) (0,20] (20,40] (40,60] (60,80] > table(cut(ETA,breaks=c(0,20,40,60,80),right=FALSE)) [0,20) [20,40) [40,60) [60,80)

18 Analisi monovariata 13 – Variabili quantitative rappresentazioni grafiche > hist(ETA) > hist(ETA,xlab="Età",col="orange", main="Istogramma delle età") 18

19 Analisi monovariata 14 – Rappresentazioni grafiche > hist(ETA,c(10,20,30,50,80),xlab="Età",col="orange", main="Istogramma delle età") 19

20 Analisi monovariata 15 – Variabili quantitative: rappresentazioni grafiche Nella precedente espressione, di default le classi sono aperte a sinistra: (a,b] ad eccezione della prima Aggiungendo il parametro right impostato a FALSE le classi sono invece aperte a destra: [a,b) Il comando diventerebbe: > hist(ETA,c(10,20,30,50,80),right=FALSE, xlab="Età",col="orange", main="Istogramma delle età") 20

21 Analisi monovariata 16 – Variabili quantitative: concentrazione di caratteri trasferibili > table(RED) RED > gini(RED) #richiede il pacchetto labstatR … $R [1] …… 21

22 Analisi monovariata 17 – Variabili quantitative: concentrazione di caratteri trasferibili 22

23 Analisi bivariata 1 – Tabelle di contingenza >tab1<-table(SESSO, REG) > tab1 REG SESSO Lazio Campania Toscana Sicilia Lombardia M F

24 Analisi bivariata 2 – Tabelle di contingenza > margin.table(tab1, margin=1) SESSO M F 21 > margin.table(tab1, margin=2) REG Lazio Campania Toscana Sicilia Lombardia > margin.table(tab1) [1] 42 24

25 Analisi bivariata 3 – Tabelle di contingenza – rappresentazione grafica > barplot(tab1,ylab="Sesso", beside=T, col=c("dark red", "orange"),main="Distribuzione per sesso e per regione di provenienza") > legend("topright",c("M","F"),fill=c("dark red", "orange")) 25

26 Analisi bivariata 4 – Tabelle di contingenza rappresentazione grafica > barplot(tab1,ylab="Sesso", col=c("dark red", "orange"),main="Distribuzione per sesso e per regione di provenienza") > legend("topright",c("M","F"),fill=c("dark red", "orange")) 26

27 Analisi bivariata 5 – Misure di asociazione tra due variabili nominali Se il campione è non probabilistico si può utilizzare lndice chi quadrato (e le sue misure derivate) per verificare se esiste dipendenza tra due caratteri tipicamente qualitativi nominali, ma anche ordinali o quantitativi divisi in classi > chi2(REG,TIT) [1] > phi2<-chi2(REG,TIT)/42 > phi2 [1] > V<-sqrt(phi2/3) > V [1]

28 Analisi bivariata 6 – Misure di asociazione tra due variabili nominali Se invece il campione è probabilistico e si può fare inferenza, è utile calcolare il test del chi quadrato > chisq.test(tab3) Pearson's Chi-squared test data: tab3 X-squared = , df = 12, p-value =

29 Analisi bivariata 7 – Misure di asociazione tra due variabili quantitative La correlazione misura quale direzione e quanto intenso è il legame lineare esistente tra due variabili quantitative. Si utilizza di solito il coefficiente di correlazione lineare di Pearson ρ=σ xy /σ x σ y > cor(ETA,RED) [1]

30 Analisi bivariata 8 –Variabili quantitative rappresentazione grafica > plot(ETA,RED,xlab="Età",ylab="Reddito mensile", main="Grafico a dispersione del reddito e dell'età") 30

31 31 Regressione Lineare

32 32

33 33

34 34 In R si avrà: Il coefficiente dellintercetta (239,512) costituisce il valore α dellequazione della retta (ovvero lintersezione tra la retta e lasse delle ordinate, il coefficiente di RED (28,417) costituisce il valore β, ovvero il coefficiente angolare della retta. Dunque: RED=239, ,417*ETA

35 35 I valori stimati di reddito in funzione delletà mediante la retta di regressione si ottengono come segue: Il significato del coefficiente di regressione è il seguente: per ogni incremento unitario della variabile indipendente, la variabile dipendente cresce di 28,417 unità.

36 36 La retta può essere rappresentata allinterno del diagramma a dispersione delle due variabili nel modo seguente:

37 37 Una retta di regressione multipla si ottiene semplicemente inserendo più di una variabile indipendente:

38 38 In questo caso il significato dei coefficienti di regressione, ad esempio di quello delletà è il seguente: per ogni incremento unitario delletà, mantendo costanti le altre variabili indipendenti (ovvero in questo caso la sola variabile GI_VAC), la variabile dipendente cresce di 30,936 unità.

39 Regressione Logistica 39

40 Il modello di regressione logistica viene utilizzato quando si è interessati a studiare o analizzare la relazione causale tra una variabile dipendente dicotomica e una o più variabili indipendenti. Nella regressione logistica la variabile dipendente, essendo dicotomica, definisce lappartenenza a un gruppo (o allaltro). Consideriamo ad esempio il seguente dataset: La variabile dipendente sarà viaggio, che assume la modalità viaggio_si se il rispondente al questionario ha fatto almeno un viaggio con la propria famiglia negli ultimi 4 mesi e viaggi_no altrimenti. La variabile bipartisce quindi il campione in due gruppi, e ciò che interessa non è il valore atteso (o predetto), come nella regressione lineare, ma la probabilità che un dato soggetto appartenga a meno a uno dei due gruppi. 40

41 Occorre introdurre alcune grandezze- Dovrebbe essere abbastanza noto il concetto di probabilità. La probabilità di un evento è pari al rapporto tra il numero di eventi favorevoli e il numero di eventi complessivi. Essendo: Risulta che, preso a caso un individuo nel campione, la probabilità che abbia fatto almeno un viaggio con la famiglia negli ultimi 4 mesi è pari a 0,32. Meno noto è lodds, un modo di esprimere la probabilità mediante un rapporto. Si calcola facendo il rapporto tra le frequenze osservate in un livello con le frequenze osservate nellaltro, ovvero, numero di eventi favorevoli diviso numero di eventi contrari. Il valore dellodds esprime il rapporto tra due categorie. Nel caso specifico: Mediante lodds vediamo che la relazione tra chi ha fatto almeno un viaggio e chi non lo ha fatto è pari a 0,48. 41

42 La lettura dellodds si fa con riferimento al denominatore: in altre parole, per ogni individuo che non ha fatto il viaggio ci sono 0,48 individui che lo hanno fatto. Ovviamente un valore dellodds pari a 1 indica uguale frequenza tra eventi favorevoli e contrari, un valore maggiore di 1 indica che ci sono più eventi favorevoli e un valore minore di 1, come nellesempio, indica che cii sono più eventi sfavorevoli. Per esprimere la relazione tra due categorie in funzione di unaltra variabile (valutare cioè lassociazione tra due variabili) è possibile utilizzare un altro indice chiamato odds ratio o rapporto tra gli odds. Tale indice si ottiene facendo un rapporto tra gli odds di una data variabile (ad esempio, la variabile Y) ottenuti per ciascun livello della seconda variabile (ad esempio, la variabile X). Supponiamo ad esempio di voler esprimere lodds della variabile viaggio alla luce di unaltra variabile del dataset, ad esempio la variabile pos che suddivide ulteriormente il campione tra le professioni insegnanti ed ingegneri. La domanda che possiamo porci è la seguente: il rapporto (odds) tra coloro che hanno fatto almeno un viggio con la famiglia negli ultimi 4 mesi e coloro che non lo hanno fatto è uguale nei differenti lavori? 42

43 Per descrivere la diversa distribuzione delle categorie della variabile sesso nelle categorie della variabile lavoro mediante una statistica unica possiamo utilizzare lodds ratio, che come detto precedentemente corrisponde al rapporto tra i rapporti tra le categorie. Essendo: Risulta: OR=(6019/12840)/(4783/7359)=0,72 Per linterpretazione degli odds ratio si procede nel seguente modo: valori diversi da 1 indicano unassociazione tra le variabili. In questo caso, poiché il valore è diverso da 1, si può dire che esiste unassociazione tra le variabili viaggio e pos. In particolare, si osserva che la proporzione di coloro che hanno viaggiato tra gli insegnanti è 0,72 volte la stessa proporzione tra gli ingegneri. In altre parole, per ogni ingegnere che ha viaggiato con la famiglia (piuttosto che non farlo) ci sono 0,72 insegnanti che hanno viaggiato con la famiglia (piuttosto che non farlo); gli ingegneri viaggiano relativamente di più. 43

44 Tornando alla regressione logistica, per esprimere la relazione tra la variabile indipendente e la variabile dipendente in termini lineari possiamo partire dalla seguente formulazione in cui il valore atteso della variabile dipendente è la probabilità, per cui la probabilità di Y = 1 come funzione lineare di X diventa: P(Y =1) =α + βX Questo modello non è adeguato, dal momento che i valori della probabilità sono compresi tra 0 e 1, mentre il termine α + βX può assumere valori che vanno da – a +. Allora, per provare a risolvere il problema possiamo applicare la trasformazione esponenziale al termine di destra della funzione che diventa: P(Y = 1) = eα +βX Anche questa trasformazione, seppure consente di restringere i valori dellequazione entro il range 0 +, non risolve completamente il problema. Ovviamente se scegliamo come riferimento gli insegnanti si avrà: OR=(4783/7359)/(6019/12840)= 1,3865 Per cui per ogni insegnante che ha viaggiato con la famiglia (piuttosto che non farlo) ci sono 1,39 ingegneri che hanno viaggiato con la famiglia (piuttosto che non farlo). 44

45 A partire dalla precedente equazione con opportuni passaggi matematici si perviene alla formula: E lequazione della retta diviene: 45

46 Per ottenere una regressione logistica con R si digita il comando: Avendo cura, dentro la parentesi, di inserire prima la variabile dipendente e poi, dopo la tilde, la variabile indipendente. Base è il dataset cje contiene le variabili, mentre family=binomial è un input fisso per ottenere la regressione logistica. Si ottiene: 46

47 Come si vede, loutput è praticamente identico a quello della regressione lineare. I punti più importanti è il coefficiente di regressione (tra laltro significativo, in questo esempio, come si vede dalle stellette a destra) calcolato, come si vede, prendendo come riferimento gli insegnanti. Se si applica a tale coefficiente loperatore matematico esponenziale (lopposto del logaritmo) si ottiene: Pari allodds ratio che abbiamo trovato a mano in precedenza, e, ovviamente con la stessa interpretazione. Naturalmente, in una regressione logistica possono essere inserite più variabili indipendenti. Se queste variabili sono dicotomiche, sono già pronte per essere inserite nella regressione. Se invece esse presentano più di due modalità, la via più semplice è quella di creare delle variabili cosiddette dummy, composte di soli 0 e 1, per ciascuna modalità tranne che per una scelta come riferimento. Nel nostro dataset di esempio, esisteva una variabile provenienza geografica a 3 modalità: nord, centro e sud. A partire da essa sono state costruite due variabili dummy nord e sud. Le variabili dummy nord sono state costruita a partire da quella provenienza geografica (pg) nel modo seguente: 47

48 nord=1 se pg=nord, nord=0 altrimenti sud=1 se pg=sud, sud=0 altrimenti La modalità esclusa, centro, diventa automaticamente il riferimento, nel senso che andremo a valutare leffetto di nord e sud sulla variabile dipendente viaggi confrontandole con il centro. Si avrà: 48

49 Per cui: Per ogni insegnante che ha viaggiato con la famiglia negli ultimi 4 mesi ci sono 1,41 ingegneri che lo hanno fatto; Per ogni individuo proveniente dal centro che ha viaggiato con la famiglia negli ultimi 4 mesi ci sono 1,03 individui provenienti dal nord che lo hanno fatto; Per ogni individuo proveniente dal centro che ha viaggiato con la famiglia negli ultimi 4 mesi ci sono 0,66 individui provenienti dal sud che lo hanno fatto; In termini di modalità dunque, essere ingegnere piuttosto che insegnante ha un effetto favorevole sulla variabile dipendente, provenire dal nord piuttosto che dal centro ha un leggerissimo effetto favorevole, mentre provenire dal sud piuttosto che dal centro ha un effetto sfavorevole. 49

50 Analisi delle Componenti Principali 50

51 Esempio: Analisi di 15 tipi di gelato 51

52 Quando le p variabili tutte quantitative sono numerose e molto difficile riuscire a cogliere le strutture esistenti nei dati. Si pone quindi il PROBLEMA: è possibile sostituire le p variabili originarie con un numero minore di variabili artificiali (k<

53 Nel caso dei gelati il numero delle variabili non è particolarmente elevato, ma lapplicazione dellACP è comunque utile …. Una volta caricato il pacchetto FactoMineR, che useremo per lacp, si lancia il comando: La sintassi è la seguente: Si crea un nuovo oggetto in R il cui nome – come si vede – è assolutamente ininfluente e a discrezione, e si fornisce come input alla funzione PCA il dataset oggetto di studio. Essendo le variabili tutte quantitative, le utilizziamo tutte e quindi non cè bisogno di specificare nulla. Si ottengono i due grafici seguenti: 53

54 Come noto, le componenti principali sono in numero esattamente pari a quello delle variabili originarie, quindi nel caso specifico sono pari a 6. Si tratta di: a)Scegliere il numero di componenti che intendiamo utilizzare; b)Interpretare tali componenti, ovvero dargli un significato. 54

55 Il grafico precedente, detto cerchio delle correlazioni, ci aiuta per entrambe le operazioni. Esso rappresenta il piano formato dalle prime due componenti principali, e le percentuali accanto agli assi indicano la percentuale di informazione associata a ciascuno di essi. Il primo asse (ovvero la prima componente principale) che è quello orizzontale spiega il 77% circa dellinformazione contenuta nella matrice dei dati, il secondo, quello verticale, ne spiega il 17% circa. Dunque le prime due CP riassumono in maniera molto soddisfacente le informazioni delle 6 variabili di partenza (il 94% circa: la perdita è uguale solo al 6,246% della varianza totale) e possono essere assolutamente sufficienti a rappresentare i dati originari, con lulteriore vantaggio che due sole variabili individuano un unico piano e quindi permettono una comoda rappresentazine grafica bidimensionale. Per vedere comunque le percentuali di informazione associate a ciascuna componente principale basta digitare il comando: 55

56 Dunque possiamo pertanto considerare solo le prime due CP. Ma quale significato va attribuito a ciascuna di queste due variabili sintetiche? La risposta è data dalla relazione tra le due CP e le variabili originarie, mostrata ancora nel cerchio delle correlazioni. Nel grafico ciascuna variabile è rappresentata da una freccia. Una variabile è tanto più correlata con un asse quanto più è grande la sua proiezione sullasse stesso, e questo dipende dalla lunghezza della freccia ( più è lunga più è grande la proiezione) e dallangolo formato dalla freccia con lasse (più langolo è piccolo, maggiore sarà la proiezione). Nellingrandimento, la linea verde scuro rappresenta la proiezione della variabile carboidrati sul primo asse, quella celeste la proiezione sul secondo asse. Tale variabile risulta evidentemente maggiormente associata con il primo asse. Questa analisi va ripetuta variabile per variabile. 56

57 In base a quanto detto, la prima CP presenta una relazione diretta molto forte con le variabili nutrizionali e più debole con il peso, mentre la seconda CP mostra una relazione diretta abbastanza elevata solo con il peso. Dunque: -la prima CP può interpretarsi come un INDICATORE SINTETICO DELLE CARATTERISTICHE NUTRIZIONALI; -la SECONDA CP è connessa al PESO DELLA SINGOLA PORZIONE DI GELATO. Questo è dunque il significato delle prime due componenti principali. Praticamente tutta linformazione contenuta nella matrice iniziale dei dati, contenuta in 6 variabili, è riassumibile utilizzandone solamente due. Il secondo grafico mostra la disposizione delle singole unità statistiche nel piano formato dalle prime due componenti principali. 57

58 Sulla base del significato attribuito alle CP, nella parte del grafico verso destra si collocano i gelati con i valori più elevati delle variabili nutrizionali e verso lalto quelli di peso maggiore. In prossimità dellorigine degli assi si posizionano i gelati con valori prossimi alla media per entrambi gli aspetti riassunti dalle prime 2 CP. 58

59 Vediamo una seconda applicazione su un dataset più complesso. 59

60 Le prime 12 variabili contengono le temperature medie per i dodici mesi dellanno per 23 capitali europee. Le variabili Annual e Amplitude rappresentano rispettivamente le temperature medie annuali e la maggiore escursione termica (differenza tra la maggior temperatura media mensile e quella minore). Infine ci sono le due variabili posizionali longitudine e latitudine. Tutte le prime 16 variabili sono quantitative; lultima è una variabile qualitativa che indica la posizione geografica della città in Europa. Obiettivo dellindagine è quello di studiare le temperature delle capitali europee. Come visto, la matrice dei dati è composta da 17 variabili. Trattandosi di variabili quantitative operiamo una pca allo scopo di vedere se è possibile ridurre il numero delle variabili mantenendo un alto contenuto informativo. In questo caso distingueremo tra variabili attive e variabili illustrative; solo le prime concorrono a costruire le variabili artificiali che chiamiamo componenti principali, mentre delle seconde studiamo lassociazione con le componenti principali. In questo caso considereremo attive le prime 12 variabili, ovvero le temperature medie mensili, mentre le altre saranno illustrative: 4 quantitative e lultima, la posizione geografica, qualitativa. 60

61 La sintassi del comando è la seguente: In cui indichiamo alla funzione che ci sono variabili illustrative e le distinguiamo in quantitative (quanti.sup) e qualitative (quali.sup). Le variabili illustrative vengono indicate sempre seguendo lordine in cui esse compaiono nelloutptu del comando str(temperature). Siccome in questo dataset esse sono consecutive, possiamo indicarle con lespressione 13.16, ad indicare che dalla 13° alla 16° sono appunto illustrative quantitative. Altrimenti avremmo potuto usare la sintassi : Del tutto equivalente. Si ottiene il cerchio delle correlazioni: 61

62 In cui sono anche rappresentate le variabili illustrative quantitative (in blu). Linterpretazione delle prime due componenti principali (sufficienti ai nostri scopi in quanto restituenti oltre il 98% dellinformazione complessiva) avviene comunque sulla base delle variabili attive. 62

63 La prima CP presenta una relazione diretta molto forte con tutte le variabili riportanti le temperature medie mensili. Essa può quindi essere interpretata come una misura media complessiva, ovvero come una temperatura media annuale. Questa interpretazione è supportata dallosservazione che la variabile illustrativa annual, avente lo stesso significato, è praticamente coincidente con il primo asse. Osservndo le direzioni delle frecce, si può pertanto concludere che il primo asse distingue le capitali con una bassa temperatura media annua (a sinistra) da quelle che hanno unalta temperatura media annua (a destra). La seconda CP sembra distinguere i mesi di maggio, giugno, luglio e agosto in alto, dai mesi di dicembre, gennaio e febbraio in basso. Tenendo conto che si tratta rispettivamente dei mesi più caldi e più freddi si può concludere che il secondo asse distingue la bella stagione (in alto) da quella brutta (in basso). Questa opposizione riflette il fatto che, per una data temperatura media annua (ovvero, fissato un punto dellasse orizzontale), alcune città sono piuttosto calde in estate rispetto a tale temperatura, altre sono relativamente fredde. 63

64 Il secondo grafico, che riporta la collocazione delle città nel piano formato dalle prime due componenti principali, aiuta a capire meglio soprattutto linterpretazione dellasse verticale. Città come Kiev, Mosca o Budapest hanno temperature piuttosto alte durante lestate, e temperature piuttosto basse durante il resto dellanno. 64

65 Daltra parte, città come Dublino e Reykjavic hanno temperature piuttosto basse durante lestate e meno rigide durante linverno. Si distinguono in questo modo città costiere (come queste ultime), con una bassa escursione termica, da città continentali (come le altre dette in precedenza) con una escursione termica più forte. Questultimo fatto è anche desumibile dal rapporto che esiste tra la seconda componente principale e la variabile illustrativa amplitude. Infine, sul grafico è riportata la distribuzione delle modalità della variabile qualitativa area, in cui ovviamente trovano la corretta collocazione le varie città. 65

66 Analisi delle Corrispondenze Multiple 66

67 Lanalisi delle corrispondenze multiple è una tecnica che produce risultati piuttosto simili a quelli dellanalisi in componenti principali ma lavora su variabili qualitative. In realtà lalgoritmo matematico su cui si basa è profondamente diverso da quello dellacp, per cui bisogna avere molta cautela nel portare avanti questa analogia. L output dellmca è, in genere, prettamente grafico: obiettivo di questa analisi è la rappresentazione grafica delle associazioni esistenti tra le variabili qualitative oggetto di studio e le loro modalità, allo scopo di cogliere andamenti sottostanti e collegamenti che non è possibile cogliere nella matrice dei dati originale. Questo è uno dei motivi, tra laltro, per cui spesso la percentuale complessiva di informazione associata agli assi individuati è sensibilmente più bassa di quella che in genere si ottiene in una acp. La perdita di informazione è compensata dalla rappresentabilità grafica. 67

68 Caricato il pacchetto FactoMineR: Il comando da digitare è il seguente: 68

69 Vediamo i singoli elementi di questo comando: a sinistra del simbolo di assegnazione, il nome da dare alloggetto R che andiamo a creare; tale nome è assolutamente ininfluente –come si vede dalla scelta fatta. Tra parentesi, i vari input che vanno forniti al comando MCA: 1.Tea_survey2: il nome del dataset su cui si opera; 2.Ncp=2: Il numero di fattori da estrarre (teoricamente, tanti quante sono le variabili attive; in realtà molto spesso lobiettivo di una mca è quello di ottenere un grafico, per cui in questo caso diciamo alla funzione di estrarne 2 per avere un grafico bidimensionale. Se non si indica nulla di default vengono estratti 5 fattori). 3.Quali.sup=c(1,6,15): qui vanno indicate le variabili illustrative qualitative. Nella parentesi vanno indicate le loro posizioni nelloutput del comando str(tea_survey2). Le illustrative considerate sono età, frequenza e sesso e le cui posizioni - nella slide precedente- sono appunto rispettivamente 1,6 e Altri eventuali input che possono essere forniti alla funzione MCA sono reperibili nella guida di R, digitando ?MCA e premendo invio. 69

70 Si ottengono i tre grafici seguenti: In questo grafico sono rappresentate le v. attive in rosso e quelle illustrative in verde. Interessano le prime: variabili poste più a destra sono maggiormente legate con il primo asse fattoriale, quello orizzontale. Variabili poste più in alto sono maggiormente legate con il secondo asse fattoriale, quello verticale. Le percentuali tra parentesi accanto agli assi indicano la percentuale di informazione (variabilità) restituita da ciascun asse; in questo caso quindi, i due assi restituiscono complessivamente il 18% circa dellinformazione originaria. 70

71 Questo grafico mostra la nuvola dei punti, ovvero la disposizione degli individui (le righe della matrice originaria) nel piano fattoriale generato dalle variabili attive. 71

72 Questo grafico mostra la disposizione delle modalità delle v. attive (in rosso) e delle modalità delle v. illustrative (in verde) nel piano fattoriale. Siccome il passo successivo consiste nellinterpretazione di ciascun asse fattoriale, conviene eliminare dal grafico le v. illustrative e cercare di rendere più chiare le etichette delle varie modalità. A tale scopo si può digitare il comando: 72

73 1.pippo: il nome delloggetto R creato in precedenza, contenente tutti gli output dellmca. 2.Invisible=c(ind, quali.sup): si dice alla funzione di eliminare dal grafico gli individui (ind) e le modalità delle v. illustrative (quali.sup), senza indicare le v. attive (var). 3.Cex=0.7: parametro grafico con cui si ottengono caratteri più piccoli e quindi etichette più leggibili 73

74 Linterpretazione degli assi si basa sullanalisi della disposizione delle modalità in orizzontale (primo asse fattoriale) e in verticale (secondo asse fattoriale). Nel primo caso a destra dellorigine troviamo modalità quali pub, tearoom, lunch, breakfast, work, friends, always, mentre a sinistra troviamo le corrispondenti negazioni (not pub, not tearoom, etc). Il primo asse si basa sulla tipologia di consumatori e distingue i consumatori abituali a destra dai consumatori occasionali a sinistra. Nel caso dellasse verticale, in alto troviamo modalità quali tea shop, unpackaged, price_upscale, cui si contrappongono in basso tea_bag, price-unknown, price_cheap, etc. Il secondo asse si basa sulla qualità del tè consumato e distingue tra un consumo di alta qualità in alto e un consumo di bassa qualità in basso. A fronte delle 18 variabili attive che avevamo considerato, loutput precedente ci dice che tenendo conto di questi due aspetti si considera quasi il 20% di tutto il contenuto informativo contenuto nella matrice dei dati originale. Questi due aspetti sono comunque i più importanti, tenendo conto che la portata del contenuto informativo di ciascun asse fattoriale è decrescente. 74

75 Per studiare le v. illustrative basta lanciare il comando: ottenendo: Da cui si evince ad esempio che le donne consumano più tè degli uomini (sono a destra sullasse orizzontale) ma questi ultimi bevono un tè migliore (sono più in alto sullasse verticale), oppure che a consumare il tè migliore sono soprattutto persone di una certa età (+60, in alto) rispetto ai giovani che bevono un tè di qualità inferiore (15-24, in basso) 75

76 76 Le variabili illustrative possono essere ovviamente anche di natura quantitativa. A tale scopo consideriamo il seguente dataset: Che è analogo al precedente con la sola differenza che la variabile età è quantitativa a tutti gli effetti, e non quantitativa suddivisa in classi e quindi qualitativa come in precedenza.

77 77 Il comando da lanciare è il seguente: I due assi fattoriali sono esattamente identici a quelli trovati prima, perché le variabili attive che li producono sono rimaste inalterate. Nelloutput della funzione cè però un grafico aggiuntivo:

78 78 Ovvero un cerchio delle correlazioni in cui possiamo leggere che la variabile illustrativa quantitativa age risulta legata quasi esclusivamente al secondo asse ed è concorde con lasse. Questo risultato non è sorprendente, pensando a come si disponevano in precedenza le modalità della variabile suddivisa in classi. Esse infatti si muovevano dal basso verso lalto, come mostra il vecchio grafico al quale è stata aggiunta la spezzata rossa per evidenziarne landamento

79 79 Tutti gli altri grafici risultano identici a quelli già visti tranne quello recante la disposizione delle variabili illustrative qualitative nel piano fattoriale, in cui ovviamente non cè più la variabile age.

80 Cluster Analysis 80

81 Si consideri il seguente dataset Costituito da un insieme di 6 variabili legate al fenomeno turistico registrate sulle 20 regioni italiane. Lobiettivo è quello di trovare dei gruppi di regioni che, rispetto alle variabili in esame, presentino un comportamento simile al loro interno e dissimile tra gruppi diversi. 81

82 Per operare una classificazione gerarchica, calcoliamo innanzitutto la matrice delle distanze euclidee: Poi ci calcoliamo il dendrogramma e lo rappresentiamo: 82

83 Tenendo conto che le classificazioni migliori si ottengono tagliando il dendrogramma in corrispondenza dei rami più alti, potreemo avere una classificazione a 2, 3 o al limite a 5 gruppi. Scegliendo quella da tre si ha: Per cui Piemonte, Abruzzo, Puglia, Valle dAosta, Marche, Molise, Basilicata, Sardegna e Calabria stanno tutte insieme e appartengono al gruppo 1, etc. I gruppi ottenuti andranno poi caratterizzati studiando le caratteristiche comuni dei loro elementi. 83

84 Volendo operare una classificazione su base partizionale si procede con il comando: A questo riguardo vale la pena osservare che: a)Nel caso dei cluster partizionali, il numero di gruppi va indicato a priori, senza alcun ausilio grafico (per cui spesso si va per tentativi); b)La classificazione è venuta identica a quella precedente (in quanto il dataset è molto piccolo e contiene poche variabili); in generale non è così perche gli algoritmi utilizzati sono molto diversi. 84

85 Unaltra classificazione su base partizionale, tramite un ulteriore diverso algoritmo, si ottiene con il comando: In questo caso, con lopzione medoids, si ottengono anche i centri dei 3 cluster, ovvero le unità statistiche che meglio rappresentano ciascun gruppo. Questo può essere un valido ausilio per la caratterizzazione dei gruppi ottenuti. 85

86 Spesso, soprattutto nel caso di grandi dataset con molte variabili, invece di classificare i dati originali si ricorre ad una precedente analisi fattoriale per ridurre le dimensioni, e si opera la cluster analysis sulle coordinate fattoriali. Il pacchetto FactoMineR permette di operare una cluster analysis gerarchica (metodo di ward) direttamente sugli assi fattoriali e non sui dati originali. Lavorando per continuità di esempio sul dataset turismo_08 (sebbene le sue dimensioni rendano assolutamente superfluo il ricorso allanalisi fattoriale), si procederà calcolandone le componenti principali e poi digitando il comando: (dove prendiamo solo le prime due componenti principali perché il dataset è piccolo) che restituisce il dendrogramma rappresentante la successione delle classificazioni e una riga scura rappresentante un suggerimento di taglio in base alla massimizzazione di un opportuno indice di validazione. 86

87 Non cè motivo per non accettare il suggerimento (che prevede dunque la scelta di 3 gruppi) per cui cliccando in corrispondenza della riga scura si ottiene: 87

88 88

89 E soprattutto: 89

90 Sui dati fattoriali si può anche operare una classificazione con metodo partizionale, ad esempio con il metodo delle k medie. Tale operazione però non può essere svolta direttamente da funzioni del pacchetto FactoMineR, per cui bisogna estrarre le coordinate fattoriali. Il comando: Crea un nuovo oggetto R contenente le 20 coppie di coordinate fattoriali, una coppia per ogni regione del dataset originario. Su di esso potremo lanciare il comando kmeans: Che produrrà, ad esempio, la seguente classificazione: 90

91 O ancora, tramite lalgoritmo pam: In cui, ad esempio, è cambiato il centro del primo cluster. 91

92 Analogo discorso può essere fatto, nel caso di variabili qualitative, per i risultati di una mca. Tornando allesempio del tè, in cui pippo era loggetto R contenente loutput dellmca,, va digitato il comando: Che restituisce come in precedenza il dendrogramma rappresentante la successione delle classificazioni e una riga scura rappresentante un suggerimento di taglio in base alla massimizzazione di un opportuno indice di validazione. Non cè motivo per non accettare il suggerimento (che prevede dunque la scelta di 3 gruppi) per cui cliccando in corrispondenza della riga scura si ottiene: 92

93 93

94 E soprattutto: 94

95 Che rappresenta la classificazione degli individui (si tratta evidentemente della stessa nuvola di punti ottenuta in precedenza con lmca) nei 3 gruppi. Le caratteristiche di ciascun gruppo dipendono dalla posizione del gruppo stesso rispetto agli assi fattoriali. Il gruppo verde ad esempio, per quanto detto sarà caratterizzato principalmente da bevitori abituali di tè. Attraverso il comando: Si ottengono comunque delle informazioni più precise in merito. Scorrendo loutput si arriva alla sezione category, che in questo caso significa gruppo e che quindi ha una voce per ciascun cluster: 95

96 96

97 97 Vengono rappresentate le modalità che, in ciascun cluster, presentano una significativa sovra o sotto presenza rispetto al dato campionario complessivo, e che quindi risultano particolarmente utili per caratterizzare il cluster stesso. In particolare: Global è la frequenza della modalità nel campione, ovvero nel dataset; Mod/Cla è la frequenza percentuale della modalità nel gruppo; Cla/Mod indica la percentuale che gli individui nel gruppo aventi questa modalità rappresentano sul totale. Nella slide precedente è riportato lestratto delloutput relativo al primo gruppo. Prendiamo ad esempio la terza riga, ovvero la modalità Not.tearoom della variabile tearoom (ovvero, coloro che non bevono il tè nelle apposite sale). In questo gruppo, il 97% circa degli individui presenta tale modalità a fronte di un valore campionario complessivo pari all80,6%. Questa modalità caratterizza quindi il primo gruppo, essendo decisamente più frequente nel gruppo rispetto al campione. Il 65% di tutti gli individui che non bevono il tè nella sala da tè si concentra in questo gruppo. La caratterizzazione dei gruppi si fa pertanto analizzando le modalità presentate in questo output.

98 98 Occorre fare attenzione peraltro a interpretare correttamente i dati riportati nelloutput. Le modalità indicate non sono infatti necessariamente quelle più frequenti nel gruppo, ma solo quelle che risultano statisticamente diverse, per eccesso o per difetto, rispetto al dato complessivo campionario. Consideriamo ad esempio la sesta riga, relativa alla modalità Not.friends della variabile friends (ovvero coloro che non bevono il tè con gli amici, contrapposta alla omonima modalità friends che indica coloro che lo fanno). Sebbene sia corretto caratterizzare il cluster in base a tale variabile, la distribuzione della variabile nel gruppo è: friends=52,44%, Not.friends=47,56. In altre parole, allinterno del gruppo sono di più coloro che bevono il tè con gli amici rispetto a coloro che non lo fanno. Ma la percentuale di questi ultimi (appunto, 47,56) risulta comunque maggiore in modo statisticamente significativo rispetto al dato complessivo campionario (pari al 34,66%). Per converso, essendo la variabile friends dicotomica, la modalità friends (27° riga nelloutput), pur essendo comunque la più frequente nel gruppo, risulta minore in modo statisticamente significativo rispetto al dato complessivo campionario (pari al 65,33%)

99 Analogamente, sui dati fattoriali dellmca si può anche operare una classificazione con metodo partizionale, ad esempio con il metodo delle k medie, operazione non possibile con il pacchetto FactoMineR. Occorre allora estrarre le coordinate fattoriali degli individui. La procedura è analoga a quella vista nel caso delle componenti principali: Crea un nuovo oggetto R contenente le 300 coppie di coordinate fattoriali, una coppia per ogni individuo del dataset originario. Su di esso potremo lanciare il comando kmeans: Che produrrà, ad esempio, la seguente classificazione: 99


Scaricare ppt "ESERCITAZIONI R 1. Gestione dati 1 – Caricamento dati > Dati<-read.table("Dataset_220311.csv", header=TRUE, sep=";") > str(Dati) 'data.frame': 42 obs."

Presentazioni simili


Annunci Google