do "U:\Student Folders\Jack\prpr\PROPr_Finalised MAUF.do" //Analysis file keep if real_enrollment_status ==3 drop if collection_center2==2 drop if collection_center2==3 *education and ethnicity was taken from merged dataset (grouped) *demographic data codebook age sex codebook education codebook alb hgb codebook charlson_comorbidity_index codebook gfr codebook collection_center2 /*Descriptive analysis of the health utility scores: propr, short form 6 domains and EQ5D_5L (meanhs - which I assume is the mean health status) following are used to describe the data: histograms, scatter plots, correlation graphs NOTE: ALL BELOW - Analyse with respect to their Renal replacement therapies Hemodialysis Post Transplant - N.B. HomeHemo and Renal management clinic may have issues with certain analysis models due to the low number of individuals in each group*/ codebook propr if collection_center2==1 codebook propr if collection_center2==4 codebook sf6d if collection_center2==1 codebook sf6d if collection_center2==4 codebook meanhs if collection_center2==1 codebook meanhs if collection_center2==4 *labeling variable label var sf6d "SF6D score" label var meanhs "EQ5D score" label var propr "PROPr score" ****** // Visualization & Preliminary analysis // observe possible ceiling effect exhibited by Eq5d_5l questionnaire, visualization histogram meanhs if meanhs>=0, bin(20) frequency fcolor(white) lpattern(solid) /// normal normopts(lcolor(black)) ytitle(Frequency) xtitle(EuroQOL 5 Domain score) /// legend(off) scheme(s1color) scale(1) yscale(range(-0.2 1.0)) lcolor(black) * almost certainly a ceiling effect swilk meanhs *not a normal distribution, scatter plot shows tendency to ceiling // p-value = 0.00000, reject the hypothesis that meanhs is normally distributed histogram sf6d, bin(20) frequency fcolor(white) lcolor(black) lpattern(solid) /// normal normopts(lcolor(black)) ytitle(Frequency) xtitle(Short Form 6 Domain score) /// legend(off) scheme(s1color) scale(1) yscale(range(0 1.0)) lcolor(black) *slight skew - 2nd closest to normal distribution *no ceiling effect that is evident swilk sf6d // p-value = 0.00027, reject the hypothesis that sf6d is normally distributed histogram propr, bin(20) frequency fcolor(white) lcolor(black) lpattern(solid) /// normal normopts(lcolor(black)) ytitle(Frequency) xtitle(PROMIS Preference score) /// legend(off) scheme(s1color) scale(1) yscale(range(0 1.0)) lcolor(black) *closest to normal distribution *no ceiling effect that is evident swilk propr //p-value = 0.00008, reject the hypothesis that propr is normally distributed *Correlation - Pearson corr propr sf6d // fairly strong positive relationship: 0.8296 corr propr meanhs // moderate positive relationship: 0.6693 corr meanhs sf6d // moderate positive relationship: 0.6598 /*visualisation of correlation - correlational figures sf6d vs propr*/ twoway (scatter sf6d propr, mcolor(black) msize(small) msymbol(circle)) || lfitci /// (sf6d propr), ytitle(Short Form 6 Domain Scores) xtitle(PROMIS Preference score) /// legend(off) note("Spearman's Correlation 'rho 0.84'") scheme(s1color) /// lcolor(black) level(95) fc(none) *black twoway (scatter sf6d propr, mcolor(black) msize(small) msymbol(circle)) || lfitci /// (sf6d propr), ytitle(Short Form 6 Domain Scores) xtitle(PROMIS Preference score) /// legend(off) note("Spearman's Correlation 'rho 0.84'") scheme(s1color) /// lcolor(black) level(95) fc(0) *eq5d vs propr twoway (scatter meanhs propr, mcolor(black) msize(small) msymbol(circle)) || lfitci /// (meanhs propr), ytitle(EuroQOL 5 Domain Scores) xtitle(PROMIS Preference score) /// legend(off) note("Spearman's Correlation 'rho 0.76'") scheme(s1color) level(95) /// fc(0) lcolor(black) *Stratified age gen strat_age = 1 replace strat_age = 2 if age >49 replace strat_age = 3 if age >65 replace strat_age =. if age ==. *strat age and sex sum propr if gender2==1 & strat_age==1, detail sum propr if gender2==1 & strat_age==2, detail sum propr if gender2==1 & strat_age==3, detail sum sf6d if gender2==1 & strat_age==1, detail sum sf6d if gender2==1 & strat_age==2, detail sum sf6d if gender2==1 & strat_age==3, detail sum meanhs if gender2==1 & strat_age==1, detail sum meanhs if gender2==1 & strat_age==2, detail sum meanhs if gender2==1 & strat_age==3, detail sum propr if gender2==2 & strat_age==1, detail sum propr if gender2==2 & strat_age==2, detail sum propr if gender2==2 & strat_age==3, detail sum sf6d if gender2==2 & strat_age==1, detail sum sf6d if gender2==2 & strat_age==2, detail sum sf6d if gender2==2 & strat_age==3, detail sum meanhs if gender2==2 & strat_age==1, detail sum meanhs if gender2==2 & strat_age==2, detail sum meanhs if gender2==2 & strat_age==3, detail *** generation of new variable for dot graph generation gen strat_age_male=1 replace strat_age_m=1 if strat_age==1 & sex==1 replace strat_age_m=2 if strat_age==2 & sex==1 replace strat_age_m=3 if strat_age==3 & sex==1 gen strat_age_female =1 replace strat_age_f=2 if strat_age==2 & sex==2 replace strat_age_f=3 if strat_age==3 & sex==2 replace strat_age_m=. if sex==2 replace strat_age_f=. if sex==1 *Box plot, seems to make more sense *Male stratified graph box propr sf6d meanhs, /// over(strat_age_m, relabel(1 "18-49 years old" 2 "50-65 years old" 3 "Greater than 65")) /// legend(on) scheme(s1color) /// ytitle("Median Age stratified Preference scores in Men") /// box(1, color(black) lcolor(black) lp(solid)) box(2, color(gs7) lcolor(black) lp(dash)) /// box(3, color(gs11) lcolor(black) lp(shortdash)) *Female stratified graph box propr sf6d meanhs if meanhs>=0, /// over(strat_age_f, relabel(1 "18-49 years old" 2 "50-65 years old" 3 "Greater than 65")) /// legend(on) scheme(s1color) /// ytitle("Median Age stratified Preference scores in Women") /// box(1, color(black) lcolor(black) lp(solid)) box(2, color(gs7) lcolor(black) lp(dash)) /// box(3, color(gs11) lcolor(black) lp(shortdash)) /*impact estimates are presented in excel coding of the graph in stata becomes extremely complicated and makes for a waste of time. For the purpose of saving time, excel is used. */ // test different age male groups have equal propr, sf6d and meanhs or not gen propr_male = . replace propr_male = propr if gender2==1 kwallis propr_male, by(strat_age) gen sf6d_male = . replace sf6d_male = sf6d if gender2==1 kwallis sf6d_male, by(strat_age) gen meanhs_male = . replace meanhs_male = meanhs if gender2==1 kwallis meanhs_male, by(strat_age) // test different age female groups have equal propr, sf6d and meanhs or not gen propr_female = . replace propr_female = propr if gender2==2 kwallis propr_female, by(strat_age) gen sf6d_female = . replace sf6d_female = sf6d if gender2==2 kwallis sf6d_male, by(strat_age) gen meanhs_female = . replace meanhs_female = meanhs if gender2==2 kwallis meanhs_female, by(strat_age) *generating distinct comorbidities *severe and mild diabetes gen dm=0 replace dm=1 if one_point2_10==1 replace dm=1 if two_points2_13==1 label variable dm "severe and mild diabetes" *Lower tertile of albumin gen c_alb = 1 replace c_alb = 0 if alb >37 replace c_alb=. if alb==. label variable c_alb "lower albumin" *Lower tertile of hemoglobin gen c_hgb = 1 replace c_hgb = 0 if hgb >108 replace c_hgb =. if hgb==. label variable c_hgb "lower hemoglobin" *Dialysis vs Tx replace collection_center2=0 if collection_center2==4 gen hemo= collection_center2 label variable hemo "Dialysis(1) vs Tx (0)" *phqscore - cut off at 10 gen cat_phq = 0 replace cat_phq = 1 if phqscore>=10 replace cat_phq=. if phqscore==. label variable cat_phq "high phqscore" *ESAS - upper tertile gen cat_esas = 0 replace cat_esas = 1 if esasrdistress> 19 replace cat_esas=. if esasrdistress==. label variable cat_esas "high ESAS" *kdqol_symptom list gen cat_kdqol_symp=1 replace cat_kdqol_symp=0 if kdqol_symptom> 90 replace cat_kdqol_symp=. if kdqol_symptom==. label variable cat_kdqol_symp "kdqol_symptom" *KDQOL_burden gen cat_kdqol_burden =1 replace cat_kdqol_burden =0 if kdqol_dxburden>80 replace cat_kdqol_burden =. if kdqol_dxburden==. label variable cat_kdqol_burden "cat_kdqol_burden" *CCI gen cat_cci = 0 replace cat_cci =1 if charlson_comorbidity_index >4 replace cat_cci =. if charlson_comorbidity_index==. label variable cat_cci "cat_cci" ************generation of table 1 codebook age codebook sex codebook marital gen yearsdialysis = days_since_dialaysis/365.25 codebook yearsdialysis summarize yearsdialysis, detail codebook ethnicity tab ethnicity tab edu codebook cat_cci codebook cat_phq codebook cat_esas sum alb sum hgb codebook age if collection_center2==1 codebook sex if collection_center2==1 tab marital if collection_center2==1 sum yearsdialysis if collection_center2==1 tab ethnicity if collection_center2==1 tab edu if collection_center2==1 codebook cat_cci if collection_center2==1 codebook cat_phq if collection_center2==1 codebook cat_esas if collection_center2==1 codebook alb if collection_center2==1 codebook hgb if collection_center2==1 codebook age if collection_center2==0 codebook sex if collection_center2==0 tab marital if collection_center2==0 sum yearsdialysis if collection_center2==0 tab ethnicity if collection_center2==0 tab edu if collection_center2==0 codebook cat_cci if collection_center2==0 codebook cat_phq if collection_center2==0 codebook cat_esas if collection_center2==0 codebook alb if collection_center2==0 codebook hgb if collection_center2==0 ******generation of confounding variables /* Education - up to and including high school vs above high school Ethnicity - Caucasian vs non-white income - less than $40,001 vs $40,001 and greater */ gen cat_edu = 1 replace cat_edu = 0 if education <=4 replace cat_edu = . if education ==. gen cat_ethnicity = 0 replace cat_ethnicity = 1 if ethnicity >=13 replace cat_ethnicity =. if ethnicity ==. gen cat_income = 1 replace cat_income = 0 if income <=4 replace cat_income = . if income ==. ********************************** *MULTIPLE IMPUTATION ********************************** sum propr dm age gender2 cat_edu cat_ethnicity cat_income sf6d meanhs hemo c_alb /// c_hgb cat_esas cat_phq cat_kdqol_burd cat_kdqol_symp cat_cci /***** - missingness is almost negligible - a maximum of 6.29% Variable | Missing Total Percent Missing ----------------+----------------------------------------------- propr | 12 318 3.77 dm | 0 318 0.00 age | 0 318 0.00 gender2 | 0 318 0.00 cat_edu | 9 318 2.83 cat_ethnic~y | 0 318 0.00 cat_income | 9 318 2.83 sf6d | 10 318 3.14 meanhs | 18 318 5.66 hemo | 0 318 0.00 c_alb | 6 318 1.89 c_hgb | 5 318 1.57 cat_esas | 15 318 4.72 cat_phq | 20 318 6.29 cat_kdqol_~n | 12 318 3.77 cat_kdqol_~p | 11 318 3.46 cat_cci | 9 318 2.83 ----------------+----------------------------------------------- ********************************** */ // Model Analysis *** univariate npregress kernel propr i.dm, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.dm, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.dm, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.hemo, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.hemo, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.hemo, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.c_alb, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.c_alb, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.c_alb, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.c_hgb, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.c_hgb, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.c_hgb, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.cat_esas, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.cat_esas, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.cat_esas, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.cat_phq, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.cat_phq, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.cat_phq, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.cat_kdqol_symp, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.cat_kdqol_symp, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.cat_kdqol_symp, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.cat_kdqol_burd, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.cat_kdqol_burd, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.cat_kdqol_burd, vce(bootstrap, reps(100) seed(123)) npregress kernel propr i.cat_cci, vce(bootstrap, reps(100) seed(123)) npregress kernel sf6d i.cat_cci, vce(bootstrap, reps(100) seed(123)) npregress kernel meanhs i.cat_cci, vce(bootstrap, reps(100) seed(123)) ***multivariate npregress kernel propr i.dm age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.dm age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.dm age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.hemo age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.hemo age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.hemo age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.c_alb age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.c_alb age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.c_alb age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.c_hgb age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.c_hgb age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.c_hgb age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.cat_esas age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.cat_esas age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.cat_esas age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.cat_phq age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.cat_phq age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.cat_phq age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.cat_kdqol_symp age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.cat_kdqol_symp age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.cat_kdqol_symp age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.cat_kdqol_burden age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.cat_kdqol_burden age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.cat_kdqol_burden age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel propr i.cat_cci age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel sf6d i.cat_cci age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) npregress kernel meanhs i.cat_cci age i.gender2 i.cat_edu i.cat_ethnicity i.cat_income, vce(bootstrap, reps(100) seed(100)) /***mean of good outcome gen mean_propr_dm = 0.455233 gen mean_sf6d_dm = 0.740286 gen mean_eq5d_dm = 0.792419 gen mean_propr_alb = 0.478633 gen mean_sf6d_alb = 0.745338 gen mean_eq5d_alb = 0.812978 gen mean_propr_hemo = 0.516948 gen mean_sf6d_hemo = 0.774503 gen mean_eq5d_hemo = 0.837064 gen mean_propr_hgb = 0.458798 gen mean_sf6d_hgb = 0.740005 gen mean_eq5d_hgb = 0.798789 gen mean_propr_esas = 0.506108 gen mean_sf6d_esas = 0.772691 gen mean_eq5d_esas = 0.85316 gen mean_propr_phq = 0.466098 gen mean_sf6d_phq = 0.743762 gen mean_eq5d_phq = 0.808429 gen mean_propr_kdsym = 0.630656 gen mean_sf6d_kdsym = 0.836845 gen mean_eq5d_kdsym = 0.891704 gen mean_propr_kdburd = 0.597534 gen mean_sf6d_kdburd = 0.830472 gen mean_eq5d_kdburd = 0.888066 gen mean_propr_cci = 0.470093 gen mean_sf6d_cci = 0.750913 gen mean_eq5d_cci = 0.808723 ***differences in bad group for each individual /*not sure if necessary or not - in order to measure the magnitude of difference between health conditions */ gen propr_dm = propr - mean_propr_dm gen propr_tx = propr - mean_propr_hemo gen propr_alb = propr - mean_propr_alb gen propr_hgb = propr - mean_propr_hgb gen propr_esas = propr - mean_propr_esas gen propr_phq = propr - mean_propr_phq gen propr_kdsym = propr - mean_propr_kdsym gen propr_kdburden = propr - mean_propr_kdburd gen propr_cci = propr - mean_propr_cci gen sf6d_dm = sf6d - mean_sf6d_dm gen sf6d_alb = sf6d - mean_sf6d_alb gen sf6d_tx = sf6d - mean_sf6d_hemo gen sf6d_hgb = sf6d - mean_sf6d_hgb gen sf6d_esas = sf6d - mean_sf6d_esas gen sf6d_phq = sf6d - mean_sf6d_phq gen sf6d_kdburden = sf6d - mean_sf6d_kdburd gen sf6d_kdsym = sf6d - mean_sf6d_kdsym gen sf6d_cci = sf6d - mean_sf6d_cci gen eq5d_dm = meanhs - mean_eq5d_dm gen eq5d_alb = meanhs - mean_eq5d_alb gen eq5d_tx = meanhs - mean_eq5d_hemo gen eq5d_hgb = meanhs - mean_eq5d_hgb gen eq5d_esas = meanhs - mean_eq5d_esas gen eq5d_phq = meanhs - mean_eq5d_phq gen eq5d_kdburden = meanhs - mean_eq5d_kdburd gen eq5d_kdsym = meanhs - mean_eq5d_kdsym gen eq5d_cci = meanhs - mean_eq5d_cci ***** correlation between each spearman propr_dm sf6d_dm if dm==1 *0.8509 p<0.001 spearman propr_tx sf6d_tx if hemo==1 *0.7792 p<0.001 spearman propr_alb sf6d_alb if c_alb==1 *0.7660 p<0.001 spearman propr_hgb sf6d_hgb if c_hgb==1 *0.8217 p<0.001 spearman propr_esas sf6d_esas if cat_esas==1 *0.7244 p<0.001 spearman propr_phq sf6d_phq if cat_phq==1 *0.6004 p<0.001 spearman propr_kdburden sf6d_kdburden if cat_kdqol_burd ==1 *0.7571 p<0.001 spearman propr_kdsym sf6d_kdsym if cat_kdqol_symp ==1 *0.7639 p<0.001 spearman propr_cci sf6d_cci if cat_cci==1 *0.8175 p<0.001 spearman propr_dm eq5d_dm if dm==1 *0.7216 p<0.001 spearman propr_tx eq5d_tx if hemo==1 *0.7031 p<0.001 spearman propr_alb eq5d_alb if c_alb==1 *0.6529 p<0.001 spearman propr_hgb eq5d_hgb if c_hgb==1 *0.6921 p<0.001 spearman propr_esas eq5d_esas if cat_esas==1 *0.6061 p<0.001 spearman propr_phq eq5d_phq if cat_phq==1 *0.6143 p<0.001 spearman propr_kdburden eq5d_kdburden if cat_kdqol_burd==1 *0.6718 p<0.001 spearman propr_kdsym eq5d_kdsym if cat_kdqol_symp==1 *0.6569 p<0.001 spearman propr_cci eq5d_cci if cat_cci ==1 *0.7700 p<0.001 spearman eq5d_dm sf6d_dm if dm==1 *0.7326 p<0.001 spearman eq5d_tx sf6d_tx if hemo==1 *0.6644 p<0.001 spearman eq5d_alb sf6d_alb if c_alb==1 *0.6400 p<0.001 spearman eq5d_hgb sf6d_hgb if c_hgb==1 *0.6815 p<0.001 spearman eq5d_esas sf6d_esas if cat_esas==1 *0.5107 p<0.001 spearman eq5d_phq sf6d_phq if cat_phq==1 *0.4274 p=0.022 spearman eq5d_kdburden sf6d_kdburden if cat_kdqol_burd==1 *0.6228 p<0.001 spearman eq5d_kdsym sf6d_kdsym if cat_kdqol_symp==1 *0.6687 p<0.001 spearman eq5d_cci sf6d_cci if cat_cci==1 *0.7777 p<0.001 */