log using "mortality_confirmed_stock.log", replace *** * product: mortality_hrs_confirmed.dta * generate dataset with HRS 10-year (2006-2016) cognitive&mortality status with MI for missing TICS * indata: HRS stock 2006 & HRS analytic recoded; * outdata: HRS 2006-2016; sample: with full 10-year follow-up (12,807) * cognitive & mortality status: AD/MCI/Normal/Dead w/o AD/Dead w/ AD * exhibits: Table4 HRS; as dependent file: Table1, Table5, Table6 * dependent files: "../fem/confirmed_cogcat2006.dta" *** * 2006 use "../../../input_data/hrs_analytic_recoded.dta", clear merge 1:1 hhidpn wave using "../../../input_data/tics.dta", keepusing(totcog cogstate) nogen keep(master match) tempfile hrs_analytic_tics save `hrs_analytic_tics' global totcog_var black hispan hsless college male age hearte stroke cancre hibpe diabe lunge hearta work widowed smokev use "../../../input_data/stock_hrs_2006.dta", clear keep if wave==8 keep if iwstat==1 keep if age>=53 foreach x of varlist $totcog_var { drop if missing(`x') & died==0 } keep hhidpn tempfile selected_id save `selected_id', replace forvalues i=8/13 { di `i' * merge on to selected IDs local i_age=`i'*2+37 use `hrs_analytic_tics', clear keep if wave==`i' keep if age>=`i_age' merge 1:1 hhidpn using `selected_id' keep if _m==3 drop _m * impute for this wave's TICS gen male_hsless = male*hsless gen male_black = male*black gen male_hispan = male*hispan /* Create age spline indicator variables */ gen l2age = age - 2 gen l2age65l = 63 if 63 < l2age replace l2age65l = l2age if l2age <= 63 gen temp_max = 0 if l2age-63<0 replace temp_max = l2age-63 if l2age-63>0 gen l2age6574 = 10 if 10 < temp_max replace l2age6574 = temp_max if temp_max <= 10 gen l2age75p = 0 if 0 > l2age-73 replace l2age75p = l2age-73 if l2age-73 >= 0 mdesc totcog black hispan hsless college male male_hsless male_black male_hispan l2age65l l2age6574 l2age75p hearte stroke cancre hibpe diabe lunge hearta work widowed smokev mi set wide mi misstable summarize totcog mi register imputed totcog mi impute ologit totcog = black hispan hsless college male male_hsless male_black male_hispan l2age65l l2age6574 l2age75p hearte stroke cancre hibpe diabe lunge hearta work widowed smokev, force add(100) rseed(2020) mi convert mlong, clear * for imputed TICS, keep one ob with mean TICS value drop if _mi_miss==1 gen weight=. replace weight=wtcrnh if wave<13 replace weight=wtrespe if wave>=13 gen mi_flag = 0 replace mi_flag = 1 if _mi_m != 0 bys hhidpn wave: egen totcog_mean=mean(totcog) if mi_flag==1 replace totcog=totcog_mean if mi_flag==1 replace totcog=round(totcog,1) drop totcog_mean sort hhidpn wave _mi_m bys hhidpn wave: keep if _n==_N gen cogcat = . replace cogcat = 1 if totcog <= 6 replace cogcat = 2 if totcog >= 7 & totcog <= 11 replace cogcat = 3 if totcog >= 12 & totcog <= 27 mi extract 100, clear tempfile impute`i' save `"impute`i'"', replace * select ID for next wave local j=`i'+1 local j_age = `j'*2+37 use `hrs_analytic_tics', clear keep if wave==`j' keep if age>=`j_age' foreach x of varlist $totcog_var { drop if missing(`x') & died==0 } merge 1:1 hhidpn using `selected_id' keep if _m==3 keep hhidpn save `selected_id', replace } clear forvalues i=8/13 { append using `"impute`i'"' } save imputed_0616.dta, replace use imputed_0616.dta, clear keep totcog cogcat cogstate died wave hhidpn weight college hsless age diabe stroke hibpe hearte xtset hhidpn wave gen l2totcog = l.totcog gen l2cogcat = l.cogcat gen l2died = l.died gen confirmed_cogcat = . replace confirmed_cogcat = 1 if (l2cogcat==1)&(cogcat==1)|(l2cogcat==1)&(died==1) replace confirmed_cogcat = 2 if ((l2cogcat==2)&(cogcat==2))|((l2cogcat==2)&(cogcat==1))|((l2cogcat==1)&(cogcat==2))|((l2cogcat==2)&(died==1)) replace confirmed_cogcat = 3 if (l2cogcat==3)|((cogcat==3)&!missing(l2cogcat)) xtset, clear gen prior_totcog = . gen prior_cogcat = . gen prior_cogstate = . gen absorbing_cogcat = confirmed_cogcat gen ad_absorbing_cogcat = confirmed_cogcat keep totcog cogcat cogstate died wave hhidpn weight confirmed_cogcat l2cogcat prior_totcog prior_cogcat prior_cogstate absorbing_cogcat ad_absorbing_cogcat college hsless age diabe stroke hibpe hearte reshape wide totcog cogcat cogstate died weight confirmed_cogcat prior_totcog l2cogcat prior_cogcat prior_cogstate absorbing_cogcat ad_absorbing_cogcat college hsless age diabe stroke hibpe hearte, i(hhidpn) j(wave) merge 1:1 hhidpn using "../fem/confirmed_cogcat2006.dta" drop _merge forvalues i=8/12 { local j =`i' + 1 replace absorbing_cogcat`j' = absorbing_cogcat`i' if absorbing_cogcat`j'>absorbing_cogcat`i'|missing(absorbing_cogcat`j') replace ad_absorbing_cogcat`j'= 1 if ad_absorbing_cogcat`i'==1 } gen dead_2016 = 0 gen dead_w_de_2016 = 0 gen dead_wo_de_2016 = 0 gen dead_w_mci_or_worse_2016 = 0 gen dead_w_missing_2016 = 0 gen dead_w_de_2016_ab = 0 gen dead_wo_de_2016_ab = 0 gen dead_w_de_2016_adab = 0 gen dead_wo_de_2016_adab = 0 forvalues i=8/13 { replace dead_2016 = dead_2016 + 1 if died`i'==1 replace dead_w_de_2016 = dead_w_de_2016+1 if (died`i'==1&confirmed_cogcat`i'==1) replace dead_wo_de_2016 = dead_wo_de_2016+1 if (died`i'==1&(confirmed_cogcat`i'==2|confirmed_cogcat`i'==3)) replace dead_w_mci_or_worse_2016 = dead_w_mci_or_worse_2016+1 if (died`i'==1&(confirmed_cogcat`i'==1|confirmed_cogcat`i'==2)) replace dead_w_missing_2016 = dead_w_missing_2016 + 1 if (died`i'==1&missing(confirmed_cogcat`i')) replace dead_w_de_2016_ab = dead_w_de_2016_ab+1 if (died`i'==1&absorbing_cogcat`i'==1) replace dead_wo_de_2016_ab = dead_wo_de_2016_ab+1 if (died`i'==1&(absorbing_cogcat`i'==2|absorbing_cogcat`i'==3)) replace dead_w_de_2016_adab = dead_w_de_2016_adab+1 if (died`i'==1&ad_absorbing_cogcat`i'==1) replace dead_wo_de_2016_adab = dead_wo_de_2016_adab+1 if (died`i'==1&(ad_absorbing_cogcat`i'==2|ad_absorbing_cogcat`i'==3)) } * require no nonresponsive from wave 8 to 13, or died drop if (missing(died13)&dead_2016==0) gen status13 = . replace status13 = confirmed_cogcat13 replace status13 = 4 if dead_wo_de_2016==1&dead_2016==1 replace status13 = 5 if dead_w_de_2016==1&dead_2016==1 gen status13_ab = . replace status13_ab = absorbing_cogcat13 replace status13_ab = 4 if dead_wo_de_2016_ab==1&dead_2016==1 replace status13_ab = 5 if dead_w_de_2016_ab==1&dead_2016==1 gen status13_adab = . replace status13_adab = ad_absorbing_cogcat13 replace status13_adab = 4 if dead_wo_de_2016_adab==1&dead_2016==1 replace status13_adab = 5 if dead_w_de_2016_adab==1&dead_2016==1 save mortality_hrs_confirmed.dta, replace tab confirmed_cogcat_hrs2006_nomi status13_ab [aw=weight8], mi cell log close