************************************************************************************ ************************************************************************************ * * LABORATORIO: IMPUTAZIONE MULTIPLA MULTIVARIATA * ************************************************************************************ * I dati SHARE contengono non solo indicatori di salute ma anche * dei comportamenti salutistici/ non salutari (fumare = cusmoke; * phactiv = inattività fisica). * Questi comportamenti sono correlati agli indicatori di salute fisica * (bmi = peso * altezza; gali = limitazioni nelle attività; mobility = * limitazioni nella mobilità). Utilizziamo anche delle variabili socio-demografiche. ************************************************************************************ * VOGLIAMO: * 1- Studiare come l'inattività, e il fumare influiscano sulla salute (gali) * per gli individui 50+, tendendo sotto controllo le variabili socio-edomografiche * (wave; country; age_int; hhsize) e stratificando per genere. * 2- Utilizziamo anche le variabili mobility, bmi, iv004 (disponibilità dell'intervistato * a rispondere nel modello di imputazione. Assumiamo che iv004 e phactiv non abbiano * missing (imputare = alla moda). Fare 3 imputazioni. Aggiungiamo l'età^2 solo per * mobility limitations. * Qual'è e perchè è importante aggiungere variabili ausiliarie? ************************************************************************************ use shareW1&W2.dta, clear keep bmi gali mobility phactiv cusmoke /// mergeid country wave gender age_int hhsize interview int_year iv004 *ricodifiche tab1 phactiv iv004 if interview==1,mi recode phactiv(. -1 -2=0) recode iv004 (. -1 -2=1) misstable sum if interview==1 drop if interview!=1 drop if age_int<50 tab1 gali mobility cusmoke phactiv, mi recode bmi gali mobility cusmoke phactiv(min/-1=.) misstable sum *missing per costruzione tab cusmoke wave,mi col sort mergeid wave gen base=1 if mergeid!=mergeid[_n-1] tab cusmoke base if wave==2,col mi sort mergeid wave replace cusmoke=cusmoke[_n-1] if mergeid==mergeid[_n-1] & cusmoke==. misstable sum *ASSUNZIONE = MAR gen miss=1 if cusmoke==. | gali==. | bmi==. | mobility==. | phactiv==. recode miss(.=0) mean age_i if age_in>64, over(miss) tab miss gender if age_in>64, col tab miss phactiv if age_in>64, col tab miss iv004 if age_int>64, col drop base *ASSUNZIONE = PATTERN ARBITRARI misstable pattern misstable nested misstable tree ******************************************************************************** mi set mlong mi register imputed cusmoke bmi gali mobility mi register regular country wave gender age_int hhsize phactiv iv004 set more off mi impute chained //// (mlogit) cusmoke //// (truncreg,ll(12) ul(80.5))bmi //// (poisson, include((age_int^2)))mobility //// (logit)gali = //// i.country hhsize gender age_int i.phactiv i.iv004 , by(gender) rseed (53421) add(3) noisily ******************************************************************************** * * Stiamo facendo un modello di Equazioni Concatenate *DOMANDE: * 1- In cosa consiste questo modello? E quante regressioni vengono stimate per ogni M? * 2- Quali sono le differenze rispetto ad un modello MVN? ********************************************************************************* midiagplots bmi , by(gender) mi xeq 0 1 2: sum bmi midiagplots cusmoke , by(gender) midiagplots mobility , by(gender) midiagplots gali , by(gender) ************************************************************* * rispetto alle variabili che useremo nel modello analitico * in quali troviamo una sovrastima o sottostima dei valori * imputati rispetto a quelli osservati? ************************************************************* *modello con i valori imputati nei M dataset mi estimate, dots: logit gali i.phactiv i.cusmoke i.country wave gender c.age_int##c.age_int hhsize mimrgns, dydx( phactiv cusmoke) predict(pr) /************************************************************ INFORMAZIONI SU VARIANZA E SE - Variance Between (VB): variabilità della stima dei parametri (dei coefficienti) tra i dataset imputati (meglio se vicino a 0) - Variance Within (VW): media aritmetica delle varianze campionarie tra i dataset imputati - Variance Total (VT): somma della VB (variabilità data dai missing) e VW (variabilità attesa), più una terza componente che è VB/m - Relative Increases in Variance (RVI): incremento della variaza dovuto ai missing - Fraction of Missing Information (FMI): % di varianza dovuta a quel fattore - Relative Efficiency: quanto stiamo stimando bene i parametri relativamente al numero di missing e il numero di imputazioni seconda tabella: - degrees of freedom che dipendono dal numero di missing in quella variabile - percentage the increase in standard errors: dovuto all'incremento di incertezza dato dai missing values *****************************************************************/ mi estimate, vartable dftable *modello con i soli valori osservati/ completi mi extract 0,clear logit gali i.phactiv i.cusmoke i.country wave gender c.age_int##c.age_int hhsize margins, dydx(phactiv cusmoke) estimate store m2 ****************************************************************************** * L'imputazione come influisce sugli Errori Standard dei parametri e perchè? * Notiamo un cambiamento delle stime rispetto alle variabili di interesse * (phactiv cusmoke) in termini di effetti marginali ? ****************************************************************************** ******************************************************************************* ******************************************************************************* * IPW ******************************************************************************* * UN ALTRO APPROCCIO è QUELLO DI USARE INVERSE PROBABILITY WEIGHTING (IPW) * IN CUI ANALIZZIAMO SOLO I CASI OSSERVATI/COMPLETI PESATI PER LA LORO * PROBABILITà inversa DI ESSERE OSSERVATI ******************************************************************************* recode miss(0=1) (1=0),gen(complete) logit complete i.country hhsize gender age_int i.phactiv i.iv004 predict pr1, pr gen wt1=1/pr1 hist wt1 if complete==1 logit gali i.phactiv i.cusmoke i.country wave gender c.age_int##c.age_int hhsize [pw=wt1] margins, dydx(phactiv cusmoke)