**************************************************** **************************************************** * * Un esempio * missing per costruzione * **************************************************** *nelle due wave abbiamo 2 variabili diverse, quindi *dobbiamo creare un unico indicatore * PRENDIAMO IL FILE SHARE wave 1 E wave 2 **************************************************** gen chronic=chronicw1 replace chronic=chronicw2 if chronic==. recode chronic (min/-1=.) *attenzione: ricordarsi che ci sono quelli che non *hanno partecipato alla main interview -> non *confondiamoli con quelli che non rispondono alla domanda tab chronic interview,mi hist chronic if interview==1,dis *sostituire i missing con la media egen chronic2=mean(chronic) if interview==1 replace chronic2=chronic if chronic!=. tab chronic2 if interview==1 tab chronic if interview==1 *chi sono i missing? *creo una variabile per chi ha missing nella var chronic gen miss=1 if chronic==. & interview==1 recode miss(.=0) if interview==1 & chronic!=. tab chronic if interview==1,mi tab gender miss if interview==1, mi row tab wave miss if interview==1, mi row tabstat age_int adl if interview==1 , st(sd n mean p25 p50 p75) by(miss) tab country miss if interview==1, mi row **************************************************** **************************************************** * * RIPRENDIAMO I MISSING PER COSTRUZIONE * ******************************************************* *IN SHARE ABBIAMO 3 TIPI DI MISSING PER COSTRUZIONE ******************************************************* * TIPO 1: variabili che non cambiano nel tempo ******************************************************* ******************************************************* * riportare informazioni da una wave a quella successiva * stato civile ******************************************************* gen marital_stat=dn014 sort mergeid wave replace marital_stat=marital_stat[_n-1] if marital_s==. & mergeid==mergeid[_n-1] & dn044==5 *etichette lab def n 1 "married" 2 "partnership" 3 "living sep" 4 "never married" 5 "divorced" 6 "widowed" lab value marital_stat n tab dn014 wave if interview==1,mi col tab marital_st wave if interview==1,mi col ******************************************************* ******************************************************* * TIPO 2: un rispondente per famiglia ******************************************************* tab ho002_ wave,mi *imputiamo i valori mancanti con la risposta data *dal "capofamiglia" o colui che risponde a queste domande gen owner=ho002_ sort wave hhid1 replace owner=owner[_n-1] if owner==. & hhid1==hhid1[_n-1] & wave==wave[_n-1] replace owner=owner[_n+1] if owner==. & hhid1==hhid1[_n+1] & wave==wave[_n-1] replace owner=owner[_n+1] if owner==. & hhid1==hhid1[_n+1] & wave==wave[_n-1] replace owner=owner[_n+1] if owner==. & hhid1==hhid1[_n+1] & wave==wave[_n-1] tab owner wave,mi *oppure (se siamo sicuri che c'è una sola risposta per famiglia) bys hhid1: egen owner2=min(ho002_) tab owner2,mi ******************************************************* ******************************************************* * TIPO 3: un rispondente per coppia ******************************************************* * possiamo aspettarci che lo stato civile dei partner * corrisponda nel caso delle coppie stabili * e quindi imputare i valori mancanti con quelli del * partner ********************************************* ******************************************** * creiamo un indicatore che riporta lo stato * civile riportato dal partner ******************************************** sort hhid1 gen partn=. set more off forval i = 1/10 { replace partn=dn014[_n-`i'] if mergeidp1==mergeid[_n-`i'] & partn==. replace partn=dn014[_n+`i'] if mergeidp1==mergeid[_n+`i'] & partn==. } * tab partn dn014,mi