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