1 / 19

LABORATORIO DI STATISTICA AZIENDALE

2. Analisi descrittive. LABORATORIO DI STATISTICA AZIENDALE. Enrico Properzi - enrico.properzi3@unibo.it A.A. 2010/2011.

Download Presentation

LABORATORIO DI STATISTICA AZIENDALE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2. Analisi descrittive LABORATORIO DI STATISTICA AZIENDALE Enrico Properzi - enrico.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() L’output 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) Importare i dati

  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 l’output 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 Tabelle di frequenza

  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 L’argomento MARGIN specifica se applicare la funzione alle colonne (MARGIN=2) o alle righe (MARGIN=1)

  10. Per un vettore numerico, come l’età 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 l’argomento di right è di tipo logico: metteremo TRUE se vogliamo intervalli chiusi a dx, FALSE per intervalli chiusi a sx. Creazione di classi

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

  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 all’interno 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“ Nell’oggetto 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))

More Related