LA MODELLAZIONE EMPIRICA DELLE RELAZIONI ECONOMICHE: APPLICAZIONI IN STATA 7 Maria Elena Bontempi [email protected] II LEZIONE: Analisi preliminare univariata di dati cross-section: distribuzione, centro, variabilità, outlier Scopo dell’esercizio: tecniche di analisi preliminare di una o più variabili cross-section. Modello teorico: si ipotizza una relazione del tipo criminalità = f(disagio sociale). Legenda delle variabili d’interesse contenute nel data-set URBAN.DTA (fonte: Williams-Flewelling, 1988, American Sociological Review): City State Region pop homic poor Elenco di 20 città americane (individui della cross section, i=1,...,N, N=20, campione casuale) Sigla stato Regione Popolazione delle città in migliaia nel 1980 Vittime annue di omicidi ogni 100.000 abitanti (media 1980-1984) % di famiglie con reddito inferiore alla soglia di povertà descr Contains data from urban.dta obs: 20 20 cities >100k pop vars: 13 size: 1,120 (99.7% of memory free) ------------------------------------------------------------------------------storage display value variable name type format label variable label ------------------------------------------------------------------------------city str16 %16s City state byte %8.0g slbl State code region byte %8.0g rlbl Geographical region divorce float %9.3f Divorces/1000 ages 15-59 educ float %9.0g Median years education inequal float %9.0g Household inequality index change float %9.0g % population change 1970-1980 pop float %9.1f Population in 1,000s poor float %9.2f Percent families below poverty homic float %9.2f Homicides/100,000 people count byte %8.0g Frequency poorrank float %9.0g Poverty rank homrank byte %8.0g Homicide rank ------------------------------------------------------------------------------Sorted by: Misurazione delle variabili g pop1000=pop*1000 g nhomic=homic*pop1000/100000 sort nhomic list city pop homic pop1000 nhomic city 1. Sterling Heights 2. Fullerton 3. Sunnyvale 4. Concord 5. Independence 6. Tempe 7. Allentown 8. Peoria 9. Erie 10. Berkeley 11. Salt Lake 12. Virginia Beach pop 109.0 102.0 106.6 103.3 111.8 106.7 103.8 124.2 119.1 103.3 163.0 262.2 homic 0.55 2.35 2.44 3.10 3.58 4.12 4.24 4.03 4.70 8.52 6.01 3.81 pop1000 109000 102000 106600 103300 111800 106700 103800 124200 119100 103300 163000 262200 1 nhomic .5995 2.397 2.60104 3.2023 4.00244 4.39604 4.40112 5.00526 5.5977 8.801161 9.7963 9.98982 13. 14. 15. 16. 17. 18. 19. 20. Columbus Albuquerque Rochester Tulsa Portland Honolulu Milwaukee Dallas 169.4 331.8 241.7 360.9 366.4 365.0 636.2 904.1 9.21 6.39 10.84 8.64 8.62 9.15 7.83 29.98 169400 331800 241700 360900 366400 365000 636200 904100 15.60174 21.20202 26.20028 31.18176 31.58368 33.3975 49.81446 271.0492 EDA: exploratory data analysis (Tukey, 1977, Reading, MA: Addison-Wesley) Analisi preliminare alla stima del modello econometrico. Scopi: ¾ descrivere il campione (campione casuale oppure non casuale e bontà del campione in termini di rappresentatività); ¾ analizzare direttamente i dati ed il loro andamento senza effettuare alcuna assunzione particolare e senza imporre un modello a priori; ¾ analizzare la distribuzione delle variabili (normale oppure no); ¾ studiare le misure di centro (media, mediana) e di dispersione (varianza, quartili); ¾ verificare la presenza o meno di outliers, valutare la necessità di imporre eventuali regole di pulizia ed il loro impatto in termini di distorsione da selezione. Distribuzione: graph homic, bin(10) norm xlabel(0, 3 to 30) ylabel t1(distribuzione tasso omicidi) ytick(0, 0.05 to 0.35) distribuzione tasso omicidi 0.40 Fraction 0.30 0.20 0.10 0.00 0.00 3.00 6.00 9.00 12.00 15.00 18.00 21.00 Homicides/100,000 people 24.00 27.00 30.00 graph applicato ad una sola variabile crea un istogramma bin specifica il numero di barre verticali (default: 5) norm disegna una curva normale sopra l’istogramma xlabel ylabel mostrano sugli assi valori di x ed y selezionati automaticamente (default: minimo e massimo); si possono scegliere valori a piacere con xlabel(0, 3 to 30) e analogamente per ylabel(....) xtick ytick mostrano sugli assi tacche in corrispondenza dei valori desiderati: ytickl(0, 0.05 to 0.35) e analogamente per xtick(....) title( ) titolo del grafico in basso t1( ) titolo del grafico in alto t2( ) titolo in alto più vicino al grafico b2( ) modifica la label dell’asse x l1( ) modifica la label dell’asse y l2( ) label aggiuntiva a sinistra vicino all’asse y 2 r1( ) label a destra r2( ) label a destra più vicina al grafico saving(fig1, replace) salva il grafico con nome fig1.gph e sostituisce un eventuale file già esistente con lo stesso nome Statistiche: summ homic Variable | Obs Mean Std. Dev. Min Max -------------+----------------------------------------------------homic | 20 6.9055 6.12563 .55 29.98 Nel caso di distribuzioni non normali, asimmetriche e con outliers, il concetto di “centro” diventa ambiguo: non possiamo riferirci solamente alla media ed alla standard deviation per riassumere la distribuzione, ma occorre utilizzare anche statistiche di ordine, più robuste ai problemi degli outliers. summ homic, d Homicides/100,000 people ------------------------------------------------------------Percentiles Smallest 1% .55 .55 5% 1.45 2.35 10% 2.395 2.44 Obs 20 25% 3.695 3.1 Sum of Wgt. 20 50% 5.355 75% 90% 95% 99% 8.63 10.025 20.41 29.98 Largest 9.15 9.21 10.84 29.98 Mean Std. Dev. 6.9055 6.12563 Variance Skewness Kurtosis 37.52334 2.759817 11.28847 Statistiche d’ordine sono, oltre agli estremi inferiori e superiori (minimo e massimo): mediana = valore alla posizione (N+1)/2 della lista (ordinata in senso crescente) dei valori della variabile. Il 50% dei casi ha valori sotto la mediana e l’altro 50% valori sopra la mediana quartili = dividono la lista ordinata in quarti. Il primo quartile (Q1 o 25%) è superiore ai valori relativi al 25% dei casi e inferiore ai valori relativi al rimanente 75% dei casi; il terzo quartile (Q3 o 75%) è superiore ai valori relativi al 75% dei casi e inferiore ai valori relativi al rimanente 25% dei casi; il secondo quartile (Q2 o 50%) coincide con la mediana percentili = dividono la lista ordinata in centesimi. L’1% dei casi è inferiore al primo percentile; il 99% dei casi è superiore al primo percentile; il 10% dei casi è inferiore al decimo percentile, ecc.... Chiaramente, Q1=25mo percentile; Q2=50mo percentile; Q3=75mo percentile. Skewness: direzione e grado di asimmetria della distribuzione. E’ misurata dal momento centrale terzo (devianza dalla media alla terza). In una distribuzione normale skewness = 0 (simmetrica) Kurtosis: peso delle code. E’ misurata dal momento centrale quarto (devianza dalla media alla quarta). In una distribuzione normale kurtosis = 3. Dal confronto tra media e mediana si ha un’indicazione dell’asimmetria di una distribuzione: Se media=mediana la distribuzione è simmetrica (skewness = 0) Se media>mediana abbiamo outliers positivi (skewness > 0) Se media<mediana abbiamo outliers negativi (skewness < 0) outliers: iqr homic mean= 6.905 median= 5.355 10 trim= 5.899 std.dev.= 6.126 pseudo std.dev.= 3.658 (n= 20) (IQR= 4.935) inner fences # mild outliers % mild outliers low high -------------------3.708 16.03 0 0 0.00% 0.00% outer fences # severe outliers % severe outliers -11.11 0 0.00% 3 23.44 1 5.00% IQR (interquartile range) = differenza tra il 75mo ed il 25mo percentile (o tra il terzo quartile, Q3, ed primo quartile, Q1); contiene pertanto il 50% dei casi. Mediana e IQR sono misure alternative di centro e dispersione della distribuzione, maggiormente robuste alla presenza di outliers rispetto a media e deviazione standard. 10 trim = media dei casi compresi tra il 10mo ed il 90mo percentile. E’ una statistica robusta agli outliers come la mediana, ma è più adatta al caso di variabili affette da kurtosis. pseudo-standard deviation = IQR/1.349 dove 1.349=2*0.674 è l’intervallo contenente il 50% di casi in una distribuzione normale. E’ un’ulteriore misura della dispersione, anch’essa meno affetta da outliers. Nel caso di distribuzioni simmetriche, il confronto tra standard deviation e pseudo-standard deviation offre indicazioni sulla massa di probabilità presente nelle code: se standard deviation=pseudo standard deviation la distribuzione ha code normali; se standard deviation>pseudo standard deviation la distribuzione ha code grosse (kurtosis > 3); se standard deviation<pseudo standard deviation la distribuzione ha code sottili (kurtosis < 3). Inner fences=Q1 –1.5*IQR e Q3 + 1.5*IQR Outer fences=Q1 –3*IQR e Q3 + 3*IQR Q1 –3*IQR ≤ mild outliers < Q1 - 1.5*IQR e Q3 + 1.5*IQR < mild outliers ≤ Q3 + 3*IQR Tali valori non destano particolari preoccupazioni: in una distribuzione normale rappresentano lo 0.7% (HoaglinIglewicz-Tukey 1986, JASA). severe outliers < Q1 –3*IQR e severe outliers > Q3 + 3*IQR Tali valori influenzano sostanzialmente media, standard deviation ed altre statistiche e gettano dubbi sulla validità dell’assunzione di normalità (in una distribuzione normale rappresentano lo 0.0002%, Hoaglin-Iglewicz-Tukey 1986, JASA). Con l’opzione box, si grafica la mediana e lo scarto interquartile graph homic, box ylabel(0, 2 to 30) Homicides/100,000 people 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 La “scatola” ha altezza pari all’IQR, la linea orizzontale al suo interno è la mediana: se la linea mediana si colloca in basso nella scatola, la distribuzione ha skewness positiva (e viceversa). I due segmenti corrispondono agli inner fences; i circoli oltre i due segmenti indicano gli outliers, ossia i valori oltre gli inner fences. Con l’opzione yline(6.9055) possiamo tracciare una linea in corrispondenza del valore medio di homic (6.9055). Con l’opzione symbol([city] possiamo conoscere in corrispondenza di quale città homic presenta ouliers. 4 graph homic, box yline(6.9055) ylabel(0, 2 to 30) s([city]) Homicides/100,000 people 30 Dallas 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 symbol( ) specifica il simbolo da utilizzare Altre opzioni: (i) non visibile (O) largo circolo (default per la prima variabile y) (o) piccolo circolo (S) quadrato (T) triangolo (default per la seconda variabile y) (d) diamante (.) punto (p) crocetta (x) x ([_n]) numero dell’osservazione E’ possibile anche effettuare un test di normalità H0: SK=EK=0 sktest homic Skewness/Kurtosis tests for Normality ------- joint -----Variable | Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2 -------------+------------------------------------------------------homic | 0.000 0.000 23.39 0.0000 L’ipotesi nulla di skewness=0 e di eccesso di kutosis=0 è rifiutata sia singolarmente che congiuntamente. Proviamo ad escludere dall’analisi l’outlier Dallas summ homic if city!="Dallas", d Homicides/100,000 people ------------------------------------------------------------Percentiles Smallest 1% .55 .55 5% .55 2.35 10% 2.35 2.44 Obs 19 25% 3.58 3.1 Sum of Wgt. 19 5 50% 4.7 75% 90% 95% 99% 8.62 9.21 10.84 10.84 Largest 8.64 9.15 9.21 10.84 Mean Std. Dev. 5.691053 2.910595 Variance Skewness Kurtosis 8.471566 .1193361 1.850951 graph homic if city!="Dallas", bin(10) norm xlabel(0, 3 to 15) ylabel t1(distribuzione tasso omicidi) ytick(0, 0.05 to 0.35) distribuzione tasso omicidi 0.40 Fraction 0.30 0.20 0.10 0.00 0.00 3.00 6.00 9.00 Homicides/100,000 people 12.00 sktest homic if city!="Dallas" Skewness/Kurtosis tests for Normality ------- joint -----Variable | Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2 -------------+------------------------------------------------------homic | 0.793 0.142 2.52 0.2838 Ora l’ipotesi nulla di normalità è accettata sia singolarmente che congiuntamente. 6 15.00