Rappresentazione dei dati Riprendiamo il data set Ore: > setwd(..) > ore<-read.table(‘datasetore.txt',header=TRUE) > attach(ore) > head(ore) ORE 1 15.0 2 23.7 3 19.7 4 15.4 5 18.3 6 23.0 > ore_frame<-data.frame(ore) > ore_frame$ORE [1] 15.0 23.7 19.7 15.4 18.3 23.0 14.2 20.8 13.5 20.7 17.4 18.6 12.9 20.3 13.7 [16] 21.4 18.3 29.8 17.1 18.9 10.3 26.1 15.7 14.0 17.8 33.8 23.2 12.9 27.1 16.6 Diagramma delle frequenze cumulate Nella scuola del Signor X quale percentuale di studenti intervistati trascorre al più 15 ore a studiare? F. Rip. empirica 0.8 0.6 0.0 1) È funzione non decrescente. 2) Assume valori tra 0 e 1. 0.2 Proprietà: 0.4 Fn(x) . 1.0 Un primo diagramma associa a ciascun elemento del campione la percentuale di dati che assume un valore uguale o inferiore ad esso. Come si calcola? 10 15 20 25 30 35 x > plot.ecdf(ore_frame$ORE,col.points='blue',col.hor='red',lwd=4,main='F. Rip. empirica') E. Di Nardo, a.a. 15/16 3 1. Gli elementi del campione casuale vanno ordinati. 15.0; 23.7; 19.7; 15.4; 18.3; 23.0; 14.2; 20.8; 13.5; 20.7; 17.4; 18.6; 12.9; 20.3; 13.7; 21.4; 18.3; 29.8; 17.1; 18.9; 10.3; 26.1; 15.7; 14.0; 17.8; 33.8; 23.2; 12.9; 27.1; 16.6 10.3; 12.9; 12.9; 13.5; 13.7; 14.0; 14.2; 15.0; 15.4; 15.7; 16.6; 17.1; 17.4; 17.8; 18.3; 18.3; 18.6; 18.9; 19.7; 20.3; 20.7; 20.8; 21.4; 23.0; 23.2; 23.7; 26.1; 27.1; 29.8; 33.8 2. Agli elementi (senza ripetizioni) vanno associate le frequenze cumulate. Dati Ordinati 10.3 12.9 13.5 13.7 … 18.3 Frequenze cumul. =1/30 =3/30 =4/30 =5/30 … =15/30 E. Di Nardo, a.a. 15/16 4 A cosa serve? Per rispondere al quesito iniziale: Nella scuola del Signor X quale percentuale di studenti intervistati trascorre al più 15 ore a studiare? 1.0 F. Rip. empirica 0.4 Fn(x) 0.6 0.8 > ecdfx<-ecdf(ore_frame$ORE) > ecdfx(15) [1] 0.2666667 0.0 0.2 0.26 10 15 20 25 30 35 Si traccia una linea verticale inxcorrispondenza di 15 ore fino ad incontrare il grafico (rosso) e poi si traccia una linea orizzontale fino ad incontrare l’asse delle y. E. Di Nardo, a.a. 15/16 5 Ma si può rispondere anche al quesito inverso: A cosa serve? Nella scuola del Signor X quante ore (al più) trascorre a studiare il 50% degli studenti meno volenterosi? 1.0 F. Rip. empirica 0.8 Circa 18 ore. 0.6 0.0 0.2 0.4 Fn(x) 0.50 > quantile(ore_frame$ORE,0.50) 50% 18.3 10 15 20 25 30 35 Si traccia una linea orizzontale in corrispondenza di 0.5 fino ad incontrare il grafico x (rosso) e poi si traccia una linea verticale in basso fino ad incontrare l’asse delle x. E. Di Nardo, a.a. 15/16 6 Box-plot E’ un grafico a scatola, che fornisce informazioni sul 50% dei dati che si colloca al centro del campione. Valore anomalo= outlier Massimo (…) Metà 50% dei dati Minimo (…) > boxplot(ore_frame$ORE,col='red',main='Box-plot ore') E. Di Nardo, a.a. 15/16 7 > boxplot(ore_frame$ORE,ore_frame2$ORE2,col=c('red','blue'),main='Box-plot ore',xlab='I scuola vs II scuola') 10 15 20 25 30 Box-plot ore I scuola vs II scuola Oltre alle informazioni sul singolo campione, è utile per confrontare più campioni. E. Di Nardo, a.a. 15/16 8 Le misure numeriche La media aritmetica Indice centrale dei dati: somma dei valori numerici presi in considerazione diviso la numerosità. Per variabili quantitative: scala intervallare o rapporto. Per il suo calcolo vengono usati tutti i valori. Un insieme di dati ha una sola media. La media risente di valori anomali. Se ai dati viene aggiunta una costante, la media risulta traslata di quella costante. La somma delle distanze dei dati dalla media è zero. Esempio: Per i dati (3;4;5) la media è 4; inoltre (3-4)+(4-4)+(5-4)=0 è 0. Esempio: Per i dati (3;4;5) la media è 4. Per i dati (4;5;6) la media è 5=4+1. Esempio: il valore della media per i dati relativi al dataset sulle ore di studio (capitolo precedente) è 19.006. > mean(ore_frame$ORE) [1] 19.00667 Significato della media: Il sistema nella figura risulta in equilibrio: Per i dati relativi al primo dataset sulle ore di studio (capitolo precedente), il valore della media risulta 19.00. La media è detta statistica. Una statistica è una funzione del campione casuale. La media è una statistica non robusta 1 2 3 4 La media è 3 5 1 2 3 4 15 La media è 5 1 2 3 4 100 La media è 22 La media per classi di modalità Supponiamo che i dati relativi al numero di ore, siano stati forniti in tabella, secondo le classi di modalità (ad esempio quelle usate per l’istogramma). > objhist<-hist(ore_frame$ORE) > str(objhist) List of 6 $ breaks : num [1:6] 10 15 20 25 30 35 $ counts : int [1:5] 8 11 7 3 1 $ density : num [1:5] 0.05333 0.07333 0.04667 0.02 0.00667 $ mids : num [1:5] 12.5 17.5 22.5 27.5 32.5 $ xname : chr "ore_frame$ORE" ∑ . ! =18.8 Come si calcola la media? Classi [10;15) [15;20) " [20;25) [25;30) [30;35) Centri 12.5 17.5 22.5 27.5 32.5 Freq. Assolute 8 11 7 3 1 > media<-objhist$counts%*%objhist$mids/sum(objhist$counts) > media [,1] Media pesata [1,] 18.83333 La media pesata La media pesata (o ponderata) di un insieme di numeri, secondo degli assegnati coefficienti (=pesi), è data dalla seguente formula: ∑ % & # $ # $ Se i pesi sono pari a 1… ∑# $ Esempio: Voto medio di uno studente alla fine del primo anno del corso di Laurea in Economia Materia CFU Voto Materia CFU Voto Materia CFU Voto Matematica generale 6 21 Diritto privato 10 26 Economia aziendale 10 27 Economia politica 10 25 Economia e gestione delle imprese 10 23 Geografia Economica 6 27 > CFU<-c(6,10,10,10,10,6) > voto<-c(21,25,26,23,27,27) > mediapesata<-CFU%*%voto/sum(CFU) > mediapesata [,1] [1,] 24.96154 > mean(voto) [1] 24.83333 Rientra nel caso della media pesata, la media di una distribuzione di frequenza: > stanze<-c(1,2,3,4,5,6,7) > app<-c(300,500,2000,3000,150,100,300) > mediaapp<-stanze%*%app/sum(app) > mediaapp [,1] [1,] 3.582677 # stanze # appartamenti 1 300 2 500 3 2.000 4 3.000 5 150 6 100 7 300 La media geometrica La media geometrica di un insieme di numeri è la radice n-esima del loro prodotto: * ' (⋯ La media geometrica viene utilizzata quando si vuole analizzare il variare di un fenomeno nel tempo, per esempio il tasso di variazione dei prezzi o i tassi di rendimento di capitali. Esempio: Un impiegato ha ricevuto un 5% di aumento di stipendio nel 2012 e un 15% di aumento nell’anno successivo. Quanto vale la percentuale di crescita media? Un 5% di aumento nel salario = da 100 a 105 Un 15% di aumento nel salario = da 100 a 115 In percentuale 1.05=105/100 e 1.15=115/100 . 1.15 1.05=1.09886 L’aumento medio è di 9.89% > (1.15*1.05)^(1/2) [1] 1.098863 L’impiegato che all’inizio del 2012 aveva 1 euro, alla fine del 2012, per effetto dell’aumento, ha 1.05 euro = 1 × 1.05 euro. All’inizio del 2013 l’impiegato ha un 1.05 euro che, per effetto dell’aumento, diventa 1.05×1.15 alla fine del 2013. La media armonica La media armonica di un insieme di numeri è l’inverso della media aritmetica degli inversi. Serve a ricavare un valore centrale sul tempo per dati che si riferiscono a intervalli temporali diversi. ∑ 0' 1/ Esempio: Tempo in secondi di 4 impiegati per produrre un singolo pezzo: 32, 28, 35, 31 Gli inversi ' 1( 0.03, ' (4 0.036, ' 16 0.029, ' 1' 0.032 rappresentano il no. di pezzi prodotti per unità di tempo (per sec.) '/1(:'/(4:'/16:'/1' =0.032 ; rappresenta il no. medio di pezzi prodotti per unità di tempo (per sec.) La media: L’inverso della media ' =31.25 <.<1( rappresenta il tempo medio (in secondi) per produrre un singolo pezzo Esercizio1: Si calcoli la media della serie storica riportata in Tabella Anno 2000 2001 2002 2003 2004 Prodotto interno lordo 1166,5 1218,5 1260,6 1300,9 1351,3 Esercizio2: Un’automobile percorre 3 tratti di autostrada della stessa lunghezza di 50 km alle seguenti velocità orarie (km/h) costanti: 100, 120 e 130. Si determini la velocità media. ' ' ' Gli inversi '<< , '(< , '1< rappresentano il tempo impiegato per percorrere 1 km La media: > (1/100+1/120+1/130)/3 [1] 0.008675214 rappresenta il tempo medio impiegato per percorrere 1 km L’inverso della media ' =115.27 <.<<4= rappresenta la velocità media (spazio/tempo) Mediana La mediana è il valore centrale dei dati. Esempio1: L’età per un campione di 5 studenti è 21; 25; 19; 20; 22. 1. Campione ordinato: 19; 20; 21; 22; 25. 2. La mediana è: 19; 20; 21; 22; 25. Esempio2: L’altezza (in cm) di 4 giocatori di basket è 185; 186; Una possibile scelta: > '4=:'4? ( ? 189; 190 187,5 Proprietà Per variabili qualitative ordinali. Per variabili quantitative: scala intervallare o rapporto. Un insieme di dati ha una sola mediana. La mediana non risente di valori anomali. > summary(c(186,189,190,185)) Min. 1st Qu. Median Mean 3rd Qu. Max. 185.0 185.8 187.5 187.5 189.2 190.0 La mediana è una statistica robusta. 1 2 3 4 5 1 2 1 2 La mediana è 3 3 4 15 3 4 100 La mediana è 3 La mediana è 3 La mediana per distribuzioni di frequenze # stanze # appartamenti 1 300 2 500 3 2.000 4 3.000 5 150 6 100 7 300 > stanze<-c(1,2,3,4,5,6,7) > app<-c(300,500,2000,3000,150,100,300) > library('Hmisc') > wtd.quantile(stanze,app) 0% 25% 50% 75% 100% 1 3 4 4 7 Per installare la libreria: > install.packages('Hmisc') Moda E’ l’elemento che appare più spesso nel campione. Ordinali Colore capelli (carattere) Neri Castani N° persone (frequenza assoluta) 10 6 Può essere calcolata per tutti i tipi di variabili. Moda Nominali Rossi 1 # stanze # appartamenti biondi 5 1 300 totale 22 2 500 3 2.000 4 3.000 5 150 6 100 7 300 Moda Per dati di tipo intervallare o rapporto, bisogna in genere far riferimento alle classi di modalità. Unimodale Bimodale Può essere una sola (unimodale), possono essere due (bimodale), più di tre (multimodale). Può non essere significativa. La moda è il punto medio della classe con frequenza più elevata. Il valore della moda è 3.200 Moda Multimodale Peso (in grammi) # neonati 1.800-2.200 10 2.200-2.600 32 2.600-3.000 120 3.000-3.400 254 3.400-3.800 134 3.800-4.200 40 4.200-4.600 10 Asimmetria Un poligono di frequenza simmetrico ha questa forma: Media=Moda=Mediana Indici di posizione Coda sinistra Coda destra Poligoni asimmetrici hanno questa forma: Asimmetria Positiva Asimmetria Negativa Moda Moda Coda Sinistra Coda destra Media Mediana Regola: Coda destra se Media > Mediana. Media Mediana Coda sinistra se Media < Mediana. Possibile indice: Asimmetria = media - mediana E’ un metodo robusto? Coda sinistra Modalità Frequenza 1 1 2 2 3 3 4 4 5 5 1 6 6 0 7 7 8 7 6 Come calcolare le medie? 5 4 3 2 1 2 3 4 5 6 Modalità Frequenza 1 7 2 6 5 3 5 4 4 4 3 5 3 6 2 7 1 Coda destra 8 7 6 2 1 0 1 2 3 4 5 6 7 7 Possibile indice: Asimmetria = media - mediana E’ un metodo robusto? Coda sinistra 8 > x1<-c(1,2,3,4,5,6,7) > fr1<-c(1,2,3,4,5,6,7) > wtd.quantile(x1,fr1) 0% 25% 50% 75% 100% 1.00 4.00 5.00 6.25 7.00 > wtd.mean(x1,fr1) [1] 5 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 In entrambi i casi media – mediana =0 Coda destra 8 > fr2<-c(7,6,5,4,3,2,1) > wtd.quantile(x1,fr2) 0% 25% 50% 75% 100% 1.00 1.75 3.00 4.00 7.00 > wtd.mean(x1,fr2) [1] 3 > 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 Generiamo i due insiemi di dati: > x<-c(rep(1,1),rep(2,2),rep(3,3),rep(4,4),rep(5,5),rep(6,6),rep(7,7)) >x [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 78 7 > library('e1071') > skewness(x) [1] -0.5466986 6 5 4 3 2 Coefficiente di asimmetria (skewness) negativo = coda sinistra! 1 0 1 2 3 4 5 6 7 > y<-c(rep(7,1),rep(6,2),rep(5,3),rep(4,4),rep(3,5),rep(2,6),rep(1,7)) 8 > skewness(y) 7 [1] 0.5466986 6 5 Coefficiente di asimmetria (skewness) positivo = coda destra! 4 3 2 1 0 1 2 3 4 5 6 7 Quartili Il primo quartile è quel valore che lascia a sinistra il 25% dei dati. o Il primo quartile può appartenere al campione casuale oppure no. Esempio: L’età per un campione di 5 studenti è 21; 25; 19; 20; 22. 1. Il campione va ordinato: 19; 20; 21; 22; 25. 2. Il primo quartile è: 19; ? 20; 21; 22; 25. > summary(c(21, 25, 19, 20, 22)) Min. 1st Qu. Median Mean 3rd Qu. Max. 19.0 20.0 21.0 21.4 22.0 25.0 Esempio: L’altezza di 4 giocatori di basket è 186; 189; 190; 185 Il primo quartile è…. 185; ? 186; 189; 190 > summary(c(186,189,190,185)) Min. 1st Qu. Median Mean 3rd Qu. Max. 185.0 185.8 187.5 187.5 189.2 190.0 Quartili Il terzo quartile è quel valore che lascia a sinistra il 75% dei dati. o Il terzo quartile può appartenere al campione casuale oppure no. Esempio: L’età per un campione di 5 studenti è 21; 25; 19; 20; 22. 1. Il campione va ordinato: 19; 20; 21; 22; 25. 2. Il terzo quartile è: 19; 20; 21; 22; ? 25. > summary(c(21, 25, 19, 20, 22)) Min. 1st Qu. Median Mean 3rd Qu. Max. 19.0 20.0 21.0 21.4 22.0 25.0 Esempio: L’altezza di 4 giocatori di basket è 186; 189; 190; 185 Il terzo quartile è…. 185; 186; 189; ? 190 > summary(c(186,189,190,185)) Min. 1st Qu. Median Mean 3rd Qu. Max. 185.0 185.8 187.5 187.5 189.2 190.0 Il secondo quartile vale…? Esempio: Box-plot 10.3; 12.9; 12.9; 13.5; 13.7; 14.0; 14.2; 15.0; 15.4; 15.7; 16.6; 17.1; 17.4; 17.8; 18.3; 18.3; 18.6; 18.9; 19.7; 20.3; 20.7; 20.8; 21.4; 23.0; 23.2; 23.7; 26.1; 27.1; 29.8; 33.8 > summary(ore_frame$ORE) Min. 1st Qu. Median Mean 3rd Qu. Max. 10.30 15.10 18.30 19.01 21.25 33.80 > IQR(ore_frame$ORE) [1] 6.15 Intervallo interquartile = Q3 – Q1 Outliers Sono valori del campione casuale troppo «distanti» dal resto del campione casuale. Regola del pollice: Si dicono outliers quei valori che distano dal primo e dal terzo quartile più di 1.5*(Q3-Q1). > 1.5*IQR(ore_frame$ORE) [1] 9.225 Sono considerati outliers i valori inferiori a Q1- 9.225=5.875 Poiché il min=10.3 > 5.875, allora il baffo inferiore è collocato in corrispondenza del minimo. Sono considerati outliers i valori superiori a Q3+9.225=21.25+9.225=30.47 Poiché il max=33.8 > 30.47, allora 33.8 è un outlier e il baffo superiore è collocato in corrispondenza di 30.47. Percentili Andando da un medico per fare una visita di controllo a vostro cugino, dopo aver misurato l’altezza, vedrete che farà uso di un grafico tipo quello della figura sottostante: Poi rivolgendosi alla mamma sentenzierà con aria preoccupata qualcosa del tipo: “Signora, suo figlio è al 95-esimo percentile….” Cosa significa percentile? Un percentile x è quel valore (non necessariamente del campione) che lascia a sinistra x% dei dati. E allora dire che il proprio figlio ha un peso al 95-esimo percentile, vuole dire che il 95% della popolazione maschile della stessa età ha un peso inferiore. Esempio: Calcolo dei percentili 10.3; 12.9; 12.9; 13.5; 13.7; 14.0; 14.2; 15.0; 15.4; 15.7; 16.6; 17.1; 17.4; 17.8; 18.3; 18.3; 18.6; 18.9; 19.7; 20.3; 20.7; 20.8; 21.4; 23.0; 23.2; 23.7; 26.1; 27.1; 29.8; 33.8 > quantile(ore_frame$ORE, probs = 0.90) 90% 26.2 0.90 Il 90% degli intervistati dedica allo studio non più di 26.2 ore. Se volessi avere l’informazione inversa… Quale percentuale di studenti studia non più di 26.2 ore? > ecdfx<-ecdf(ore_frame$ORE) > ecdfx(26.2) [1] 1 26.2 Calcolo dei percentili per le classi di modalità Se non si conoscono i valori del campione, ma un suo riassunto in forma tabellare… [10;14) [14;18) [18;22) [22;26) [26;30) [30;34) 5 9 9 3 3 1 > oreclassi<-c(10,14,18,22,26,30,34) > orefreq<-c(0,5,14,23,26,29,30) > wtd.Ecdf(oreclassi,orefreq) $x [1] 10 14 18 22 26 30 34 $ecdf [1] 0.00000000 0.03937008 0.14960630 0.33070866 0.53543307 0.76377953 1.00000000 > cumsum(orefreq)/sum(orefreq) [1] 0.00000000 0.03937008 0.14960630 0.33070866 0.53543307 0.76377953 1.00000000 Indici di dispersione Si dicono indici di dispersione quegli indici che misurano la variabilità del campione casuale. Campo di variazione (CV) = max - min Intervallo interquartile (IQR)= Q3 – Q1 Deviazione standard (campionaria) = @ & A B # & Esempio: La media campionaria è risultata 19.00 10.3; 12.9; 12.9; 13.5; 13.7; 14.0; 14.2; 15.0; 15.4; 15.7; 16.6; 17.1; 17.4; 17.8; 18.3; 18.3; 18.6; 18.9; 19.7; 20.3; 20.7; 20.8; 21.4; 23.0; 23.2; 23.7; 26.1; 27.1; 29.8; 33.8 La varianza è la media aritmetica dei quadrati delle distanze dei singoli elementi del campione dalla media: > var(ore_frame$ORE) [1] 28.70202 10.3 12.9 12.9 13.5 13.7 19.01 19.7 20.3 20.7 20.8 21.4 28.7 (è il quadrato di una distanza) > sd(ore_frame$ORE) [1] 5.357427 La deviazione standard fornisce una misura della «concentrazione» dei dati attorno alla media. Il I dataset ha una variabilità maggiore del II dataset. La deviazione standard non è una statistica robusta. 1 2 3 4 5 1 2 1 2 C.V. = 4 IQR = 2 S = 1.58 3 4 3 4 100 15 C.V. = 14 IQR = 2 S = 5.07 C.V. = 99 IQR = 2 S = 43.62 Per variabili quantitative: scala intervallare o rapporto. Per il suo calcolo vengono usati tutti i dati. Un insieme di dati ha una sola deviazione standard. 2 3 4 5 101 C.V. = 99 IQR = 2 S = 43.62 Assume valore sempre positivo. Vale zero quando tutti i dati assumono lo stesso valore (variabile statistica degenere) (Esempio: (2,2,2), media =2, s=0) Invariante per traslazione: ossia se ad ogni dato viene aggiunta una quantità costante, la deviazione standard non cambia. La deviazione standard per classi di modalità Supponiamo che i dati relativi al numero di ore, siano stati forniti in tabella, secondo le classi di modalità (ad esempio quelle usate per l’istogramma). Per il calcolo della varianza (e quindi della deviazione standard) si usa lo stesso procedimento visto per la media, ossia Classi [10;14) [14;18) [18;22) [22;26) [26;30) [30;34) Centri 12 16 20 24 28 32 Freq. Assolute 5 9 9 3 3 1 > wtd.mean(objhist$mids, objhist$counts) [1] 18.83333 > wtd.var(objhist$mids, objhist$counts) [1] 29.1954 Un caso particolare: stessa media 0, stessa varianza 1. Per variabili qualitative, è opportuno usare un indice di dispersione di natura diversa: # stanze # appartamenti Freq.rel. 1 − G' ( + ⋯ + GI ( 1 300 0.047 2 500 0.079 Minimo: quando vi è una sola modalità con frequenza relativa 1 3 2.000 0.315 4 3.000 0.472 E=0 Massimo: quando tutte le modalità sono equifrequenti '⁄I. 5 150 0.024 6 100 0.016 7 300 0.047 Indice di eterogeneità (di Gini) E K K−1 1 1 Assume sempre valori positivi. = 1 − = E = 1 − ( + ⋯+ ( ( K K K K > stanze Esempio: [1] 1 2 3 4 5 6 7 > 1-freqapp%*%freqapp > app [,1] [1] 300 500 2000 3000 150 100 300 [1,] 0.6661293 > freqapp<-app/sum(app) > freqapp [1] 0.04724409 0.07874016 0.31496063 0.47244094 0.02362205 0.01574803 0.04724409