Vous êtes sur la page 1sur 51

Modelli di Regressione per Variabili Limitate e Categoriche.

Esercitazioni con Stata

Carmine Pappalardo, (ISAE)


e-mail: c.pappalardo@isae.it

Rome, September 28, 2007

Contents

1 Introduzione 2

2 Introduzione a Stata 6

3 Modelli con variabili dicotomiche: logit e probit 6


3.1 Breve accenno alla teoria . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Procedure di stima con Stata . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Opzioni if e in . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.2 Dati mancanti . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.3 Opzione weight . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.4 Opzione robust . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Post-estimation analysis . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.1 Output di stima . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 I comandi estimates e outreg . . . . . . . . . . . . . . . . . 25
3.3.3 Confronto tra parametri logit e probit . . . . . . . . . . . . 27
3.3.4 Test su coefficienti . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.5 Bontà della regressione . . . . . . . . . . . . . . . . . . . . . . 30
3.3.6 Analisi dei residui . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.7 Interpretazione dei modelli . . . . . . . . . . . . . . . . . . . 35
3.3.8 Effetti marginali e cambiamenti discreti . . . . . . . . . . . . 44
3.3.9 Odds−ratio nel modello logit . . . . . . . . . . . . . . . . . 48

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.

• Greene, W. C. (2000), Econometric Analysis, Prentice Hall

• Maddala, Limited Dependent and Qualitative Variables, CUP, 1986.

• 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

• Breen R. (1996), Regression Models Censored, Sample Selected, or Truncated


Data, SAGE Publications

• Wooldridge, J., (2002), Econometric analysis of cross section and panel data,
MIT Press.

I modelli per variabili limitate e categoriche oggetto di studio sono i seguenti


(tra parentesi si riportano i comandi Stata utilizzati per la stima):

• Modelli per variabili dicotomiche (logit e probit)

• Modelli per variabili limitate e ordinate: ordered logit (ologit) e ordered


probit (oprobit)

• Modelli per variabili dicotomiche con self-selection (tobit, heckit, heckprob,


biprobit)
1
Tutti gli esempi riportati in queste pagine, ad eccezione della sezione relativa ai modelli con
self selection, enodgenità e modelli logit gerarchici sono tratti dal libro di J. Scott Long e Jeremy
Freese ”Regression models for categorical dependent variables using Stata, Second Edition”.

2
• Modelli con variabili nominali: multinomial logit (mlogit) e conditional logit
(clogit)

• Modelli logit gerarchici (nlogit)

• Modelli per dati count: Poisson (poisson), negative binomial (nbreg), zero-
inflated Poisson regression (zip) e zero-inflated Negative Binomial regression
(zinb).

Gli esempi sono condotti su dati cross-section. Non si considerano, pertanto,


modelli per dati di durata (duration models) e i modelli per dati panel 2 .
Il focus delle esercitazioni sarà rivolto alla:

• soluzione empirica di un problema teorico

• introduzione e analisi delle procedure di stima disponibili con il programma


Stata/SE

• interpretazione dell’output di stima

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

E’ possibile installare i comandi in una directory ad-hoc, ad esempio nella cartella


di lavoro spost9 (Spost ado files for Stata9) direttamente attraverso Stata.

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\

In questo caso, la directory PERSONAL attiva è quella desiderata. In caso contrario


è necessario definire la directory desiderata e configurarla come PERSONAL attraverso
i comandi:
. cd c:\Programmi\Stata9\
. mkdir Spost9\
. sysdir set PERSONAL "c:\Programmi\Stata9\Spost9\

Successivamente, lanciando l’istruzione


net search spost
nella finestra di output (Stata Results) compariranno le descrizioni di numerosi
programmi collegati a Spost per le varie versioni di Stata. Tra questi, occorre
selezionare i link denominati ”spost9”. La successiva apertura di Stata Viewer
contiene l’indicazione dei singoli file (.ado e .hlp) e di un ulteriore link ”click here
to install”. Dopo il click, ha inizio l’installazione dei programmi e dei file della
guida nella cartella PERSONAL configurata in precedenza. E’ necessario attendere
alcuni minuti e seguire il processo di installazione sulla ”barra di stato” in basso a
sinistra. Sono possibili tre output:

• installation complete. La procedura è stata eseguita con successo A seguito


di tale messaggio comparirà anche la directory in cui i file sono stati installati.

• 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.

Installazione di Spost attraverso il comando net install. Si tratta di una


modalità di installazione più veloce. Stata installa i programmi direttamente nella
directory di lavoro (”Working Directory”), che è quella in cui il programma Stata
legge e salva dati e programmi. E’ indicata in basso a sinistra nella ”barra di stato”
del programma o è identificata eseguendo il comando cd nella finestra dei comandi
(Stata Command). E’ sufficiente usare tale comando per selezionare la directory di
lavoro desiderata.
Per l’istallazione si esegue dapprima l’istruzione
net from http://www.indiana.edu/∼jslsoc/stata/
con cui si ha un elenco dei file disponibili. L’installazione si ottiene con
net install spost9 ado
net install spost9 do
e il download di file supplementari con il comando
net get package.
Infine, sono disponibili file .zip per le versioni 7 ,8 e 9 di Stata all’indirizzo web

www.stata.com/∼jslsoc/spost.htm

5
2 Introduzione a Stata

3 Modelli con variabili dicotomiche: logit e probit

3.1 Breve accenno alla teoria

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)

dove x è una matrice di regressori, i indica la posizione dell’osservazione nella


base di dati (ad esempio, l’impresa o la famiglia i -ma), εi è un termine di errore per
il quale vale l’usuale assunzione iid. Nel caso di una sola variabile indipendente il
modello si semplifica a

yi∗ = α + βxi + εi . (2)

Questa equazione è del tutto simile a quella di un modello di regressione lineare


con l’importante eccezione della non-osservabilità della variabile dipendente. Una
equazione di misurazione permette di realizzare un link tra il fenomeno di interesse
(non osservabile) e una variabile indicatrice y
(
1 if yi∗ > 0
yi =
0 if yi∗ ≤ 0

In questo esempio, tutti i casi in cui valori di y ∗ sono positivi corrispondono a


osservazioni di y = 1, i casi in cui y ∗ è negativa sono codificati come y = 0. In
altri termini, non possiamo osservare l’intensità del fenomeno ma, attraverso una
variabile binaria siamo possiamo misurare la presenza/assenza, appartenenza/non
appartenenza dello stesso per ogni unità oggetto di analisi.
Ad esempio, in uno studio sull’offerta di lavoro femminile, è necesario identificare
nel campione di analisi tutte le donne che dichiarano di appartenere alla forza lavoro.
La propensione al lavoro femminile è una variabile difficilmente osservabile (non-
osservabile). Essa può differire fortemente da soggetto a soggetto; in generale, non
si e’ in grado di rilevare con precisione se ciascun individuo è in procinto di diventare
inattivo o se continuera a offrire lavoro. Nei due casi, tuttavia, y = 1. La variabile
latente consente di osservare, per ciascun individuo l’appartenenza, a uno specifico
stato. Nel caso in esame, fino a quando l’offerta di lavoro risulterà positiva (y ∗ > 0),

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.

Figure 1: Relazione tra y ∗ e Pr(y = 1)

Per un dato valore di x,

Pr(y = 1|x) = Pr(y∗ > 0|x)

Pr(y = 1|x) = Pr(ǫ > −[α + βx]|x) (3)

secondo cui la funzione di probabilità dipende dalla distribuzione dell’errore ε.


Di solito, si ipotizzano due distribuzioni del termine ε e in entrambe si assume E(ε)
= 0:

1. ε ∼ N(0, 1)

2. ε ∼ L(0, π 2 /3)

Il primo caso corrisponde al modello probit, in cui l’equazione (3) diventa:

+∞ µ 2¶
1 t
Z
Pr(y = 1|x) = √ exp − dt (4)
−∞ 2π 2

mentre il secondo è il modello logit

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)

dove F è la funzione cumulata di densità (cdf) di ε valutata per determinati valori


della variabile indipendente. La relazione tra modello lineare a variabile latente e il
relativo modello probabilistico non-lineare è riportato nelle figure che seguono.

Figure 2: Relazione tra il modello lineare y ∗ = α + βx e il modello probabilistico


non-lineare P r(y = 1|x) = F (α + βx)

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)

Nella figura (3) si riporta la distribuzione di probabilita’ dell’evento di interesse


al variare di x. E’ interessante considerare che alla forma teorica dei modelli ap-
pena considerati (Binary Regression Models, BRM) si può pervenire anche senza
introdurre la nozione di variabile latente. In particolare, Theil (1970) dimostra che
il modello logit può essere derivato da un modello probabilistico del tipo

Pr(y = 1|x) = xβ + α (7)

vincolando Pr(y\ = 1|x) a 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:

Pr(y = 1|x) Pr(y = 1|x)


Ω(x) = = (8)
Pr(y = 0|x) 1 − Pr(y = 1|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

Per la stima probit


£ ¤ £ ¤ £ ¤ £ ¤ £
probit 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:

• nolog: non visualizza il processo iterativo per la massimizzazione della fun-


zione di verosimiglianza.
¡ ¢
• or fornisce i coefficienti di stima in termini di odds ratio definiti come exp β̂
invece di β̂. Errori standard e intervalli di confidenza sono trasformati in
maniera analoga.

• level(#): livello di confidenza; 95% è il livello di default.

• nocoef: non visualizza l’output di stima.

• noconstant: stima senza costante.

• robust: stima robusta della matrice di varianza/convarianza.

• cluster(varname ): si usa questa opzione se si ritiene che le osservazioni


siano indipendenti tra i gruppi ma non necessariamente all’interno degli stessi.
cluster() indica a quale gruppo appartiene ciascuna osservazione. L’uso di
questa opzione ha effetto su errori standard e matrice di varianza e covarianza
ma non sui coefficienti stimati. Importante: cluster() equivale a specificare
l’opzione robust.

• score: produce la matrice degli score

10
• offset(varname ): vincola a 1 il parametro della variabile esplicativa var-
name.

Entrambe le istruzioni forniscono stime di massima verosmiglianza (ML). I co-


efficienti ottenuti possono essere considerati come quelli che hanno la più alta ver-
sosimiglianza di generare i dati campionari, date le assunzioni sottostanti il modello.
Ad esempio, con riferimento a un modello a una sola variabile, per ogni combi-
nazione di α e β (assumendo la varianza come nota), la funzione di verosimglianza
ci informa sull’eventualità che avremmo effettivamente osservato i dati su cui con-
duciamo l’esercizio di stima se intercetta e pendenza stimate ex post risultassero i
veri parametri della popolazione.
La funzione di verosimiglianza è rappresentata graficamente da una superficie
con uno o più massimi, corrispondenti a varie combinazioni dei parametri oggetto di
stima. In prima approssimazione, la varianza delle stime ci dice quanto rapidamente
cambia la pendenza della superficie di volta in volta che ci si avvicina al punto di
massimo.
La massimizzazione della verosimiglianza è eseguita con metodi numerici. E’
necessario, pertanto, attribuire dei valori iniziali ai parametri incogniti e sulla base
del valore della funzione da massimizzare possiamo cosı̀ capire dove ci troviamo. At-
traverso una procedura iterativa, di volta in volta si sostituiscono valori dei parametri
incogniti in modo da massimizzare la funzione obiettivo (convergenza).
Primo esempio. Apriamo in Stata il file di dati binlfp2.dta. Si tratta di dati
sull’offerta di lavoro femminile. Il campione consiste di 753 donne sposate, osservate
nel 1976, di eta’ compresa tra 30 e 60 anni. Una prima descrizione dei dati può
essere ottenuta con i comandi describe e summarize.
. use binlfp2, clear
(Data from 1976 PSID-T Mroz)
. describe
Contains data from binlfp2.dta
obs: 753 Data from 1976 PSID-T Mroz
vars: 8 30 Apr 2001 16:17
size: 13,554 (99.9% of memory free) (_dta has notes)

storage display value


variable name type format label variable label

lfp byte %9.0g lfplbl Paid Labor Force: 1=yes 0=no


k5 byte %9.0g # kids < 6
k618 byte %9.0g # kids 6-18
age byte %9.0g Wife’s age in years
wc byte %9.0g collbl Wife College: 1=yes 0=no
hc byte %9.0g collbl Husband College: 1=yes 0=no
lwg float %9.0g Log of wife’s estimated wages
inc float %9.0g Family income excluding wife’s

Sorted by: lfp

11
. summarize
Variable Obs Mean Std. Dev. Min Max

lfp 753 .5683931 .4956295 0 1


k5 753 .2377158 .523959 0 3
k618 753 1.353254 1.319874 0 8
age 753 42.53785 8.072574 30 60
wc 753 .2815405 .4500494 0 1

hc 753 .3917663 .4884694 0 1


lwg 753 1.097115 .5875564 -2.054124 3.218876
inc 753 20.12897 11.6348 -.0290001 96

Supponiamo di voler studiare attraverso un modello logit come le condizioni


socio-familiari influenzano l’offerta di lavoro femminile. Stimiamo il modello
. logit lfp k5 k618 age wc hc lwg inc
Iteration 0: log likelihood = -514.8732
Iteration 1: log likelihood = -454.32339
Iteration 2: log likelihood = -452.64187
Iteration 3: log likelihood = -452.63296
Iteration 4: log likelihood = -452.63296
Logit estimates Number of obs = 753
(output omitted )

Il processo di convergenza per la massimizzazione della funzione di verosimiglianza


(LL) è riportato all’inizio dell’ output di stima. E’ importante considerare che il val-
ore del logaritmo e’ sempre negativo dal momento che la verosimiglianza è una
probabilità (e assume quindi solo valori compresi tra 0 e 1). Si consiglia di visualiz-
zare sempre tale processo e limitare l’uso dell’opzione nolog. E’ infatti informativo
sulla consistenza delle stime. Il numero di iterazioni non deve essere molto elevato e
non deve presentare discontinuità (ad esempio, iterazioni con valori missing di LL).
La teoria ci dice che gli stimatori ML sono consistenti, efficienti e (asintotica-
mente) normali all’aumentare della dimensione campionaria. Nei campioni finiti tali
proprietà non sono più verificate. Ad eccezione dei modelli logit e Poisson nei
campioni finiti, le proprietà degli stimatori ML non sono più note e sono pertanto
necessari alcuni accorgimenti (Long, 1997):

• 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.

Oltre alla scarsa dimensione campionaria, altri problemi (numero di iterazioni


elevato, i parametri stimati non appaiono ragionevoli) potrebbero essere determinati
da:

• 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);

• la scala delle variabili è eccessivamente diversa. Un indicatore di ciò è dato


dal rapporto tra la deviazione standard (sd) dei parametri stimati. se è ec-
cessivamente elevato è sufficiente riscalare l’unità di misura della variabile che
ptresenta un errore standard elevato

Ritorniamo al modello logit stimato in precedenza. Come si è visto, è sufficiente


far seguire al comando logit il nome della variabile dipendente depvar e la lista
di variabili indipendenti indepvars. La costante è già inclusa nel modello. Se non
si specificano indepvars, Stata stima un modello con la sola costante. Prima di
analizzare l’output di stima, consideriamo alcune importanti opzioni utilizzate nella
fase di specificazione.

(esempi con nolog or level nocoeff noconstant)

3.2.1 Opzioni if e in

Le opzioni if e in possono essere utilizzare per controllare il sample di stima.


Con if è possibile formulare una condizione con riferimento a una determinata vari-
abile. In tal modo, il sample di stima include le sole osservazioni che soddisfano
la condizione desiderata. Nel caso in esame, se si vuole analizzare l’effetto delle
variabili familiari sull’offerta di lavoro delle sole donne che hanno al più tre figli
useremo il comando

logit lfp k5 k618 age wc if k5<=3.

In questo caso, la variabile oggetto dell’opzione if è presente anche tra i re-


gressori. Poichè k5 (numero di figli) varia da 0 a 5, essa non è esclusa dalla stima.
Diverso è il caso se la condizione ha per oggetto una variabile dicotomica. Supponi-
amo di voler selezionare il solo sottoinsieme di donne sposate con mariti con titolo

13
di studio elevato. Il modello si specifica come segue

logit lfp k5 k618 age wc if hc == 1.

Se hc è incluso anche tra i regressori

logit lfp k5 k618 age wc hc if hc == 1

Stata elimina automaticamente il regressore ridonante e compare il messaggio


. logit lfp k5 k618 age wc hc if hc == 1
note: hc dropped due to collinearity
Iteration 0: log likelihood = -198.53844
Iteration 1: log likelihood = -181.76303
Iteration 2: log likelihood = -181.62706
Iteration 3: log likelihood = -181.62694
Logit estimates Number of obs = 295
(output omitted )

Una specificazione alternativa del sample di stima è ottenuta specificando l’opzione


in. Supponiamo di voler stimare il modello sulle prime 550 osservazioni del dataset.
Attraverso il comando in è possibile scrivere
logit lfp k5 k618 age wc in 1/550

e, analogamente, sul sottoinsieme 100-600

logit lfp k5 k618 age wc in 100/600

3.2.2 Dati mancanti

Stata nelle impostazioni di default elimina automaticamente dalla stima tutte le


osservazioni che risultano missing. I dati mancanti sono indicati da ”.”. E’ probabile
che, anche utilizzando lo stesso dataset, sia sufficiente cambiare specificazione per
ottenere stime condotte su un numero di osservazioni differente.
. use binlfp2_m
(Data from 1976 PSID-T Mroz)

. logit lfp k5 k618 age hc lwg inc


Logit estimates Number of obs = 730
(output omitted )

. logit lfp k5 age hc lwg inc

14
Logit estimates Number of obs = 753
(output omitted )

Ciò ha due importanti implicazioni. Da un lato, non è possibile confrontare


parametri stimati con modelli alternativi, attraverso il comando lrtest, se le di-
mensioni campionarie sono differenti.
In questo caso, variazioni dei parametri stimati possono infatti essere dovute sia
alla differente specificazione sia all’uso di campioni di diversa ampiezza. In secondo
luogo, l’eliminazione automatica delle osservazioni con dati mancanti potrebbe tal-
volta sfuggire all’analisi. E’ preferibile decidere di volta in volta quali osservazioni
utilizzare. In generale, è sufficiente creare variabili indicatrici di dati missing. A
mark markout
questo fine si utilizzano i comandi e . Con il primo si definisce
una variabile markvar che assume valore 1 per tutte le osservazioni del dataset.
markout pone markvar a 0 in tutti i casi di dati mancanti.
. use binlfp2_m
(Data from 1976 PSID-T Mroz)
. mark nomiss
. markout nomiss lfp k5 k618 age wc hc lwg inc
. tab nomiss
nomiss Freq. Percent Cum.

0 30 3.98 3.98
1 723 96.02 100.00

Total 753 100.00

. logit lfp k5 k618 age hc lwg inc if nomiss == 1


Logit estimates Number of obs = 723
(output omitted )

. logit lfp k5 age hc lwg inc if nomiss == 1


Logit estimates Number of obs = 723
(output omitted )

3.2.3 Opzione weight

L’opzione weight consente di utilizzare informazioni aggiuntive relative alle singole


osservazioni del dataset di analisi di cui si ritiene di tener conto in sede di stima.
Stata consente di utilizzare informazioni relative all’”importanza” delle osservazioni
(ad esempio, nel caso delle celle di medie), sia di tener conto del disegno campionario
nel caso di analisi con microdati. Stata riconosce quattro tipologie di pesi:
fweight
si utilizza quando occorre tener conto della presenza di osservazioni
rappresentative di una pluralità di informazioni sottostanti perfettamente identiche.

15
weight significato
fweight frequency weights
pweight sampling weights
aweight analytic weights
iweight importance weights

Table 1: Opzione weight in Stata

Ad esempio, se il valore di fweight associato a un singolo record è 5, ciò significa


che il dataset originario conteneva 5 osservazioni perfettamente identiche. fweight
è sempre un numero positivo e intero. Ad esempio, il dataset weights.dta

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

può essere scritto in forma più sintetica come

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

la regressione condotta sul primo dataset

16
logit y x1 x2

è del tutto equivalente a

logit y x1 x2 [fweight=pop].

I due output di stima sono uguali.


. use weights, clear
. regress y x1 x2
Source SS df MS Number of obs = 16
F( 2, 13) = 110.78
Model 16881.4364 2 8440.71818 Prob > F = 0.0000
Residual 990.501136 13 76.1923951 R-squared = 0.9446
Adj R-squared = 0.9361
Total 17871.9375 15 1191.4625 Root MSE = 8.7288

y Coef. Std. Err. t P>|t| [95% Conf. Interval]

x1 .4555265 .2009758 2.27 0.041 .0213446 .8897084


x2 19.48587 1.320052 14.76 0.000 16.63407 22.33767
_cons 17.3961 3.450946 5.04 0.000 9.940789 24.85142

. use weights_f, clear


. regress y x1 x2 [fweight=pop]
Source SS df MS Number of obs = 16
F( 2, 13) = 110.78
Model 16881.4364 2 8440.71818 Prob > F = 0.0000
Residual 990.501136 13 76.1923951 R-squared = 0.9446
Adj R-squared = 0.9361
Total 17871.9375 15 1191.4625 Root MSE = 8.7288

y Coef. Std. Err. t P>|t| [95% Conf. Interval]

x1 .4555265 .2009758 2.27 0.041 .0213446 .8897084


x2 19.48587 1.320052 14.76 0.000 16.63407 22.33767
_cons 17.3961 3.450946 5.04 0.000 9.940789 24.85142

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].

il modello di regressione diventa:

yi = xi β + εi , εi ∼ N(0, σ 2 /wi ) (11)

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

ȳi = x̄i β + ε̄i , ε̄i ∼ N(0, σ 2 /Ni ) (12)

E’ presumibile che la varianza sia inferiore per il gruppo j in cui N j =100.000


piuttosto che nel gruppo i in cui N i =5. Il comando aweight appare analogo a quello
che si sarebbe utilizzato nella ponderazione dei microdati provenienti da un campi-
onamento casuale stratificato. Si pensi alla procedura di gestione dei microdati delle
inchieste ISAE. Si tratta tuttavia di un uso non corretto della ponderazione. Nel
caso di microdati si dispone di dati individuali, in cui il problema della eteroschedas-
ticità non si pone (il modello è di nuovo analogo al modello (11)), e non si giustifica
l’uso di stimatori ponderati con aweight.
Tuttavia, l’uso di stimatori con ponderazione, anche quando non si giustifica teorica-
mente, aumenta l’efficienza delle stime. E’ questo il motivo per cui si ricorre spesso
all’uso di aweight quando sarebbe invece necessaria la ponderazione con l’opzione
pweight.

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]

logit y x1 x2 [pweight=pop], robust

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.

. use isae.dta, clear


. list

reg sett cladd tp_u tp_n add pop

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

11. 11 1 1 0 1 178 105313


12. 12 1 1 0 .0909091 55 32412
13. 13 1 1 .8260869 .173913 46 21803
14. 13 1 2 1 0 225 19207
15. 14 1 1 1 0 39 8108

16. 15 1 1 .3012048 .6987952 166 54550


17. 16 1 1 0 1 23 8158
18. 17 1 1 0 1 19 9527
19. 18 1 1 .3497268 .5191257 183 38183
20. 19 1 1 .807947 .192053 151 61130

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

logit y x1 x2 [pweight=pop] cluster(sett)

Se si lavora con microdati provenienti da disegni campionari complessi, Stata


dispone di un insieme di comandi (svy + comando standard) che consentono di
tener conto di tali informazioni in fase di stima. Nel caso in esame, si dispone dei
comandi svylogit e svyprobit. E’ importante considerare che:

• i comandi di stima standard (non-svy) che includono le opzioni pweight e


cluster producono gli stessi output dei comandi svy

• se il disegno campionario è realtivamente semplice, a parità di altre condizioni,


è preferibile utilizzare i comandi non-svy.

20
3.2.4 Opzione robust

Attraverso l’opzione robust la stima della matrice di varianza e covarianza è con-


dotta secondo la metodologia di Huber e White (1982) (sandwich standard errors).
Gli errori standard sono considerati robusti a violazioni delle assunzioni relative al
vero modello sottostante i dati. Ciò succede, ad esempio, quando si conduce una
stima logit se il modello corretto è di tipo probit. Le stime ottenute non possono
essere considerate di tipo ML dal momento che la funzione di verosimiglianza utiliz-
zata non è quella corretta. In questo caso, la correzione robust fornisce la migliore
approssimazione della vera funzione di densità (mimimum ignorance estimator ). Di
seguito si riporta un esempio dell’uso delle opzioni robust e cluster() con il co-
mando probit 5 .

. use auto
(1978 Automobile Data)

. probit foreign mpg weight


Iteration 0: log likelihood = -45.03321
Iteration 1: log likelihood = -29.244141
Iteration 2: log likelihood = -27.041557
Iteration 3: log likelihood = -26.84658
Iteration 4: log likelihood = -26.844189
Iteration 5: log likelihood = -26.844189
Probit estimates Number of obs = 74
LR chi2(2) = 36.38
Prob > chi2 = 0.0000
Log likelihood = -26.844189 Pseudo R2 = 0.4039

foreign Coef. Std. Err. z P>|z| [95% Conf. Interval]

mpg -.1039503 .0515689 -2.02 0.044 -.2050235 -.0028772


weight -.0023355 .0005661 -4.13 0.000 -.003445 -.0012261
_cons 8.275464 2.554142 3.24 0.001 3.269438 13.28149

. probit foreign mpg weight, robust


Iteration 0: log pseudo-likelihood = -45.03321
Iteration 1: log pseudo-likelihood = -29.244141
Iteration 2: log pseudo-likelihood = -27.041557
Iteration 3: log pseudo-likelihood = -26.84658
Iteration 4: log pseudo-likelihood = -26.844189
Iteration 5: log pseudo-likelihood = -26.844189
Probit estimates Number of obs = 74
Wald chi2(2) = 30.26
Prob > chi2 = 0.0000
Log pseudo-likelihood = -26.844189 Pseudo R2 = 0.4039

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

. probit foreign mpg weight, robust cluster(manuf)


Iteration 0: log pseudo-likelihood = -45.03321
Iteration 1: log pseudo-likelihood = -29.244141
Iteration 2: log pseudo-likelihood = -27.041557
Iteration 3: log pseudo-likelihood = -26.84658
Iteration 4: log pseudo-likelihood = -26.844189
Iteration 5: log pseudo-likelihood = -26.844189
Probit estimates Number of obs = 74
Wald chi2(2) = 28.99
Prob > chi2 = 0.0000
Log pseudo-likelihood = -26.844189 Pseudo R2 = 0.4039
(standard errors adjusted for clustering on manuf)

Robust
foreign Coef. Std. Err. z P>|z| [95% Conf. Interval]

mpg -.1039503 .0504538 -2.06 0.039 -.202838 -.0050626


weight -.0023355 .0004517 -5.17 0.000 -.0032208 -.0014503
_cons 8.275464 2.180972 3.79 0.000 4.000837 12.55009

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

. probit foreign mpg weight, score(u)


Iteration 0: log likelihood = -45.03321
Iteration 1: log likelihood = -29.244141
Iteration 2: log likelihood = -27.041557
Iteration 3: log likelihood = -26.84658
Iteration 4: log likelihood = -26.844189
Iteration 5: log likelihood = -26.844189
Probit estimates Number of obs = 74
LR chi2(2) = 36.38
Prob > chi2 = 0.0000
Log likelihood = -26.844189 Pseudo R2 = 0.4039

foreign Coef. Std. Err. z P>|z| [95% Conf. Interval]

mpg -.1039503 .0515689 -2.02 0.044 -.2050235 -.0028772


weight -.0023355 .0005661 -4.13 0.000 -.003445 -.0012261
_cons 8.275464 2.554142 3.24 0.001 3.269438 13.28149

22
. summarize u
Variable Obs Mean Std. Dev. Min Max

u 74 -3.96e-16 .5988325 -1.655439 1.660787

. correlate u mpg weight


(obs=74)
u mpg weight

u 1.0000
mpg 0.0000 1.0000
weight 0.0000 -0.8072 1.0000

. list make foreign mpg weight u if abs(u) > 1.65

make foreign mpg weight u

24. Ford Fiesta Domestic 28 1,800 -1.6554395


64. Peugeot 604 Foreign 14 3,420 1.6607871

dove foreign = 1.

3.3 Post-estimation analysis

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

Table 2: Comandi postest

23
3.3.1 Output di stima

Ritorniamo al dataset binlfp2.dta che contiene informazioni sull’offerta di lavoro


di un campione di donne di età comprea tra 30 e 60 anni. Supponiamo di voler
stimare il modello

Pr(lfp = 1) = F (β0 + βk5 k5 + βk618 k618 + βage age


(13)
+βwc wc + βhc hc + βlwg lwg + βinc inc)

utilizzando i comandi logit e probit e successivamente di confrontare i risultati


ottenuti dai due modelli.
. 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

lfp Coef. Std. Err. z P>|z| [95% Conf. Interval]

k5 -1.462913 .1970006 -7.43 0.000 -1.849027 -1.076799


k618 -.0645707 .0680008 -0.95 0.342 -.1978499 .0687085
age -.0628706 .0127831 -4.92 0.000 -.0879249 -.0378162
wc .8072738 .2299799 3.51 0.000 .3565215 1.258026
hc .1117336 .2060397 0.54 0.588 -.2920969 .515564
lwg .6046931 .1508176 4.01 0.000 .3090961 .9002901
inc -.0344464 .0082084 -4.20 0.000 -.0505346 -.0183583
_cons 3.18214 .6443751 4.94 0.000 1.919188 4.445092

. probit lfp k5 k618 age wc hc lwg inc, nolog


Probit estimates Number of obs = 753
LR chi2(7) = 124.36
Prob > chi2 = 0.0000
Log likelihood = -452.69496 Pseudo R2 = 0.1208

lfp Coef. Std. Err. z P>|z| [95% Conf. Interval]

k5 -.8747112 .1135583 -7.70 0.000 -1.097281 -.6521411


k618 -.0385945 .0404893 -0.95 0.340 -.117952 .0407631
age -.0378235 .0076093 -4.97 0.000 -.0527375 -.0229095
wc .4883144 .1354873 3.60 0.000 .2227642 .7538645
hc .0571704 .1240052 0.46 0.645 -.1858754 .3002161
lwg .3656287 .0877792 4.17 0.000 .1935847 .5376727
inc -.020525 .0047769 -4.30 0.000 -.0298875 -.0111626
_cons 1.918422 .3806536 5.04 0.000 1.172355 2.66449

Specificando l’opzione nolog la procedura iterativa per la massimizzazione di LL


non viene visualizzata. Log-likelihood è il valore di LL a convergenza. Lr chi2(7)
è il valore del test basato sul rapporto di verosimiglianza relativo alla significatività

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.

3.3.2 I comandi estimates e outreg

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

dove le options sono le seguenti:

• stats (AIC, BIC, rank)

• star indica la significatività dei coefficienti (∗: ¡.05, ∗∗: ¡.01, ∗ ∗ ∗: ¡.001)

• keep keeplist specifica i coefficienti da includere nella tabella

• drop specifica i coefficienti da escludere dalla tabella

• se: errori standard sotto i coefficienti stimati

• t: t−stat sotto i coefficienti stimati

• p: p−value sotto i coefficienti stimati

• label: visualizza label invece dei nomi delle variabili

• style(oneline columns noline: formatta in vari modi la tabella di output

• newpanel: statistiche riportate al di sotto della tabella dei coefficienti


6
Per una completa sintassi del comando si rinvia ai manuali Stata

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

e, successivamente, si esegue il comando estimates table con l’indicazione dei


riferimenti ai modelli salvati. Ad esempio, con riferimento alle logit e probit i
comandi sono i seguenti:
. logit lfp k5 k618 age wc hc lwg inc, nolog
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 )

. est store A

. probit lfp k5 k618 age wc hc lwg inc, nolog


Probit estimates Number of obs = 753
LR chi2(7) = 124.36
Prob > chi2 = 0.0000
Log likelihood = -452.69496 Pseudo R2 = 0.1208
(output omitted )

. est store B

. est table *, stats(N ll chi2 df_m aic) star

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

legend: * p<0.05; ** p<0.01; *** p<0.001

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:

• replace sovrascrive il file filename.out

• append aggiunge i risultati di stime successive in coda al file filename.out

• se visualizza gli errori standard invece delle statistiche t/z

• pvalue visualizza il p−value invece delle statistiche t/z

• title(text) aggiunge un titolo alla tabella dei risultati

• addnote sostituisce label a nome-variabile nella tabella dei risultati

• nolabels usa il nome-variabile nella tabella dei risultati.

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 )

. outreg using prob_log, replace

. probit lfp k5 k618 age wc hc lwg inc, nolog


Probit estimates Number of obs = 753
LR chi2(7) = 124.36
Prob > chi2 = 0.0000
Log likelihood = -452.69496 Pseudo R2 = 0.1208
(output omitted )

. outreg using prob_log, append

Il file di output ha struttura analoga a quella ottenuta con estimate table.

3.3.3 Confronto tra parametri logit e probit

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(ε).

3.3.4 Test su coefficienti

I coefficienti stimati con metodologia ML sono sottosposti a verifica attraverso un


test
test di Wald utilizzando il comando o attraverso un test LR con il comando
lrtest
. Al test di Wald concorrono due misure: la distanza tra i coefficienti sti-
mati e quelli teorici, la forma della funzione di verosimiglianza. Il test LR si basa
sul rapporto di LL, rispettivamente, del modello nella forma completa e quello nella
forma vincolata. Anche se asintoticamente euqivalenti, in campioni finiti i test Wald
e LR forniscono risultati differenti. Parte della letteratura (Greene, Rothenberg)
preferiscono LR.
La sintassi del test di Wald è

£ ¤
test varlist , accumulate

dove varlist è il nome di uno o più parametri dell’ultima stima. Ad esempio


. logit lfp k5 k618 age wc hc lwg inc
(output omitted )

. test k5
( 1) k5 = 0
chi2( 1) = 55.14
Prob > chi2 = 0.0000

Con due variabili, si sottopone a verifica l’ipotesi H0 : βk5 = βk618 = 0


. test k5 k618
( 1) k5 = 0
( 2) k618 = 0

28
chi2( 2) = 55.16
Prob > chi2 = 0.0000

Includendo tutte le variabili indipendenti, si ottiene il test che, al netto della


costante, compare all’inizio dell’output di stima
. test k5 k618 age wc hc lwg inc
( 1) k5 = 0
( 2) k618 = 0
( 3) age = 0
( 4) wc = 0
( 5) hc = 0
( 6) lwg = 0
( 7) inc = 0
chi2( 7) = 94.98
Prob > chi2 = 0.0000

test consente anche di testare restrizioni lineari sui parametri, la cui sintassi è
£ ¤
test [exp = exp] , accumulate

e si sottopone a verifica l’ipotesi H0 : βk5 = βk618


. test k5=k618
( 1) k5 - k618 = 0
chi2( 1) = 49.48
Prob > chi2 = 0.0000

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

dove si è sottoposta a verifica l’ipotesi nulla H0 : βk5 = βk618 , βwc = βhc .

lrtest
confronta modelli nested con un test LR. La sintassi è

29
£ ¤
lrtest modelspec1 [modelspec2] , df(#) stats dir force

Un esempio dell’uso del comando.


. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )

. 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

3.3.5 Bontà della regressione

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

• saving(name) memorizza le misure calcolate per successivi confronti (name


deve essere al più di quattro lettere)

• using(name) confronta il fit del nuovo modello con quello del modello prece-
dente (name deve essere al più di quattro lettere)

• bic fornisce la statistica BIC e altre misure di informazione

• 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 )

. quietly fitstat, saving(mod1)


. gen age2 = age*age
. logit lfp k5 age age2 wc 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

+ 333 148 481


- 95 177 272

Total 428 325 753


Classified + if predicted Pr(D) >= .5
True D defined as lfp != 0

Sensitivity Pr( +| D) 77.80%


Specificity Pr( -|~D) 54.46%
Positive predictive value Pr( D| +) 69.23%
Negative predictive value Pr(~D| -) 65.07%

False + rate for true ~D Pr( +|~D) 45.54%


False - rate for true D Pr( -| D) 22.20%
False + rate for classified + Pr(~D| +) 30.77%
False - rate for classified - Pr( D| -) 34.93%

Correctly classified 67.73%

3.3.6 Analisi dei residui

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

Un modo per identificare osservazioni che potrebbero condizionare le nostre stime


è quello di ordinare i residui rispetto ai valori di una o più variabili che si presume
possano essere alla base di un problema di inferenza e, successivamente, ripetere
il grafico dei residui. E’, inoltre, rilevante identificare la posizione dei residui che
potrebbero constituire influential observations. A questo fine, è sufficiente specifi-
care l’opzione mlabel(varname) con il comando scatter. Nel nostro caso, varname
è la variabile index.

33
Figure 4: Scatter plot: standardized Pearson residuals.

scatter rstd index, mlabel(index)

In questo caso, tutte le osservazioni cui corrispondono possibili outlier, possono


essere individuate (142, 554, 752, ...).
. list in 142
(output omitted )

. list rstd index if rstd > 2.5 | rstd < -2.5

rstd index

142. 3.191524 142


345. 2.873378 345
514. -2.677243 514
554. -2.871972 554
752. 3.192648 752

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.

. logit lfp k5 k618 age wc hc lwg inc, nolog


(output omitted )

. predict cook, dbeta


. scatter cook index, mlabel(index)

3.3.7 Interpretazione dei modelli

Poichè i modelli che stiamo considerando sono non−lineari, è necessario ricorrere


a una pluralità di approcci che consentano di descrivere in maniera soddisfacente
la relazione tra regressori e variabile di outcome. Ad eccezione di pochi modelli,
i parametri stimati non sono immediatamente informativi. L’interpretazione dei
modelli si incentra sull’analisi delle cosiddette predicted probabilities per ciascuna
osservazione e di funzioni di tali probabilità. In Stata è possibile seguire vari ap-
procci per l’interpretazione dei modelli non−lineari:

• Predict values stimati attraverso il comando predict


• Confronto tra probabilità stimate e valori dei regressori con i comandi prvalue,
prtab, prgen.
• Calcolo degli effetti marginali e dei cambiamenti discreti con i comandi mfx,
prchange

35
Figure 6: Scatter plot: Distanza di Cook.

• Odds-ratio nel modello logit

I comandi pr∗, ad eccezione di predict, fanno parte della libreria di programmi


Spostado
.
predict
si utilizza dopo aver eseguito la stima di interess e fornisce i valori pre-
visti della variabile indipendente calcolati sulla base dei coefficienti stimati 7 . La
sintassi del comando predict è

predict newvarname

dove newvarname è il nome della nuova variabile. Nelle impostazioni di default


la serie prodotta da predict cambia a seconda del tipo di regressione (tabella 3).

Comando di stima Output


regress Valori previsti ŷi = xβ̂
logit, probit Probabilità previste Pˆr(y = k)
count, nberg, zip Tassi previsti

Table 3: Comandi postest


7
predict è un comando con numerose opzioni, non tutte esaminate in questa sezione. Per
approfondimenti si rinvia ai manuali Stata

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

prlogit 753 .6905561 .1370504 .0545499 .8972955

. dotplot prlogit, ylabel(0 .2 to 1)

Possiamo avere un’idea dell’intervallo di probabilità in cui si concentrano le os-


servazioni.

Figure 7: predict nel modello logit.

Un esame di newvarname è anche possibile attraverso il comando tabulate e


possiamo ottenere un grafico specificando l’opzione plot

tab newvarname, plot

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)"

. probit lfp k5 k618 age wc hc lwg inc, nolog


(output omitted )

. predict prprobit
(option p assumed; Pr(lfp))
. label var prprobit "probit: Pr(lfp)"

. pwcorr prlogit prprobit


prlogit prprobit

prlogit 1.0000
prprobit 0.9998 1.0000
. scatter prlogit prprobit

Figure 8: Scatter plot: Predicted probabilities da probit e logit.

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

• x( variable1=value1 [...]) assegna var1 a value1. L’assegnazione può essers


ia numerica (female=1) che qualitativa (phd=mean) assegna alla variabile phd
il suo valore medio). E’ possibile selezionare il campione con if e in per il
calcolo di tali statistiche.

• rest attribuisce a tutte le variabili non specificate in x() la statistica indicata


da stat. Per esempio, rest(mean) attribuisce a tutte le altre variabili il proprio
valore medio.

• level(♯) è il livello di confidenza

• maxcnt(♯) indica il massimo livello di count per cui Pˆr(.) è calcolata (opzione
che vale solo nei modelli per dati count).

• save memorizza Pˆr(.) per confronti successivi.

• dif confronta Pˆr(.) ottenuta da prvalue con quella precedentemente memo-


rizzata con l’opzione save.

Le statistiche disponibili con x() e rest() sono le seguenti:

• mean, median, min, max

• grmedian, grmean, grmax calcolano statistiche condizionali all’intervallo speci-


ficato in x(). Ad esempio, per x(female=1) rest(grmean) calcola valori medi
per il sottoinsieme female=1

Si consideri il dataset binlfp2.dta. Siamo interessati a considerare come varia


la probabilità di offrire lavoro in corrispondenza delle seguenti tiplogie:

• donne giovani, basso reddito, livello basso di istruzione, figli piccoli (gruppo 1)

• grado elevato di istruzione, livello medio-alto di reddito, senza figli (gruppo 2)

• famiglia rappresentativa (valori medi di tutte le variabili di riferimento) (gruppo


3)

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)

logit: Predictions for lfp


Pr(y=inLF|x): 0.1318 95% ci: (0.0723,0.2282)
Pr(y=NotInLF|x): 0.8682 95% ci: (0.7718,0.9277)
k5 k618 age wc hc lwg inc
x= 2 1.3532537 35 0 0 1.0971148 15

. *gruppo 2
. prvalue, x(age=50 k5=0 k618=0 wc=1 hc=1) rest(mean)

logit: Predictions for lfp


Pr(y=inLF|x): 0.7166 95% ci: (0.6266,0.7921)
Pr(y=NotInLF|x): 0.2834 95% ci: (0.2079,0.3734)
k5 k618 age wc hc lwg inc
x= 0 0 50 1 1 1.0971148 20.128965

. *gruppo 3
. prvalue, rest(mean)

logit: Predictions for lfp


Pr(y=inLF|x): 0.5778 95% ci: (0.5388,0.6159)
Pr(y=NotInLF|x): 0.4222 95% ci: (0.3841,0.4612)
k5 k618 age wc hc lwg inc
x= .2377158 1.3532537 42.537849 .2815405 .39176627 1.0971148 20.128965

I risultati possono essere sintetizzati come segue: le donne apparteneti al gruppo


(1) mostrano una bassissima probabilità essere occupate, nettamente al di sotto del
dato medio del campione 8 .

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.

• outcome(♯) fornisce la variazione di probabilità per quel determinato outcome.

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

k5 k618 age wc hc lwg inc


x= .2377158 1.3532537 42.537849 .2815405 .39176627 1.0971148 20.128965

Potremmo essere interessati a valutare l’effetto sulle probabilità stimate di una


determinata variabile, dati modifiche dei valori di un’altra variabile indipendente,
ovvero

P̂r(yi = 1|xi = x0 ) (16)

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

• varname è la serie che varia in funzione di variable1 e di cui si vuole valuare


l’effetto sulle probabilità stimate. Per tutte le altre variabili si considerano i
valori medi

• generate(prefix ) definisce la sigla utilizzata per definire le nuove variabili


create da prgen (prefix ∗)

41
• from(♯) e to(♯) definisce l’intervallo di valori ammissibili per varname

• ncases(♯) indica il numero di valori previsti della probabilità per valori di


varname compresi tra from() a to()

• x(variable1=value1 ) indica il valore di variable1 in corrispondenza del quale


costruire la serie di predicted values di varname. Le altre variabili non incluse
nel comando sono considerate ai loro valori medi, a meno che non sia specificato
diversamente con l’opzione rest()

• brief non visualizza l’output, le variabili sono comunque costruite

• all specifica che i calcoli di media, mediana ecc. sono eseguiti sull’intero
campione invece che per l’intervallo specificato in fase di stima

Le variabili create da prgen sono:

• prefix x che include i valori di varname nell’intervallo tra from() e to()

• prefix p0 −→ Pr(y = 0)

• prefix p1 −→ Pr(y = 1)

Torniamo all’esempio precedente. Si supponga di voler esaminare gli effetti del


reddito (variabile inc) sull’offerta di lavoro per dati valori dell’età (age). Possi-
amo utilizzare i coefficienti stimati in precedenza e calcolare predicted probabilities
corrispondenti a variazioni del reddito in funzione dell’età.
. logit lfp k5 k618 age wc hc lwg inc, nolog
(output omitted )

. prgen inc, from(0) to(100) generate(p30) x(age=30) 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 30 .2815405 .39176627 1.0971148 20.128965
. label var p30p1 "Age 30"

. prgen inc, from(0) to(100) generate(p40) x(age=40) 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 40 .2815405 .39176627 1.0971148 20.128965
. label var p40p1 "Age 40"

. prgen inc, from(0) to(100) generate(p50) x(age=50) 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 50 .2815405 .39176627 1.0971148 20.128965
. label var p50p1 "Age 50"

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"

. list p30p1 p40p1 p50p1 p60p1 p60x in 1/11

p30p1 p40p1 p50p1 p60p1 p60x

1. .8575829 .7625393 .6313345 .4773258 0


2. .8101358 .6947005 .5482202 .3928797 10
3. .7514627 .6172101 .462326 .3143872 20
4. .6817801 .5332655 .3786113 .2452419 30
5. .6028849 .4473941 .3015535 .187153 40

6. .5182508 .36455 .2342664 .1402662 50


7. .4325564 .289023 .1781635 .1036283 60
8. .3507161 .2236366 .1331599 .0757174 70
9. .2768067 .1695158 .0981662 .0548639 80
10. .2133547 .1263607 .071609 .0395082 90

11. .1612055 .0929622 .0518235 .0283215 100

. scatter p30p1 p40p1 p50p1 p60p1 p60x, c() l2("Pr(In labor force)")

Figure 9: Scatter plot: Predicted probabilities da prgen

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

L’effetto marginale è il coefficiente angolare della curva di probabilità in xk , dati


i valori delle altre variabili. Tale effetto dipende dunque dai valori assunti dalle altre
variabili indipendenti. Stata calcola tali effetti assumendo le altre variabili ai rela-
tivi valori medi. Per ciascuna variabile, il segno è lo stesso del coefficiente stimato.
In Stata vi sono due comandi per la stima degli effetti marginali.

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

Una delle opzioni più importanti è

at(mean | median | zero [varname = ♯ [, varname = ♯ [...]])

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.

• predict specifica la funzione da calcolare per la stima degli effetti marginali.


Corrisponde al default del comando predict in ciascun metodo di stima. E’
necessario specificare tale opzione nel caso dei modelli lineari (ad esempio, con
il comando regress)

• nonlinear specifica che y non ammette restrizioni lineari. Questa opzione,


che offre stime più sticure, è time consuming

• nodiscrete considera le variabili dummy come variabili continue.

• 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

• nose non calcola gli standard error

. logit lfp k5 k618 age wc hc lwg inc, nolog


(output omitted )

. mfx compute, at(wc=1 age=40)


warning: no value assigned in at() for variables k5 k618 hc lwg inc;
means used for k5 k618 hc lwg inc
Marginal effects after logit
y = Pr(lfp) (predict)
= .74140317

variable dy/dx Std. Err. z P>|z| [ 95% C.I. ] X

k5 -.2804763 .04221 -6.64 0.000 -.363212 -.197741 .237716


k618 -.0123798 .01305 -0.95 0.343 -.037959 .013199 1.35325
age -.0120538 .00245 -4.92 0.000 -.016855 -.007252 40
wc* .1802113 .04742 3.80 0.000 .087269 .273154 1
hc* .0212952 .03988 0.53 0.593 -.056866 .099456 .391766
lwg .1159345 .03229 3.59 0.000 .052643 .179226 1.09711
inc -.0066042 .00163 -4.05 0.000 -.009802 -.003406 20.129

(*) dy/dx is for discrete change of dummy variable from 0 to 1

. mfx compute, at(mean age=40)


Marginal effects after logit
y = Pr(lfp) (predict)
= .61615999

45
variable dy/dx Std. Err. z P>|z| [ 95% C.I. ] X

k5 -.345989 .04579 -7.56 0.000 -.435735 -.256243 .237716


k618 -.0152714 .01604 -0.95 0.341 -.0467 .016157 1.35325
age -.0148693 .00291 -5.12 0.000 -.020563 -.009176 40
wc* .1802113 .04742 3.80 0.000 .087269 .273154 .281541
hc* .026345 .04846 0.54 0.587 -.068627 .121317 .391766
lwg .1430141 .03563 4.01 0.000 .073188 .21284 1.09711
inc -.0081468 .00195 -4.17 0.000 -.011974 -.00432 20.129

(*) dy/dx is for discrete change of dummy variable from 0 to 1

. mfx compute, at(mean age=40) nodiscrete


Marginal effects after logit
y = Pr(lfp) (predict)
= .61615999

variable dy/dx Std. Err. z P>|z| [ 95% C.I. ] X

k5 -.345989 .04579 -7.56 0.000 -.435735 -.256243 .237716


k618 -.0152714 .01604 -0.95 0.341 -.0467 .016157 1.35325
age -.0148693 .00291 -5.12 0.000 -.020563 -.009176 40
wc .1909258 .05417 3.52 0.000 .084758 .297094 .281541
hc .0264258 .04876 0.54 0.588 -.069152 .122003 .391766
lwg .1430141 .03563 4.01 0.000 .073188 .21284 1.09711
inc -.0081468 .00195 -4.17 0.000 -.011974 -.00432 20.129

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:

Figure 10: Confronto tra effetti marginali e cambiamenti discreti

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

• outcome(♯) si usa per i comandi di stima ordered


• fromto visualizza la probabilità iniziale e finale su cui la variazione discreta è
calcolata.
• brief versione compatta dell’output
• all specifica che il calcolo di media, mediana, ecc. sia effettuato sull’intero
campione e non su quello utilizzato per la stima del modello
• delta(♯) indica che i cambiamenti siano calcolati in forma non standardizzata
• uncentered richiede che la variazione sia calcolata sul valore iniziale specificato
in rest() o x() e non sul valore medio della variabile

. logit lfp k5 k618 age wc hc lwg inc, nolog


(output omitted )

. 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 )

. prchange k5 age wc lwg inc, fromto


logit: Changes in Predicted Probabilities for lfp
from: to: dif: from: to: dif: from:
> to: dif: from:
x=min x=max min->max x=0 x=1 0->1 x-1/2
k5 0.6596 0.0235 -0.6361 0.6596 0.3097 -0.3499 0.7398
age 0.7506 0.3134 -0.4372 0.9520 0.9491 -0.0030 0.5854
wc 0.5216 0.7097 0.1881 0.5216 0.7097 0.1881 0.4775
lwg 0.1691 0.8316 0.6624 0.4135 0.5634 0.1499 0.5028
inc 0.7326 0.0911 -0.6415 0.7325 0.7256 -0.0068 0.5820
to: dif: from: to: dif:
x+1/2 -+1/2 x-1/2sd x+1/2sd -+sd/2 MargEfct
k5 0.3971 -0.3428 0.6675 0.4826 -0.1849 -0.3569
age 0.5701 -0.0153 0.6382 0.5150 -0.1232 -0.0153
wc 0.6720 0.1945 0.5330 0.6214 0.0884 0.1969
lwg 0.6493 0.1465 0.5340 0.6204 0.0865 0.1475
inc 0.5736 -0.0084 0.6258 0.5283 -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

E’ possibile anche ottenere variazioni discrete nonstandard utilizzando le opzioni


uncentered e delta. La prima specifica che la variazione sia calcolata rispetto al
valore definito in rest o x, la seconda indica l’entità della variazione della vari-
abile indipendente espressa nell’unità di misura di tale variabile e non in termini
standardizzati.
. prchange age, x(age=30) uncentered delta(10) rest(mean) brief
min->max 0->1 +delta +sd MargEfct
age -0.4372 -0.0030 -0.1345 -0.1062 -0.0118

3.3.9 Odds−ratio nel modello logit

Come si è detto in precedenza, il modello logit può essere derivato da un modello


probabilistico del tipo

Pr(y = 1|x) = xβ + α (18)

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:

Pr(y = 1|x) Pr(y = 1|x)


Ω(x) = = (19)
Pr(y = 0|x) 1 − Pr(y = 1|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β (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

• factor calcola coefficienti come variazioni moltiplicative negli odds (factor


change)

• percent calcola odds come variazioni percentuali

• std calcola coefficienti standardizzati (con varianza unitaria) per le variabili


indipendenti e/o la variabile dipendente

• pvalue(♯) visualizza i soli coefficienti significativi al livello ♯ di significatività


o inferiore. Se pvalue non è specificato, tutti i parametri sono visualizzati

• constant include la costante nell’output, assente nelle impostanzioni di default

49
. listcoef, help
logit (N=753): Factor Change in Odds
Odds of: inLF vs NotInLF

lfp b z P>|z| e^b e^bStdX SDofX

k5 -1.46291 -7.426 0.000 0.2316 0.4646 0.5240


k618 -0.06457 -0.950 0.342 0.9375 0.9183 1.3199
age -0.06287 -4.918 0.000 0.9391 0.6020 8.0726
wc 0.80727 3.510 0.000 2.2418 1.4381 0.4500
hc 0.11173 0.542 0.588 1.1182 1.0561 0.4885
lwg 0.60469 4.009 0.000 1.8307 1.4266 0.5876
inc -0.03445 -4.196 0.000 0.9661 0.6698 11.6348

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

lfp b z P>|z| e^b e^bStdX SDofX

k5 -1.46291 -7.426 0.000 4.3185 2.1522 0.5240

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]

listcoef produce tali stime attraverso l’opzione percent.


. listcoef, percent
logit (N=753): Percentage Change in Odds
Odds of: inLF vs NotInLF

lfp b z P>|z| % %StdX SDofX

k5 -1.46291 -7.426 0.000 -76.8 -53.5 0.5240


k618 -0.06457 -0.950 0.342 -6.3 -8.2 1.3199
age -0.06287 -4.918 0.000 -6.1 -39.8 8.0726
wc 0.80727 3.510 0.000 124.2 43.8 0.4500
hc 0.11173 0.542 0.588 11.8 5.6 0.4885
lwg 0.60469 4.009 0.000 83.1 42.7 0.5876
inc -0.03445 -4.196 0.000 -3.4 -33.0 11.6348

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

Vous aimerez peut-être aussi