cap program drop MedCosts program define MedCosts ************************* * Medical spending and medical utilization ************************* syntax [varlist] [if] [in], cyr(integer) medicare_elig_age(integer) mname(string) marksample touse qui{ cap drop age75l cap drop age75p qui gen age75l = min(age, 75) if age < . qui gen age75p = max(0, age-75) if age < . *** ***IF aged less than `medicare_elig_age', use model estimates from MEPS *** foreach v in tot caid care oop { est restore est_r`v'_`mname' predict p if age < `medicare_elig_age' & `touse' replace pre`v'md=p drop p } foreach v in doctim hsptim hspnit { est restore est_r`v'_`mname' predict p if age < `medicare_elig_age' & `touse' replace pre`v'=p drop p } *** ***IF aged `medicare_elig_age' and more, use model estimates from MCBS *** * Redefine age as 12/31 ren age75l age75l_old ren age75p age75p_old qui gen age75l = min(age_1231, 75) if age_1231 < . qui gen age75p = max(0, age_1231-75) if age_1231 < . foreach v in iadl1 adl12 adl3 { cap drop `v'_old qui gen `v'_old = `v' replace `v' = 0 if nhmliv == 1 } foreach v in tot caid care oop { est restore est_m`v'_`mname' predict p if age_1231>= `medicare_elig_age' & `touse' replace pre`v'md=p drop p } foreach v in doctim hsptim hspnit { est restore est_m`v'_`mname' predict p if age_1231>= `medicare_elig_age' & `touse' replace pre`v'=p drop p } *** Recover original values of functional status foreach v in iadl1 adl12 adl3 { replace `v' = `v'_old drop `v'_old } qui replace age75l = age75l_old qui replace age75p = age75p_old drop age75l_old age75p_old ************* * Utility score: EQ_5D ************* cap drop adl1p cap drop eq5d gen adl1p = adl12 == 1 | adl3 == 1 cap drop nrshom gen nrshom = nhmliv matrix score eq5d = coef_eq5d if `touse' replace eq5d = eq5d - 0.10 if nrshom == 1 } end