Académique Documents
Professionnel Documents
Culture Documents
Contents
1 Introduzione 2
2 Introduzione a Stata 6
1
1 Introduzione
Questo lavoro costituisce una guida sintetica all’uso e interpretazione dei modelli
di regressione per variabili categoriche e limitate attraverso l’uso del programma
Stata. L’obiettivo è quello di fornire una guida alla applicazione/implementazione
della teoria quantitativa relativa a questa tipologia di modelli non-lineari. Eventuali
riferimenti teorici hanno la sola finalita’ di introdurre all’analisi empirica e non sono
dunque esaustivi (godd data analysis requires good software and good technique)1 . I
principali riferimenti teorici per lo studio dei modelli con variabili limitate (LDV)
sono, tra gli altri, rappresentati da
• Long, J. Scott (1997), Regression Models for Categorical and Limited Depen-
dent Variables, Sage Publications.
• Cameron A.C. e Trivedi P.K. (1998), Regression Analysis of Count Data, Cam-
bridge Mass, Cambridge University Press
• Heiss F., 2002, ”Structural choice Analysis with Nested Logit Models”, The
Stata Journal, 2, 3, pp. 227-252
• Wooldridge, J., (2002), Econometric analysis of cross section and panel data,
MIT Press.
2
• Modelli con variabili nominali: multinomial logit (mlogit) e conditional logit
(clogit)
• Modelli per dati count: Poisson (poisson), negative binomial (nbreg), zero-
inflated Poisson regression (zip) e zero-inflated Negative Binomial regression
(zinb).
Nel lavoro, inoltre, verrano utilizzate alcune procedure non disponibili nell’ambito
delle usuali routine di Stata e particolarmente utili per l’interpretazione dei risul-
tati. Il motivo di tale integrazione è dovuta al fatto che nei modelli non-lineari
l’interpretazione dei parametri non è sempre agevole come in quelli lineari. Nei
primi, infatti, l’effetto di una variabile indipendente su quella di outcome dipende
anche dai livelli di tutte le altre variabili presenti nel modello. Per l’assenza di una
metodologa in grado di fornire una interpretazione univoca della relazione tra vari-
abile indipendente e outcome, si introducono una serie di comandi aggiuntivi nella
forma di file .ado (post-estimation commands) scritti per Stata . I comandi utiliz-
zati in queste note fanno riferimento alla versione 9 di Stata3 . Si tratta dei comandi
della libreria di programmi Spost (Stata Post-estimation Commands), disponibili
all’indirizzo web
www.indiana.edu/∼jslsoc/spost.htm
2
Stata include numerosi comandi per la gestione di tali basi di dati e la stima dei relativi modelli;
a questo riguardo si vedano i comandi st e xt.
3
Sono disponibili i comandi di questa libreria relativi alle versioni precedenti di Stata
3
Ci sono due possibili strade da seguire utilizzando il comando net.
Installazione di Spost9 attraverso il comando net search. In questo caso, i
file saranno installati nella directory PERSONAL. Essa potrebbe non corrispondere a
quella in cui desideriamo effettivamente installare il programma. Con il comando
sysdir
è possibile accertarsi quali siano le directory del programma Stata al momento
attive, ad esempio
. sysdir
STATA: C:\Programmi\Stata8\
UPDATES: C:\Programmi\Stata8\ado\updates\
BASE: C:\Programmi\Stata8\ado\base\
SITE: C:\Programmi\Stata8\ado\site\
PLUS: c:\ado\plus\
PERSONAL: c:\programmi\stata8\spostado8\
OLDPLACE: c:\ado\
• all files already exist and are up-to date. Anche in questo caso la proce-
dura è stata eseguita con successo. In questo caso, Stata ha aggiornato una
precedente versione dei programmi e non occorre fare altro.
4
• the following files exist and are different. In questo caso, nel proprio
PC ci sono file differenti da quelli di cui si e’ richiesta l’installazione, anche
se presentano lo stesso nome. E’ possibile rinviare l’installazione. Tuttavia,
poiche’ i file disponibili sul sito Stata costituiscono l’ultima versione, per
l’aggiornamento dei programmi occorre scegliere l’opzione ”force installation
replacing already-installed files” e tutti i file sono aggiornati all’ultima
versione disponibile.
www.stata.com/∼jslsoc/spost.htm
5
2 Introduzione a Stata
Si assume che la variabile latente o non osservabile di interesse y ∗ , con campo di vari-
azione compreso tra -∞ e +∞, è in relazione a un insieme di variabili indipendenti
attraverso la seguente equazione strutturale
yi∗ = xi β + εi (1)
6
le donne intervistate si assumono appartenenti alla forza lavoro (y = 1). La figura
che segue fornisce una rappresentazione grafica del modello con variabile latente ad
outcome binario nel caso di una singola variabile indipendente.
1. ε ∼ N(0, 1)
2. ε ∼ L(0, π 2 /3)
+∞ µ 2¶
1 t
Z
Pr(y = 1|x) = √ exp − dt (4)
−∞ 2π 2
7
exp(α + βx)
Pr(y = 1|x) = (5)
1 + exp(α + βx)
Diversamente dal modello di regressione lineare (in cui nota la vraibile dipendente
y, Var(ε) può essere stimata, nei modelli con variabili latenti, perchè il modello risulti
identificato e possa essere stimato è necessario attribuire un valore per la varianza
degli errori.
Nel probit, Var(ε) = 0 conduce a una forma del modello più semplice da trattare
empiricamente. E’ possibile modificare tale assunzione, essa si rifletterà in variazioni
uniformi dei valori dei parametri strutturali.
Nel Logit, la varianza è posta arbitrariamente pari a π 2 /3 per semplificare la
forma dell’equazione. Diversamente dal probit, modifiche di Var(ε) non si riflettono
in variazioni dei valori dei parametri stimati. Come si dimostra in Long(1997), valori
arbitrari della varianza influiscono sulla forma della distribuzione ma non sulla pro-
porzione della distribuzione di probabilità corrispondente al verificarsi dell’evento.
Per entrambi i modelli, la probabilità di verificarsi dell’evento di interesse è data
da
Pr(y = 1|x) = F (α + βx) (6)
Nella figura (2), si riporta la distribuzione del termine di errore ε per un sot-
toinsieme dei possibili valori di x. L’area corrispondente ai casi in cui y ∗ > 0 è
evidenziata in grigio e corrisponde a Pr(y = 1|x) per ogni valore di x.
8
Figure 3: Relazione tra il modello lineare y ∗ = α + βx e modello probabilistico
non-lineare P r(y = 1|x) = F (α + βx)
Questa espressione varia tra 0 e ∞. Il logaritmo degli odds o logit varia tra −∞
e +∞. Cio’ suggersice che il modello è lineare nel logit
lnΩ(x) = xβ (9)
Tale equazione è del tutto equivalente alla (5) ma fornisce una interpretazione
del modello logit incentrata sui fattori che determinano variazioni degli odds, ripresa
in alcuni esempi di questa sezione.
9
3.2 Procedure di stima con Stata
Sintassi dei comandi Stata per la stima dei modelli logit e probit. Per la stima
del modello logit si usa il comando
£ ¤ £ ¤ £ ¤ £ ¤ £
logit depvar indepvars weight if exp in range , nolog or level(#)
nocoef noconstant robust cluster(varname) score(varname)
¤
offset(varname) asis maximize options
Di seguito si riporta una descrizione sintetica delle opzioni disponibili con i due
comandi:
10
• offset(varname ): vincola a 1 il parametro della variabile esplicativa var-
name.
11
. summarize
Variable Obs Mean Std. Dev. Min Max
• numero di osservazioni > 100, meglio se > 500. Regola del pollice: almeno 10
osservazioni per parametro.
• Sono necessari campioni più numerosi in caso di forte correlazione delle varibili
indipendenti o di bassa variabilità della variabile dipendente (prevalenza di 0
o di 1).
12
• Per la stima di alcuni modelli (ordered e zip models) sono necessarie dimen-
sioni campionarie più elevate.
• il dataset non è costruito in modo del tutto adeguato (errori nella costruzione
delle variabili, presenza di informazioni ridondanti, errata attribuzione delle
informazioni a ciascun ident);
3.2.1 Opzioni if e in
13
di studio elevato. Il modello si specifica come segue
14
Logit estimates Number of obs = 753
(output omitted )
0 30 3.98 3.98
1 723 96.02 100.00
15
weight significato
fweight frequency weights
pweight sampling weights
aweight analytic weights
iweight importance weights
x1 x2 y
1. 1 1 0
2. 1 1 0
3. 1 1 0
4. 30 1 0
5. 30 1 0
6. 30 1 1
7. 1 0 1
8. 1 0 1
9. 1 0 1
10. 1 0 1
11. 1 0 1
12. 5 4 0
13. 5 4 0
14. 5 4 0
15. 5 4 0
16. 5 4 1
x1 x2 y pop
1. 1 1 0 3
2. 30 1 0 2
3. 30 1 1 1
4. 1 0 1 5
5. 5 4 0 4
6. 5 4 1 1
16
logit y x1 x2
logit y x1 x2 [fweight=pop].
aweight
si utilizza quando si il dataset di analisi consiste di medie di osser-
vazioni. Si ricorre all’uso di questa opzione quando il modello
yi = xi β + εi , εi ∼ N(0, σ 2 ) (10)
è stimato su dati che sono medie di osservazioni (ȳj , x̄j ) invece che su dati indi-
viduali. Un tipico tipico esempio è il caso di regressioni con i dati delle inchieste. In
17
questi casi specificando l’opzione aweight
logit y x1 x2 [aweight=pop].
dove w i sono i cosiddetti analytic weigths. Tali pesi entrano nella regressione
in modo analogo all’opzione fweight. Diversamente da quest’ultima, i pesi sono
preliminarmente normalizzati a rispetto al totale delle osservazioni N.
Tale ponderazione rappresenta una soluzione al problema statistico dell’eteroschedasticità,
dovuta alla presumibile differenza della varianza tra gruppi. Se si lavora con dati
ottenuti come medie di osservazioni individuali, la varianza della stima del modello
(11) varia in funzione del numero delle unità su cui la media è stata eseguita
pweight
è l’opzione da utilizzare quando si lavora con microdati tratti da un
campione probabilistico di cui è nota la struttura di ponderazione. La differenza
sostanziale rispetto a aweight è che l’opzione
[pweight=pop]
nel comando di regressione consente di pervenire a una stima della matrice di
varianza-covarianza (e, quindi, degli errori standard dei parametri stimati) robusta
a violazioni delle ipotesi sottostanti il nostro modello teorico ((xi , εi ) indipendenti
e identicamente distribuiti). In altri termini, utilizzare pweight implica l’opzione
18
robust. Le istruzioni
logit y x1 x2 [pweight=pop]
hanno lo stesso output. La variabile pop può indicare sia il tasso di campi-
onamento del corrispondente strato della popolazione (numero di individui in pro-
porzione della popolazione), sia l’importanza relativa di ciascun strato (ad esempio,
il valore aggiunto). Come noto, le inchieste dell’ISAE sono ottenute proprio sulla
base di uno schema di ponderazione a due livelli (addetti, valore aggiunto).
Se si ritiene che la condizione di indipendenza sia verificata solo tra gruppi (o strati)
del campione teorico, per ottenere stime robuste della varianza è necessario specifi-
cluster
care l’opzione . In questo caso si tiene conto della potenziale correlazione
tra unità appartenenti allo stesso strato (within), mnetre si assume che la condizione
d indipendenza sia verificata tra gruppi (across). Specificare tale opzione porta alla
stima di errori standard robusti, ma in più con un’ulteriore correzione per gli ef-
fetti di dati cluster 4 . Tale violazione può verificarsi nei casi in cui, ad esempio,
la stessa unità fornisce informazioni più volte nel tempo, oppure quando diversi
membri della stessa unità familiare (o diverse imprese appartenenti alla stessa cella
settore-regione) entrano nel campione.
Come noto, il campione ISAE presso le imprese manifatturiere presenta una strut-
tura stratificata rispetto a settore-regione-classe di addetti. Ogni combinazione di
attributi appartenenti a queste tre modalità costituisce uno strato. Le unità di
ciascuna cella potrebbero non sodddisfare la condizione di indipendenza del cam-
pionamento casuale semplice per il solo fatto che l’indagine costituisce un panel e
quindi le imprese sono intervistate su base sistematica più volte nel tempo.
Si assuma che la condizione di indipendenza sia soddisfatta solo tra settori di attività
economica e non all’interno di ogni singolo comparto. Tale condizione può essere
verificata sui dati. Di seguito si riporta la struttura del file isae.dta, che costitu-
isce il risultato di una fase intermedia di elaborazione dei microdati delle inchieste in
cui è riconoscibile la struttura stratificata per combinazioni delle modalità settore-
regione-classe di addetti.
4
Si veda Hosmer e Lemeshow (2000), Applied Logistic Regression, cap. 8.
19
1. 1 1 1 .0661765 .6470588 136 114455
2. 2 1 1 .220339 .5762712 59 253082
3. 3 1 1 0 1 37 28844
4. 4 1 1 .2839506 .7160494 162 77243
5. 5 1 1 .2662338 .7337663 154 151514
6. 6 1 1 1 0 5 38405
7. 7 1 1 1 0 32 97779
8. 8 1 1 .1702128 .6666667 141 46688
9. 9 1 1 .6440678 .3559322 118 184605
10. 10 1 1 .3173077 .6826923 104 22020
21. 1 2 1 0 0 26 150447.4
22. 2 2 1 .5853658 0 41 293621.4
23. 2 2 3 .5555556 .4444444 648 312775.7
24. 3 2 1 0 1 31 10589.13
25. 4 2 1 0 1 28 26046.24
26. 5 2 1 0 0 60 216644.9
Per tener conto della violazione dell’ipotesi di indipendenza all’interno dei gruppi,
l’istruzione di stima diventa
20
3.2.4 Opzione robust
. use auto
(1978 Automobile Data)
Robust
foreign Coef. Std. Err. z P>|z| [95% Conf. Interval]
5
Per ulteriori approfondimenti si rinvia alla User’s Guide di Stata
21
mpg -.1039503 .0593548 -1.75 0.080 -.2202836 .0123829
weight -.0023355 .0004934 -4.73 0.000 -.0033025 -.0013686
_cons 8.275464 2.539176 3.26 0.001 3.29877 13.25216
Robust
foreign Coef. Std. Err. z P>|z| [95% Conf. Interval]
dal confronto dei tre output, la correzione con l’opzione cluster non è partico-
larmente significativa. Per il calcolo della matrice di varianza e covarianza di White,
score
un ruolo importante è svolto dalla funzione di . Tale opzione può essere
specificata anche in modo independente da robust e fornisce un vettore u i che rap-
presenta il contributo della i −ma osservazione alla funzione ∂L/∂β. Tale vettore
P ha
la proprietà di essere incorrelato con la matrice dei regressori x e tale che i u i =
0. Con riferimento all’esempio appena visto
22
. summarize u
Variable Obs Mean Std. Dev. Min Max
u 1.0000
mpg 0.0000 1.0000
weight 0.0000 -0.8072 1.0000
dove foreign = 1.
postest
Stata dispone di una libreria di post−estimation commands disponibili sotto
e riportati nella tabella che segue.
comando Descrizione
adjust Tavola di medie e prop
estimates Archivia, riformatta ... output di stima
hausman Test di Hausman
lincom Test su combinazioni lineari di coefficienti
lrtest Test basati sul rapporto di verosimiglianza
mfx Calcola gli effetti marginali
nlcom Test su combinazioni non−lineari di coefficienti
predict Fornisce ŷi , residui, ecc.
predictnl Fornisce ŷi , residui, ecc. in modelli non−lineari
suest Stimatore seemingly unrelated
test Wald test per ipotesi lineari sui parametri
testnl Wald type−test per ipotesi non−lineari sui parametri
vce Matrice di varianza e covarianza dei residui
23
3.3.1 Output di stima
24
congiunta di tutti i parametri del modello di regressione. L’ipotesi nulla è che tutti
i parametri siano congiuntamente uguali a 0. Tale statistica si distribuisce secondo
una χ2 e Prob > chi2 è il relativo p−value. Pseudo R2 è una misura di bontà della
regressione noto come R2 di McFadden. Coef indica le stime ML. St.Err. riporta
l’errore standard dele stime. z è la statistica ottenuta come β̂/σ̂ e P>|z| indica,
data la distribuzione ipotizzata, la probabilità che il parametro stimato cada nelle
code di tale distribuzione. Nelle impostazioni di default, il grado di confidenza è
fissato al 95%. Tale output non agevola il confronto tra due stime alternative.
Una migliore lettura dei risultati di stima può essere ottenuta con il comando
estimates table 6
. La sintassi è la seguente:
£ ¤£ ¤
estimates table name namelist , options
• star indica la significatività dei coefficienti (∗: ¡.05, ∗∗: ¡.01, ∗ ∗ ∗: ¡.001)
25
L’uso del comando è il seguente. Dopo la stima di ciascun modello si archiviano
i risultati con il comando
£ ¤
estimates store name , title(str ) nocopy
. est store A
. est store B
Variable A B
k5 -1.462913*** -.87471118***
k618 -.06457068 -.03859449
age -.06287055*** -.0378235***
wc .80727378*** .48831439***
hc .11173357 .05717035
lwg .60469312*** .36562871***
inc -.03444643*** -.02052503***
_cons 3.1821405*** 1.9184223***
N 753 753
ll -452.63296 -452.69496
chi2 124.48049 124.35648
df_m 7 7
aic 921.26592 921.38993
outreg
è un comando disponibile nella libreria on-line dei programmi scritti
dagli utenti Stata che consente di modificare la tabella standard dei risultati con-
sentendone una lettura più agevole. La sintassi del comando è la seguente:
26
£ ¤ £ ¤
outreg varlist using filename , options
dove con varlist si indica il nome delle variabili che compaiono nell’output e
filename è il file che contiene i risultati. Le opzioni disponibili sono le seguenti:
L’uso del comando è il seguente. Dopo la stima del primo modello, si esegue per
la prima volta outreg indicando il nome del file di output. Ad ogni stima di modelli
successivi, si usa outreg seguito dall’opzione append.
. logit lfp k5 k618 age wc hc lwg inc
Logit estimates Number of obs = 753
LR chi2(7) = 124.48
Prob > chi2 = 0.0000
Log likelihood = -452.63296 Pseudo R2 = 0.1209
(output omitted )
Come noto, le CDF della distribuzione normale e logistica sono molto simili ad
eccezione delle code. Ciò conduce a stime logit e probit molto simili ma non
direttamente confrontabili. La varianza della distribuzione logistica è stata posta
27
pari a circa 3,3, molto diversa dalla varianza unitaria della normale standardizzata.
Dalla teoria,
βˆ
p L = βˆL × 0, 551 ∼
= βˆP (14)
π 2 /3
Con riferimento alla nostra tabella dell’output, per ciascuna variabile il rapporto
tra i parametri logit su quelli probit è pari a circa 1,7 approsimativamente pari
al reciproco di 0,551. Una eccezione è rappresentata dai coefficienti stimati di hc, la
cui stima è caratterizzata da una elevata variabilità. Questo esempio dimostra come
la dimensione dei coefficienti sia influenzata da Var(ε).
£ ¤
test varlist , accumulate
. test k5
( 1) k5 = 0
chi2( 1) = 55.14
Prob > chi2 = 0.0000
28
chi2( 2) = 55.16
Prob > chi2 = 0.0000
test consente anche di testare restrizioni lineari sui parametri, la cui sintassi è
£ ¤
test [exp = exp] , accumulate
accumulate
l’opzione consente di costruire vincoli lineari più complessi
. test k5=k618
( 1) k5 - k618 = 0
chi2( 1) = 49.48
Prob > chi2 = 0.0000
. test wc=hc, accumulate
( 1) k5 - k618 = 0
( 2) wc - hc = 0
chi2( 2) = 52.16
Prob > chi2 = 0.0000
lrtest
confronta modelli nested con un test LR. La sintassi è
29
£ ¤
lrtest modelspec1 [modelspec2] , df(#) stats dir force
. est store A
. logit lfp age wc hc lwg inc, nolog
(output omitted )
. est store B
. lrtest A
likelihood-ratio test LR chi2(2) = 66.49
(Assumption: B nested in A) Prob > chi2 = 0.0000
Misure della bontà della regressione forniscono indicazioni utili anche se non del
tutto definitive sul potere esplicativo di un modello. Modelli che massimizzano tali
indici non sempre risultano poi adeguati alle finalità di analisi. In Stata non sono
sempre disponibili comandi che forniscono output di stima completi.
fitstat
calcola numerose statistiche di bontà della regressione. La sintassi di
fitstat è la seguente
£ ¤
fitstat , saving(name ) using(name ) save bif dic force
dove
• using(name) confronta il fit del nuovo modello con quello del modello prece-
dente (name deve essere al più di quattro lettere)
• force è richiesto quando il confronto si effettua tra due modelli stimati con
riferimenti a un numero di osservazioni differente
Due limitazioni di fitstat. Alcune misure non possono essere calcolate se nella
stima si utilizza l’opzione weight. Nel caso di pweights si utilizza la pseudo−verosimiglianza
30
per calcolare le misure di fit. Infine, fitstat produce errori se uno dei modelli è
stimato con l’opzione noconstant.
. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )
. fitstat
Measures of Fit for logit of lfp
Log-Lik Intercept Only: -514.873 Log-Lik Full Model: -452.633
D(745): 905.266 LR(7): 124.480
Prob > LR: 0.000
McFadden’s R2: 0.121 McFadden’s Adj R2: 0.105
Maximum Likelihood R2: 0.152 Cragg & Uhler’s R2: 0.204
McKelvey and Zavoina’s R2: 0.217 Efron’s R2: 0.155
Variance of y*: 4.203 Variance of error: 3.290
Count R2: 0.693 Adj Count R2: 0.289
AIC: 1.223 AIC*n: 921.266
BIC: -4029.663 BIC’: -78.112
. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )
. fitstat, using(mod1)
Measures of Fit for logit of lfp
Current Saved Difference
Model: logit logit
N: 753 753 0
Log-Lik Intercept Only: -514.873 -514.873 0.000
Log-Lik Full Model: -452.913 -452.633 -0.281
D: 905.827(746) 905.266(745) 0.561(1)
LR: 123.919(6) 124.480(7) 0.561(1)
Prob > LR: 0.000 0.000 0.454
McFadden’s R2: 0.120 0.121 -0.001
McFadden’s Adj R2: 0.107 0.105 0.001
Maximum Likelihood R2: 0.152 0.152 -0.001
Cragg & Uhler’s R2: 0.204 0.204 -0.001
McKelvey and Zavoina’s R2: 0.213 0.217 -0.004
Efron’s R2: 0.154 0.155 -0.001
Variance of y*: 4.181 4.203 -0.022
Variance of error: 3.290 3.290 0.000
Count R2: 0.677 0.693 -0.016
Adj Count R2: 0.252 0.289 -0.037
AIC: 1.222 1.223 -0.002
AIC*n: 919.827 921.266 -1.439
BIC: -4035.726 -4029.663 -6.063
BIC’: -84.175 -78.112 -6.063
Difference of 6.063 in BIC’ provides strong support for current model.
Note: p-value for difference in LR is only valid if models are nested.
Una ulteriore misura della bontà di regressione è quella che mette a confronto le
previsioni corrette con quelle non corrette. In Stata si usa il comando lstat
. quietly logit lfp k5 age age2 wc lwg inc, nolog
31
. lstat
Logistic model for lfp
True
Classified D ~D Total
Anche nei BRM si è interessati a condurre una analisi grafica dei residui di regres-
sione. L’obiettivo è quello di identificare cosiddette influential observations. Non
tutti gli outlier influenzano la stima dei parametri in modo sensibile. Nelle figure
che seguono si riportano due esempi.
Come si è gia visto, gli errori dei modelli probit e logit sono per definizione
eteroschedastici. Tale eteroschedasticità dipende dalla probabilità di un outcome
positivo. Infatti
πi = Pr(yi = 1|xi )
(15)
Var(yi − πi |xi ) = πi (1 − πi )
Per πi = 0,5, la varianza è inferiore alla probabilità prevista (0,25) e tende a essere
uguale alle probabilità predette dal modello per πi −→ 0. Per questo motivo, di solito
si usano i residui scalati rispetto alla propria deviazione standard o, ancora, i residui
standardizzati (standardized Pearson residuals). In Stata si calcolano specificando
predict
l’opzione rs nel comando .
. logit lfp k5 k618 age wc hc lwg inc, nolog
32
(output omitted )
. predict rstd, rs
. label var rstd "Standadized residuals"
. sort inc
. drop index
. gen index = _n
. label var index "Observation number"
. scatter rstd index, yline(0)
. graph export "C:\LDVrm\ch3\predict_rs.eps", as(eps) replace
33
Figure 4: Scatter plot: standardized Pearson residuals.
rstd index
Influential observations sono anche note come high−leverage points. Questi pos-
sono essere individuati considerando la variazione di β̂ se si elimina l’osservazione
i −ma. Un metodo che consente di condurre tale analisi è dovuto a Pregidbon (1981)
che ha definito una misura (che sintetizza l’effetto sul vettore dei coefficienti dovuto
all’eliminazione di una osservazione) analoga alla distanza di Cook nei modelli lin-
eari. In Stata tale misura è calcolata specificando l’opzione dbeta nel comando
predict.
34
Figure 5: Scatter plot: standardized Pearson residuals opzione mlabel.
35
Figure 6: Scatter plot: Distanza di Cook.
predict newvarname
36
predict ammette l’uso delle opzioni if e in. Una volta eseguito, i risultati
vengono mantenuti in memoria fino al successivo calcolo. Con riferimento all’usuale
modello logit, i comandi che seguono possono essere utilizzati per avere prime
indicazioni circa le caratteristiche dei valori previsti.
. logit lfp k5 k618 age if wc == 1
(output omitted )
. predict prlogit
(option p assumed; Pr(lfp))
. sum prlogit
Variable Obs Mean Std. Dev. Min Max
predict può anche essere utilizzato per dimostare che le predicted probabilities
da modelli probit e logit sono sostanzialmente identiche. Nonostante le diverse
ipotesi sottostanti i due modelli (distribuzione di riferimento, Var(ε)), buona parte
di tali differenze sarebbero riflesse nella diversità dei parametri stimati.
37
. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )
. predict prlogit
(option p assumed; Pr(lfp))
. label var prlogit "logit: Pr(lfp)"
. predict prprobit
(option p assumed; Pr(lfp))
. label var prprobit "probit: Pr(lfp)"
prlogit 1.0000
prprobit 0.9998 1.0000
. scatter prlogit prprobit
Questo grafico evidenzia che, per quanto concerne il comando predict non vi
sono sostanziali differenze tra i due modelli. Tale comando non può essere una guida
per decidere quale scegliere tra i due metodi di stima. Per una migliore interpre-
tazione di tali modelli, potrebbe risultare di particolare interesse calcolare predicted
probabilities per determinati valori delle variabili cui si è interessati.
prvalue
Il comando permette di calcolare Pˆr(.) per determinate combinazioni
di valori delle variabili indipendenti. La sintassi del comando è la seguente:
£ ¤ £ ¤ £
prvalue if exp in range , x( variable1=value1[...]) rest(stat) level(#)
¤
maxcnt(#) save dif all nobase nolabel brief
38
dove
• maxcnt(♯) indica il massimo livello di count per cui Pˆr(.) è calcolata (opzione
che vale solo nei modelli per dati count).
• donne giovani, basso reddito, livello basso di istruzione, figli piccoli (gruppo 1)
39
. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )
. * gruppo 1
. prvalue, x(age=35 k5=2 wc=0 hc=0 inc=15) rest(mean)
. *gruppo 2
. prvalue, x(age=50 k5=0 k618=0 wc=1 hc=1) rest(mean)
. *gruppo 3
. prvalue, rest(mean)
prtab
costruisce una tabella di probabilità calcolate per tutte le combinazioni
delle variabili indicate (fino a un massimo di tre). La sintassi del comando è la
seguente:
£ ¤ £ ¤ £
prtab rowvar [colvar[supercolvar]] if exp in range , by(superrowvar
x(variable1=value1[...]) rest(stat) outcome(#) base novarlbl novallbl
¤
brief
dove
8
Un ulteriore comando di interesse a questo riguardo è praccum
40
• rowvar colvar supercolvar e superrowvar sono variabili tratte da precedenti
stime del modello e definiscono la tabella di output.
Nel nostro esempio, il comando fornisce valori delle probabilità calcolate per
tutte le combinazioni delle variabili ”numero di figli” e ”frequenza college”
. prtab k5 wc, rest(mean)
logit: Predicted probabilities of positive outcome for lfp
Wife College:
# kids < 1=yes 0=no
6 NoCol College
0 0.6069 0.7758
1 0.2633 0.4449
2 0.0764 0.1565
3 0.0188 0.0412
prgen
calcola tali probabilità, che possono anche essere rappresentate grafica-
mente. La sintassi del comando è la seguente:
£ ¤ £ ¤ £
prgen varname if exp in range , generate(prefix ) from(#) to(#)
ncases(#) x( variable1=value1[...]) rest(stat) maxcnt(#) outcome(#)
¤
brief all
dove
41
• from(♯) e to(♯) definisce l’intervallo di valori ammissibili per varname
• all specifica che i calcoli di media, mediana ecc. sono eseguiti sull’intero
campione invece che per l’intervallo specificato in fase di stima
• prefix p0 −→ Pr(y = 0)
• prefix p1 −→ Pr(y = 1)
42
. prgen inc, from(0) to(100) generate(p60) x(age=60) rest(mean) n(11)
logit: Predicted values as inc varies from 0 to 100.
k5 k618 age wc hc lwg inc
x= .2377158 1.3532537 60 .2815405 .39176627 1.0971148 20.128965
. label var p60p1 "Age 60"
. scatter p30p1 p40p1 p50p1 p60p1 p60x, c() l2("Pr(In labor force)")
La probabilità di partecipare alla forza lavoro per valori dell’età pari a 30, 40,
50 e 60 anni e per valori medi delle altre variabili, sono riportate nelle prime 4
colonne. Leggendo i dati per riga, le probabilità diminuiscono all’aumentare dell’età.
L’ultima colonna indica i valori del reddito per ciascuna riga. Dati i valori dell’età,
per colonna è possibile osservare l’effetto dell’aumento del reddito sulla probabilità
di offrire lavoro. Anche in questo caso si riduce.
43
3.3.8 Effetti marginali e cambiamenti discreti
Come si è visto in precedenza, l’analisi grafica può risultare molto utile per valutare
in che modo le probabilità si modificano in funzione di una o più variabili indipen-
denti. Non si tratta tuttavia di un metodo parsimonioso e non consente analisi
sistematiche. Una misura quantitativa di tali effetti è fornita dai cosiddetti effetti
marginali. Essi forniscono una misura dela variazione dell’outcome in risposta a
variazioni di una sola variabile indipendente, rimanendo costanti tutte le altre.
∂Pr(y = 1|x)
Effetto marginale = (17)
∂xk
mfx compute
calcola effetti marginali o elasticità e i corrispondenti errori stan-
dard dopo la stima del modello di interesse. La sintassi è la seguente
£ ¤ £ ¤ £
mfx compute if exp in range , dydx eyex dyex eydx at(atlist)
¤
eqlist(eqnames ) predict() nonlinear nodiscrete level(#)
dove
• dxdy calcola gli effetti marginali intorno ai valori medi delle variabili indipen-
denti (default)
∂logy
• eyex calcola elsaticità come ∂logx
∂y
• dyex calcola elsaticità come ∂logx
∂logy
• eydx calcola elsaticità come ∂x
44
in cui si specifica che gli effetti o le elasticità sono calcolate in corrispondenza
della media, mediana delle variabili indipendenti o a 0. Consente inoltre di speci-
ficare particolari valori di una o più variabili indipendenti, ponendo le restanti alla
propria media, mediana o a zero.
• noesample specifica che si utilizzi l’intero sample per la stima degli effetti
marginali
• nowght specifica che eventuali ponderazioni con weight non siano considerate
nella stima di mfx
45
variable dy/dx Std. Err. z P>|z| [ 95% C.I. ] X
prchange
è un comando altrenativo per la stima degli effetti marginali. E’ parte
della libreria di comandi Spost. prchange è rilevante poichè consente il calcolo dei
cambiamenti discreti (discrete change), definiti come la variazione della probabilità
predetta in seguito a un cambiamento discreto di una variabile esplicativa, tenendo
costanti (a valori medi, mediani, ecc.) le restanti variabili indipendenti. Anche
in questo caso, nelle impostazioni di default, i cambiamenti discreti sono calcolati
assumendo le restanti variabili indipendenti ai propri valori medi. Un confronto tra
effetti marginali e variazioni discrete è contenuto nel grafico che segue:
46
La sintassi di prchange è la seguente
£ ¤ £ ¤ £
prchange varlist if exp in range , x(variables and values) rest(stat )
¤
outcome(#) fromto brief nobase nolabel help all uncentered delta(#)
dove
. prchange, help
logit: Changes in Predicted Probabilities for lfp
min->max 0->1 -+1/2 -+sd/2 MargEfct
k5 -0.6361 -0.3499 -0.3428 -0.1849 -0.3569
k618 -0.1278 -0.0156 -0.0158 -0.0208 -0.0158
age -0.4372 -0.0030 -0.0153 -0.1232 -0.0153
wc 0.1881 0.1881 0.1945 0.0884 0.1969
hc 0.0272 0.0272 0.0273 0.0133 0.0273
lwg 0.6624 0.1499 0.1465 0.0865 0.1475
inc -0.6415 -0.0068 -0.0084 -0.0975 -0.0084
NotInLF inLF
Pr(y|x) 0.4222 0.5778
k5 k618 age wc hc lwg inc
x= .237716 1.35325 42.5378 .281541 .391766 1.09711 20.129
sd(x)= .523959 1.31987 8.07257 .450049 .488469 .587556 11.6348
Pr(y|x): probability of observing each y for specified x values
Avg|Chg|: average of absolute value of the change across categories
Min->Max: change in predicted probability as x changes from its minimum to
its maximum
0->1: change in predicted probability as x changes from 0 to 1
-+1/2: change in predicted probability as x changes from 1/2 unit below
base value to 1/2 unit above
-+sd/2: change in predicted probability as x changes from 1/2 standard
dev below base to 1/2 standard dev above
MargEfct: the partial derivative of the predicted probability/rate with
respect to a given independent variable
47
Nelle impostanzioni di default prchange calcola per ciascuna variabile variazioni
dal suo minimo al suo massimo (Min − > Max), da 0 a 1 (0 − > 1), variazioni di
+ − .5 a partire dal suo valore iniziale e variazioni pari a + − .5σ del valore medio
iniziale. Gli effetti marginali sono stimati e riportati nella colonna MargEfct. E’
possibile condurre un approfondimento di tali risultati utilizzando l’opzione fromto.
. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )
48
vincolando Pr(y\ = 1|x) al variare tra 0 e 1. A questo fine, si costruisce la funzione
di probabilità detta degli odds che esprime l’incidenza dei successi rispetto a quella
dei non-successi:
Questa espressione varia tra 0 e ∞. Il logaritmo degli odds o logit varia tra −∞
e +∞. Cio’ suggersice che il modello è lineare nel logit
lnΩ(x) = xβ (20)
dove gli odds sono una combinazione lineare delle x e β. I coefficienti possono
essere interpretati come segue. Per una variazione unitaria delle x, il logit varia di
β.
Una interpretazione alternativa si ha considerando gli esponenziali dell’espressione
di sopra. In questo caso, per una variazione unitaria di x, gli odds variano di exp(β),
tenendo costanti le altre variabili. Se exp(β) > 1, gli odds sono exp(β) volte più
grandi, viceversa se exp(β) < 1.
Se consideriamo variazioni delle x pari alla deviazione standard, gli odds sono attesi
variare di exp(βk × sk ).
listocef
calcola gli odds ratios secondo le varie modalità appena considerate. La
sintassi del comando è la seguente
£ ¤
listcoef varlist , pvalue(#) {factor | percent} std constant help
dove
49
. listcoef, help
logit (N=753): Factor Change in Odds
Odds of: inLF vs NotInLF
b = raw coefficient
z = z-score for test of b=0
P>|z| = p-value for z-test
e^b = exp(b) = factor change in odds for unit increase in X
e^bStdX = exp(b*SD of X) = change in odds for SD increase in X
SDofX = standard deviation of X
Esempi di interpretazione
• per ogni nuovo nato, gli odds di essere occupato diminuiscono di un fattore di
0,23, tenute costanti tutte le altre variabili
• per un aumento del reddito pari alla propria deviazione standard, gli odds di
essere occupato aumentano di 1,43, tutte le altre variabili tenute costanti
• per un livello di età più elevato di 10 anni, gli odds si incrementano di 0,53
Nell’interpretare gli odds ratio occorre sempre considerare che si tratta di effetti
moltiplicativi. Ciò implica che effetti positivi sono > 1 e effetti negativi sono com-
presi tra 0 e 1. La dimensione di un effetto positivo è confrontabile con un effetto
negativo considerando l’inverso del primo. Ad esempio, una variazione moltiplica-
tiva di 2 ha la stessa dimensione di un fattore negativo di 0,5=1/2. Pertanto, un
coefficiente di 0,1 (negativo) indica un effetto più forte di un coefficiente di 2 (posi-
tivo).
Ancora, per effetto della scala moltiplicativa, gli odds relativi all’evento che non si
verifica è pari all’inverso degli odds dell’evento che si verifica. listcoef calcola tali
effetti attraverso l’opzione reverse
. listcoef, reverse
logit (N=753): Factor Change in Odds
Odds of: NotInLF vs inLF
50
k618 -0.06457 -0.950 0.342 1.0667 1.0890 1.3199
age -0.06287 -4.918 0.000 1.0649 1.6612 8.0726
wc 0.80727 3.510 0.000 0.4461 0.6954 0.4500
hc 0.11173 0.542 0.588 0.8943 0.9469 0.4885
lwg 0.60469 4.009 0.000 0.5462 0.7010 0.5876
inc -0.03445 -4.196 0.000 1.0350 1.4930 11.6348
Si tratta, in questo caso, di odds calcolati come NotInLF rispetto a inLF. Pos-
siamo cosı̀ interpretare i risultati per k5: per ogni nuovo nato, gli odds di essere
non−occupati si incrementano di un fattore di 4,3(=1/0,23), a parità di altre con-
dizioni.
Anche se gli odds ratio sembrano risolvere il problema della nonlinearità, occore
considerare che una variazione costante negli odds non corrisponde a una variazione
costante della probabilità. Cosı̀, se gli odds sono 1 su 100 la corrispondente prob-
Ω
abilità è 0,01 (p = 1+Ω ). Se gli odds passano da 1 su 1 a 2 su 1, le probabilità
stimate si incementano di 0,167. Una variazione degli odds dipende da quindi dalle
probabilità stimate che, a loro volta, dipendono dai coefficienti stimati.
A fini di interpretazione, in luogo dei fattori moltiplicativi, gli odds sono espressi
anche in termini percentuali
100[exp(100 × δ) - 1]
Per ciascun nuovo nato, gli odds di essere occupato dimisuiscono del 77% (a
parità di altre condizioni). Un incremento del livello del reddito femminile pari alla
sua deviazione standard incrementa gli odds di essere occupati dell’83%.
51