** Extrapolate the biomarker data to year 2014 include ../../../fem_env.do use $outdata/hrs_analytic_recoded.dta keep if wave >=8 keep hhidpn wave sysbp died iwstat wtresp age_yrs male black hispan smoken bmi hearte stroke diabe hibpe cancre rxchol #d ; merge 1:1 hhidpn wave using "$dua_rand_hrs/bio_hrs_recoded_impfinal.dta", keepusing(hhidpn wave biowgtr hdl hdl_imp tchol tchol_imp a1c a1c_imp sysbp_imp crp_imp ) keep (master match) nogen ; #d cr replace sysbp = . if sysbp == -333 replace sysbp_imp = sysbp if wave == 12 xtset hhidpn wave foreach v in hdl tchol a1c crp { replace `v'_imp = `v'_imp[_n-1] - `v'_imp[_n-2] + `v'_imp[_n-1] if `v'_imp == . & !died & wave == 12 } sum hdl_imp sum tchol_imp sum a1c_imp sum sysbp_imp sum crp_imp save $outdata/bio_temp.dta, replace ** Cap the values after the extrapolation replace hdl_imp = 12 if hdl_imp < 12 replace hdl_imp = 146 if hdl_imp >= 146 & hdl_imp != . replace tchol_imp = 61 if tchol_imp < 61 replace tchol_imp = 641 if tchol_imp >= 641 & tchol_imp != . replace a1c_imp = 3 if a1c_imp < 3 replace a1c_imp = 17.6 if a1c_imp >= 17.6 & a1c_imp != . replace sysbp_imp = 37 if sysbp_imp < 37 replace sysbp_imp = 227 if sysbp_imp >= 227 & sysbp_imp != . gen logcrp_imp = log(crp_imp) tempfile bio_temp save `bio_temp' ******************************************************** * Impute ldl data by NHANES, using imputed HDL and tchol ******************************************************** gen logbmi = log(bmi) gen age_l60 = age_yrs<=60 gen age_6070 = (age_yrs>60 & age_yrs<=70) gen age_7080 = (age_yrs>70 & age_yrs<=80) gen age80p = (age_yrs >80) gen male_black = male*black gen male_hispan = male*hispan drop hdl tchol rename hdl_imp hdl rename tchol_imp tchol count if hdl == . & !died count if tchol == . & !died gen tchol_hdl = tchol*hdl gen tchol_hearte = tchol*hearte gen tchol_storke = tchol*stroke gen tchol_diabe = tchol*diabe gen tchol_hibpe = tchol*hibpe gen tchol_cancre = tchol*cancre gen hdl_hearte = hdl*hearte gen hdl_storke = hdl*stroke gen hdl_diabe = hdl*diabe gen hdl_hibpe = hdl*hibpe gen hdl_cancre = hdl*cancre gen rxchol_stroke = rxchol*stroke gen rxchol_hearte = rxchol*hearte gen rxchol_diabe = rxchol*diabe gen rxchol_cancre = rxchol*cancre count if tchol == . | hdl == . | tchol_hdl == . | age_l60 == . | age_6070 == . | age_7080 == .| age80p == .| male == . | black == . | hispan == . | smoken == . | logbmi == . | hearte == . | stroke == . | diabe == . | hibpe == . | cancre == . | rxchol == . est use "$local_path/Estimates/nhanes_biomarkers/nhanes_ldl.ster" predict ldl_imp, xb sum ldl_imp [aw=wtresp], detail est use "$local_path/Estimates/nhanes_biomarkers/nhanes_ldl_minimal.ster" predict ldl_min, xb replace ldl_imp = ldl_min if ldl_imp == . replace ldl_imp = 10.6 if ldl_imp <= 10.6 keep hhidpn wave ldl_imp tempfile ldl_imp save `ldl_imp' use `bio_temp' merge 1:1 hhidpn wave using `ldl_imp', keep (master match) nogen save $outdata/bio_temp2.dta, replace *************************************************************************************************** * Available imputed biomarker - ldl hdl tchol a1c sysbp * Generate the biomarker_re as placing the population mean for the missing biomarkers * Generate missing flag variables * Generate l4 for all the variables *************************************************************************************************** * Make a panel xtset hhidpn wave gen ldl = ldl_imp replace ldl = . if (hdl== . | tchol == .) * Gen 2 year lagged variable for imputed hdl tchol ldl a1c sysbp gen l2ldl_imp = L.ldl_imp gen l2hdl_imp = L.hdl_imp gen l2tchol_imp = L.tchol_imp gen l2a1c_imp = L.a1c_imp gen l2sysbp_imp = L.sysbp_imp gen l2crp_imp = L.crp_imp gen l2logcrp_imp = L.logcrp_imp gen l2a1c = L.a1c gen l2hdl = L.hdl gen l2tchol = L.tchol gen l2sysbp = L.sysbp gen l2ldl = L.ldl gen l2crp = L.crp ** Create biomarker_re, biomarker_miss local bio hdl ldl tchol a1c sysbp crp logcrp foreach v of local bio { gen `v'_miss = (`v' == .) label var `v'_miss "Whether `v' value is missing" egen `v'_mean = mean(`v'), by(wave) gen `v'_re = `v' replace `v'_re = `v'_mean if `v' == . label var `v'_re "Recoded `v' by placing the mean for missing values" drop `v'_mean gen l2`v'_miss = (l2`v'== .) label var l2`v'_miss "Whether l2`v' value is missing" } save $outdata/bio_hrs_recoded_impfinalv2.dta, replace *erase "$outdata/bio_temp.dta" *erase "$outdata/bio_temp2.dta"