**************************************************************************************************************** ***********This program a) transforms AQoL_4D into AQoL_6D to predict the scores for AQoL_6D ********************** *********** and b) transforms AQoL_6D into AQoL_4D to get predicted scores for AQoL_4D ********************** **NOTE: This algorithm assumes that the scoring algorithms for AQoL_4D and AQoL_6D have been ******************* **executed on the raw data for AQoL_4D and AQoL_6D to compute the disutility scores for the two instruments **** **NOTE: The transformation programmed in this file have been conceptualised by Prof. Jeff Richardson, Founding * **Director, Centre for Health Economics at Monash University and programmed in STATA by Dr. Kompal Sinha, ****** **Research Fellow, Centre for Health Economics, Monash University.********************************************** **************************************************************************************************************** **************** NOTE: du1 du2 du3 du4 are the dimension scores of AQoL_4D. ********************************** **************** NOTE: dud1 dud2 dud3 dud4 dud5 dud6 are dimension scores of AQoL-6D. ************************* **************************************************************************************************************** ****** PART 1: Regressing each dimesion of AQoL_4D on dimensions of AQoL_6D and AQoL_6D on AQoL_4D ************ **************************************************************************************************************** **************(a) AQoL_4D on AQoL_6D ***************** ******************************************************* reg du1 dud1 dud2 dud3 dud4 dud5 dud6 estimates store AQoL4D_Dim1, title(AQoL4D_D1) predict du1hat reg du2 dud1 dud2 dud3 dud4 dud5 dud6 estimates store AQoL4D_Dim2, title(AQoL4D_D2) predict du2hat reg du3 dud1 dud2 dud3 dud4 dud5 dud6 estimates store AQoL4D_Dim3, title(AQoL4D_D3) predict du3hat reg du4 dud1 dud2 dud3 dud4 dud5 dud6 estimates store AQoL4D_Dim4, title(AQoL4D_D4) predict du4hat reg AQoL_4D dud1 dud2 dud3 dud4 dud5 dud6 estimates store AQoL_4D_Pred, title(AqoL_4D Predicted Score) predict aqol4Dhat generate aqol_4D_predErr = aqol4Dhat - AQoL_4D generate aqol4D_abspredErr = abs(aqol4D_predErr) sum aqol4D_abspredErr ************************************************************ **********(b) AQoL 6D on AQoL 4D *************************** ************************************************************ reg dud1 du1 du2 du3 du4 du5 predict dud1hat estimates store AQoL6D_Dim1, title(AQoL6D_D1) reg dud2 du1 du2 du3 du4 predict dud2hat estimates store AQoL6D_Dim2, title(AQoL6D_D2) reg dud3 du1 du2 du3 du4 predict dud3hat estimates store AQoL6D_Dim3, title(AQoL6D_D3) reg dud4 du1 du2 du3 du4 predict dud4hat estimates store AQoL6D_Dim4, title(AQoL6D_D4) reg dud5 du1 du2 du3 du4 predict dud5hat estimates store AQoL6D_Dim5, title(AQoL6D_D5) reg dud6 du1 du2 du3 du4 predict dud6hat estimates store AQoL6D_Dim6, title(AQoL6D_D6) ************************************************************ ************************************************************ reg AQoL_6D du1 du2 du3 du4 estimates store AQoL_6D_Pred, title(AqoL_6D Predicted Score) predict aqol6Dhat generate aqol_6D_predErr = aqol6Dhat - AQoL_6D generate aqol6D_abspredErr = abs(aqol6D_predErr) sum aqol6D_abspredErr **************************************************************************************** ***************Multi Atribute Scoring for AQoL-4D from (a)****************************** **************************************************************************************** gen AQoL4D_Trans = ((1.04*(1-(0.841*du1hat))*(1-(0.855*du2hat))*(1-(0.931*du3hat))*(1-(0.997*du4hat)))) - 0.04) tab AQoL4D_Trans egen MSE_AQol4D = mean((AQoL4D_Trans - AQoL_4D)^2) generate AQoL4D_pred_predErr = AQoL4D_Trans - AQoL_4D generate AQoL4D_pred_ABSpredErr = abs(AQoL4D_pred_predErr) sum AQoL4D_pred_ABSpredErr ********************************************************************************** ***************** Multi Attribute Scoring for AQoL6D from (b)********************* ********************************************************************************** generate duaqol2_pred=(1/-0.965)*[(1+(-0.965*0.4724105*0.883251*dud1hat))*(1+(-0.965*0.4477805*0.883251*dud2hat))*(1+(-0.965*0.4788146*0.883251*dud3hat))*(1+(-0.965*0.3454342*0.883251*dud4hat))*(1+(-0.965*0.5920923*0.883251*dud5hat))*(1+(-0.965*0.637341*0.883251*dud6hat))-1] egen MSE_AQol2Stg1= mean(duaqol2_pred - aqol2) tab MSE_AQol2Stg1 generate duaqolld_pred=1.132181*duaqol2_pred gen aqoldv1_p=0 gen aqoldv2_p=0 gen aqoldv3_p=0 gen aqoldv4_p=0 gen aqoldv5_p=0 replace aqoldv1_p=1 if duaqolld_pred>=0 & duaqolld_pred<0.25 replace aqoldv2_p=1 if duaqolld_pred>=0.25 & duaqolld_pred<0.5 replace aqoldv3_p=1 if duaqolld_pred>=0.5 & duaqolld_pred<0.75 replace aqoldv4_p=1 if duaqolld_pred>=0.75 & duaqolld_pred<1.0 replace aqoldv5_p=1 if duaqolld_pred>=1.0 generate DUAQoL6D_pred=duaqolld_pred^[(1.4544379)+(0.6357759*dud6hat*.70142711)+(0.470309*dud1hat*0.4468181*dud2hat*(-4.6857753))+(0.4468181*dud2hat*0.6357759*dud6hat*(-1.4205317))+(0.4779371*dud3hat*0.3459682*dud4hat*(-2.2346052))+(aqoldv2_p*.42313558)+(aqoldv3_p*1.1013539)+(aqoldv4_p*2.6770203)+(aqoldv5_p*5.3075813)] tab DUAQoL6D_pred replace DUAQoL6D_pred = 1 + (DUAQoL6D_pred-1)*.25773196 if DUAQoL6D_pred > 1 generate Aq2Model1_predErr = DUAQoL_pred - AQoL_6D gen Aq2Mod1_abspredErr = abs(Aq2Model1_predErr) sum Aq2Mod1_abspredErr label var Aq2Mod1_abspredErr "Absolute Predicted Error" *********************************************************************************************** ****PART 2: Second Stage Correction for AQoL-4D Transformed and AQoL-6D Transformed previously *********************************************************************************************** ************ gen EAqol1_du1 = du1hat - du1 gen EAqol1_du2 = du2hat - du2 gen EAqol1_du3 = du3hat - du3 gen EAqol1_du4 = du4hat - du4 gen EAqol2_dud1 = dud1hat - dud1 gen EAqol2_dud2 = dud2hat - dud2 gen EAqol2_dud3 = dud3hat - dud3 gen EAqol2_dud4 = dud4hat - dud4 gen EAqol2_dud5 = dud5hat - dud5 gen EAqol2_dud6 = dud6hat - dud6 gen du1hat_sq= du1hat*du1hat gen du2hat_sq= du2hat*du2hat gen du3hat_sq= du3hat*du3hat gen du4hat_sq= du4hat*du4hat gen dud1hat_sq = dud1hat*dud1hat gen dud2hat_sq = dud2hat*dud2hat gen dud3hat_sq = dud3hat*dud3hat gen dud4hat_sq = dud4hat*dud4hat gen dud5hat_sq = dud5hat*dud5hat gen dud6hat_sq = dud6hat*dud6hat ************************************************* *************Correction for AQoL4D*************** ************************************************* reg EAqol1_du1 du1hat du1hat_sq predict EAq1_du1H reg EAqol1_du2 du2hat du2hat_sq predict EAq1_du2H reg EAqol1_du3 du3hat du3hat_sq predict EAq1_du3H reg EAqol1_du4 du4hat du4hat_sq predict EAq1_du4H gen du1_A_Aq1 = EAq1_du1H + du1hat gen du2_A_Aq1 = EAq1_du2H + du2hat gen du3_A_Aq1 = EAq1_du3H + du3hat gen du4_A_Aq1 = EAq1_du4H + du4hat gen A_AQOL_pred = ((1.04*(1-(0.841*du1_A_Aq1))*(1-(0.855*du2_A_Aq1))*(1-(0.931*du3_A_Aq1))*(1-(0.997*du4_A_Aq1)))) - 0.04) egen MSE_AQol1Stg2 = mean((A_AQOL_pred -aqol1)^2) tab MSE_AQol1Stg2 ***************************************************** *************Corrections for Aqol6D****************** ***************************************************** reg EAqol2_dud1 dud1hat dud1hat_sq predict EAq2_du1H reg EAqol2_dud2 dud2hat dud2hat_sq predict EAq2_du2H reg EAqol2_dud3 dud3hat dud3hat_sq predict EAq2_du3H reg EAqol2_dud4 dud4hat dud4hat_sq predict EAq2_du4H reg EAqol2_dud5 dud5hat dud5hat_sq predict EAq2_du5H reg EAqol2_dud6 dud6hat dud6hat_sq predict EAq2_du6H gen dud1_A_Aq2 = EAq2_du1H + dud1hat gen dud2_A_Aq2 = EAq2_du2H + dud2hat gen dud3_A_Aq2 = EAq2_du3H + dud3hat gen dud4_A_Aq2 = EAq2_du4H + dud4hat gen dud5_A_Aq2 = EAq2_du5H + dud5hat gen dud6_A_Aq2 = EAq2_du6H + dud6hat generate A_duaqol2_pred=(1/-0.965)*[(1+(-0.965*0.4724105*0.883251*dud1_A_Aq2))*(1+(-0.965*0.4477805*0.883251*dud2_A_Aq2))*(1+(-0.965*0.4788146*0.883251*dud3_A_Aq2))*(1+(-0.965*0.3454342*0.883251*dud4_A_Aq2))*(1+(-0.965*0.5920923*0.883251*dud5_A_Aq2))*(1+(-0.965*0.637341*0.883251*dud6_A_Aq2))-1] egen MSE_AQol2Stg2 = mean((A_duaqol2_pred -aqol2)^2) tab MSE_AQol2Stg2 generate duaqolld_A=1.132181*A_duaqol2_pred gen aqoldv1_A=0 gen aqoldv2_A=0 gen aqoldv3_A=0 gen aqoldv4_A=0 gen aqoldv5_A=0 replace aqoldv1_A=1 if duaqolld_A>=0 & duaqolld_A<0.25 replace aqoldv2_A=1 if duaqolld_A>=0.25 & duaqolld_A<0.5 replace aqoldv3_A=1 if duaqolld_A>=0.5 & duaqolld_A<0.75 replace aqoldv4_A=1 if duaqolld_A>=0.75 & duaqolld_A<1.0 replace aqoldv5_A=1 if duaqolld_A>=1.0 generate A_AQoL6D_pred=A_duaqol2_pred^[(1.4544379)+(0.6357759*dud6_A_Aq2*.70142711)+(0.470309*dud1_A_Aq2*0.4468181*dud2_A_Aq2*(-4.6857753))+(0.4468181*dud2_A_Aq2*0.6357759*dud6_A_Aq2*(-1.4205317))+(0.4779371*dud3_A_Aq2*0.3459682*dud4_A_Aq2*(-2.2346052))+(aqoldv2_A*.42313558)+(aqoldv3_A*1.1013539)+(aqoldv4_A*2.6770203)+(aqoldv5_A*5.3075813)] egen MSE_AAQoL6D = mean((A_AQoL6D_pred -AQoL_6D)^2) tab MSE_AAQoL6D twoway (scatter A_AQOL6D_pred AQoL4D)(line NN NN)(lfit A_AQOL6D_pred AQoL4D),saving(AAq1HatAq1) ************************************************************* ****PART 3: Third Stage Correction for AQoL-6D*************** ************************************************************* reg AQoL_6D AAQoL6D_pred predict AAQoL6D_predhat reg AAQoL6D_predhat AAQoL6D_pred predict AAQoL6D_predhat2 gen AAQoL6D_stg3 = - 0.07 + (1/0.3597)*AAQoL6D_pred gen AAQoL6D_stg3 = - 0.07 + (1/0.3597)*AAQoL6D_pred reg AAQoL6D_stg3 AQoL_6D reg AAQoL_6D_stg3 AQoL_6D twoway (scatter AQoL_6D_pred AQoL_6D)(line NN NN)(lfit AQoL_6D_pred AQoL_6D),saving(m9repredm9re) twoway (scatter AAQoL_6D_pred AQoL_6D)(line NN NN)(lfit AAQoL_6D_pred AQoL_6D),saving(m9reAhatm9re) twoway (scatter AAQoL_6D_stg3 AQoL_6D)(line NN NN)(lfit AAQoL6D_stg3 AQoL_6D),saving(m9reAStg3m9re) ***************************************************************** ************************* End of Program ************************ *****************************************************************