La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

2. Analisi descrittive Enrico Properzi - A.A. 2010/2011.

Presentazioni simili


Presentazione sul tema: "2. Analisi descrittive Enrico Properzi - A.A. 2010/2011."— Transcript della presentazione:

1 2. Analisi descrittive Enrico Properzi - enrico.properzi3@unibo.itenrico.properzi3@unibo.it A.A. 2010/2011

2 Dopo aver importato i dati da un file di testoo e aver assegnato un nome al data frame corrispondente è sempre opportuno controllare la tipologia delle variabili attraverso il comando str() Loutput del comando ci dà informazioni sulla tipologia delle variabili del dataframe. A volte può essere necessario riqualificare le variabili. Funzioni di conversione: as.factor(), as.matrix(), as.vector(), as.array(), as data.frame(), as numeric(), as characters(), as logical(), as complex() > consumi <- read.table("consumi-reddito.txt", header=T) > studenti <- read.table("studenti.txt", header=T)

3 Analisi preliminari di un data frame: length (x)numero di elementi max(x)massimo min(x)minimo range(x)campo di variabilità sum(x)somma dei valori in x prod(x)prodotto dei valori in x mean (x)media aritmetica median (x)mediana quantile (x,p)p-esimo quantile var (x)varianza corretta sd(x)deviazione standard cov (x,y)covarianza tra x e y cor (x,y)correlazione tra x e y dist (x)matrice di distanze

4 Le funzioni cov() e cor() se applicate a più variabili quantitativelcolano risopettivamente la matrice di varianze e covararianze e quella di correlazione > consumi <- read.table("consumi-reddito.txt", header=T) > str(consumi) 'data.frame': 13 obs. of 3 variables: $ ETA : int 28 27 35 48 22 36 24 29 44 55... $ REDDITO: int 1045 1020 1450 1824 1250 2250 980 1660 1360... $ CONSUMI: int 560 750 1110 1540 890 1845 450 950 1200 1790... > cov(consumi) ETA REDDITO CONSUMI ETA 94.1923 3677.397 3633.654 REDDITO 3677.3974 268170.077 238466.635 CONSUMI 3633.6538 238466.635 239043.590 > cor(consumi) ETA REDDITO CONSUMI ETA 1.0000000 0.7316910 0.7657681 REDDITO 0.7316910 1.0000000 0.9418547 CONSUMI 0.7657681 0.9418547 1.0000000 N.B. il comando cov() calcola la varianza corretta!!

5 > cov(studenti[,c("MAT","STAT","ECON","DIR")]) MAT STAT ECON DIR MAT 14.416975 2.0383395 1.4611317 7.2860920 STAT 2.038340 8.3704389 -0.9783184 -0.0306716 ECON 1.461132 -0.9783184 6.8482285 1.8704389 DIR 7.286092 -0.0306716 1.8704389 6.0465362 > cor(studenti[,c("MAT","STAT","ECON","DIR")]) MAT STAT ECON DIR MAT 1.0000000 0.185551868 0.1470494 0.780376616 STAT 0.1855519 1.000000000 -0.1292162 -0.004311308 ECON 0.1470494 -0.129216200 1.0000000 0.290670583 DIR 0.7803766 -0.004311308 0.2906706 1.000000000

6 Il comando dist() permette di costruire la matrice di distanza o dissimilarità. Nel primo caso, essendo calcolata per una sola variabile, non rappresenta altro che le differenze dei valori della variabile tra le singole unità Nel secondo caso sono state considerate due variabili ed è stat calcolata la distanza euclidea > dist(studenti$STAT[1:10], method="euclidean", diag=T, upper=F) 1 2 3 4 5 6 7 8 9 10 1 0 2 6 0 3 1 7 0 4 0 6 1 0 5 4 2 5 4 0 6 0 6 1 0 4 0 7 6 0 7 6 2 6 0 8 1 7 0 1 5 1 7 0 9 0 6 1 0 4 0 6 1 0 10 4 2 5 4 0 4 2 5 4 0 > dist(studenti[1:8,c("STAT","ECON")], method="euclidean", diag=T, upper=F) 1 2 3 4 5 6 7 8 1 0.000000 2 7.810250 0.000000 3 2.236068 7.615773 0.000000 4 3.000000 6.324555 1.414214 0.000000 5 4.472136 3.605551 5.000000 4.123106 0.000000 6 0.000000 7.810250 2.236068 3.000000 4.472136 0.000000 7 7.810250 0.000000 7.615773 6.324555 3.605551 7.810250 0.000000 8 2.236068 7.615773 0.000000 1.414214 5.000000 2.236068 7.615773 0.000000

7 La funzione summary permette di ottenere le principali statistiche di una variabile o di un dataframe: > summary (studenti) Sesso Eta Indirizzo Prov MAT F:33 Min. :22.00 Altro : 7 BO:13 Min. :20.00 M:29 1st Qu.:23.00 Amministrativo:15 FC:10 1st Qu.:24.25 Median :24.00 Aziendale :19 FE:10 Median :30.00 Mean :23.82 Finanziario :10 RA:15 Mean :27.47 3rd Qu.:25.00 Politico :11 RN:14 3rd Qu.:30.00 Max. :27.00 Max. :30.00 STAT ECON DIR Min. :20.00 Min. :18.00 Min. :18.00 1st Qu.:24.00 1st Qu.:27.00 1st Qu.:27.00 Median :28.00 Median :27.00 Median :28.00 Mean :25.92 Mean :27.06 Mean :27.23 3rd Qu.:28.00 3rd Qu.:28.00 3rd Qu.:28.75 Max. :30.00 Max. :30.00 Max. :30.00 Per le variabili sconnesse loutput riguarda il numero dei livelli e le rispettive frequenze.

8 Per classificare le unità rilevate secondo le modalità di uno o più caratteri di un data frame è possibile utilizzare il comando table(): > table (studenti$Indirizzo) Altro Amministrativo Aziendale Finanziario Politico 7 15 19 10 11 > table(studenti$Indirizzo, studenti$Sesso) F M Altro 5 2 Amministrativo 13 2 Aziendale 3 16 Finanziario 2 8 Politico 10 1

9 Altra funzione che può essere utilizzata per la costruzione di tabelle è apply() In generale apply(X, MARGIN, FUN) è utilizzabile per applicare una funzione alle righe o colonne di una matrice o in generale di un array (anche di un data-frame se è trasformabile in matrice) Ad esempio per calcolare la media dei voti in statistica, economia e diritto del data frame studenti si può usare il seguente comando: > apply(studenti[,c("STAT", "ECON", "DIR")],2,mean) STAT ECON DIR 25.91935 27.06452 27.22581 Largomento MARGIN specifica se applicare la funzione alle colonne (MARGIN=2) o alle righe (MARGIN=1)

10 Per un vettore numerico, come letà o il voto, può risultare utile suddividere i valori in classi: > c1STAT <- cut(studenti$STAT, breaks=c(18,20,24,27,30), include.lowest=T, right=T) > table(c1STAT) c1STAT [18,20] (20,24] (24,27] (27,30] 1 25 3 33 Il vettore breaks consente di definire le soglie rispetto a cui dividere il vettore, mentre largomento di right è di tipo logico: metteremo TRUE se vogliamo intervalli chiusi a dx, FALSE per intervalli chiusi a sx.

11 Con R è possibile creare molte tipologie di rapresentazioni grafiche. Fondamentalmente i comandi per la creazione di grafici possono essere divisi in 3 gruppi: 1. Funzioni di alto livello: creano un nuovo grafico nella apposita finestra 2. Funzioni di basso livello: aggiungono parti a un grafico già esistente 3. Funzioni per grafici interattivi: consentono di aggiungere o estrarre interattivamente informazioni da un grafico esistente

12 La principale funzione di alto livello è plot() Ogni volta che si utilizza plot() si apre una nuova finestra grafica che sostituisce quella precedentemente aperta. plot (x,y,… type = tipo di grafico pch = tipo di punto lty = tipo di linea lwd =spessore della linea col = colore degli elementi del grafico axes = indica la presenza degli assi xlab=, ylab=etichette per gli assi xlim=, ylim=range per gli assi main=, sub=titolo e sottotitolo

13 plot(studenti$STAT, studenti$ECON, main="Grafico confronto voti statistica ed economia")

14 plot(studenti$STAT, studenti$ECON, pch=c(1,22)[studenti$Sesso], col=c(10,20)[studenti$Sesso], xlab="Voto Statistica", ylab="Voto Economia", main="Grafico confronto voti statistica ed economia")

15 Quando la variabile che si vuole graficare è un fattore (variabile qualitativa o discreta) il comando plot origina un diagramma a barre delle frequenze relative ai livelli del fattore > plot (studenti$Prov)

16 Il comando attach() mi permette di accedere direttamente agli oggetti del data frame selezionato (senza dover utilizzare il comando $) Il comando plot(f,x,..) dove f è un fattore e x un vettore numerico produce un boxplot della variabile x in corrispondenza dei diversi livelli del fattore f. >attach(studenti) > plot(Indirizzo, STAT) Nel boxplot sono riportati il massimo e il minimo con due linee orizzontali, mentre le due basi del rettangolo rappresentano il primo e il terzo quantile e la linea allinterno corrisponde alla mediana.

17 In base alla tipologia dei dati presenti nel data frame si possono impiegare funzioni di alto livello più specifiche: hist() barplot() pie() boxplot() coplot() Per analizzare la distribuzione di una variabile quantitativa occorre utilizzare il comando hist() per creare un istogramma > hist(STAT)

18 > stat <- hist(STAT) > stat $breaks [1] 20 22 24 26 28 30 $counts [1] 14 12 3 20 13 $intensities [1] 0.11290320 0.09677419 0.02419355 0.16129032 0.10483871 $density [1] 0.11290320 0.09677419 0.02419355 0.16129032 0.10483871 $mids [1] 21 23 25 27 29 $xname [1] "STAT" $equidist [1] TRUE attr(,"class") [1] "histogram Nelloggetto creato col comando hist() sono riportati gli intervalli rispetto a cui sono state costruite le classi (breaks), le frequenze assolute (counts), le densità di frequenza (density), i valori centrali delle classi (mids) e se le classi sono equidistribuite

19 Il comando pie() permette la costruzione di grafici a torta da utilizzare per dati di tipo qualitativo > pie(table(Indirizzo))


Scaricare ppt "2. Analisi descrittive Enrico Properzi - A.A. 2010/2011."

Presentazioni simili


Annunci Google