def report_CEA(simOutputs_NONE, simOutputs_ANTICOAG): """ performs cost-effectiveness analysis :param simOutputs_mono: output of a cohort simulated under mono therapy :param simOutputs_combo: output of a cohort simulated under combination therapy """ # define two strategies no_therapy_strategy = Econ.Strategy( name='Mono Therapy', cost_obs=simOutputs_NONE.get_costs(), effect_obs=simOutputs_NONE.get_utilities() ) anticoag_therapy_strategy = Econ.Strategy( name='Combination Therapy', cost_obs=simOutputs_ANTICOAG.get_costs(), effect_obs=simOutputs_ANTICOAG.get_utilities() ) # do CEA if Settings.PSA_ON: CEA = Econ.CEA( strategies=[no_therapy_strategy, anticoag_therapy_strategy], if_paired=True ) else: CEA = Econ.CEA( strategies=[no_therapy_strategy, anticoag_therapy_strategy], if_paired=False ) # show the CE plane CEA.show_CE_plane( title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=8, transparency=0.3 ) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=Settings.ALPHA, cost_digits=0, effect_digits=2, icer_digits=2, )
def report_CEA(): """ performs cost-effectiveness and cost-benefit analyses :param simOutputs_mono: output of a cohort simulated under mono therapy :param simOutputs_combo: output of a cohort simulated under combination therapy """ # define two strategies without_therapy = EconCls.Strategy( name='Without Therapy', cost_obs=cohort_ONE.get_total_cost(), effect_obs=cohort_ONE.get_total_utility()) with_therapy = EconCls.Strategy(name='With Therapy', cost_obs=cohort_TWO.get_total_cost(), effect_obs=cohort_TWO.get_total_utility()) # do CEA CEA = EconCls.CEA(strategies=[without_therapy, with_therapy], if_paired=False) # show the CE plane CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3) # report the CE table CEA.build_CE_table( interval=EconCls.Interval.CONFIDENCE, alpha=0.05, cost_digits=0, effect_digits=2, icer_digits=2, )
def report_CEA_CBA(simOutputs_US, simOutputs_CT): # strategies strategy_US = Econ.Strategy(name='Ultrasound', cost_obs=simOutputs_US.get_costs(), effect_obs=simOutputs_US.get_utilities()) strategy_CT = Econ.Strategy(name='Computed Tomography', cost_obs=simOutputs_CT.get_costs(), effect_obs=simOutputs_CT.get_utilities()) # CEA CEA = Econ.CEA(strategies=[strategy_US, strategy_CT], if_paired=False) # report CE table CEA.build_CE_table(interval=Econ.Interval.CONFIDENCE, alpha=Data.ALPHA, cost_digits=0, effect_digits=2, icer_digits=2) # CE plane CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label="Additional Discounted Utility", y_label='Additional Discounted Cost', show_names=True, show_legend=True, show_clouds=True, figure_size=6, transparency=0.3)
def report_CEA_CBA(simOutputs_nodrug, simOutputs_drugtx): """ performs cost-effectiveness and cost-benefit analysis""" # strategies strategy_no_drug = Econ.Strategy( name='No drug', cost_obs=simOutputs_nodrug.get_costs(), effect_obs=simOutputs_nodrug.get_utilities() ) strategy_drug = Econ.Strategy( name='Drug Treatment', cost_obs=simOutputs_drugtx.get_costs(), effect_obs=simOutputs_drugtx.get_utilities() ) # CEA CEA = Econ.CEA( strategies=[strategy_no_drug, strategy_drug], if_paired=False ) # CE plane CEA.show_CE_plane( title='Cost Effectiveness Analysis', x_label='Additional Discounted Utility', y_label='Additional Discounted Cost', show_names=True, show_legend=True, show_clouds=True, figure_size=6, transparency=0.3 ) # report CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=Settings.ALPHA, cost_digits=0, effect_digits=2, icer_digits=2 ) # CBA NBA = Econ.CBA( strategies=[strategy_no_drug,strategy_drug], if_paired=False ) # net monetary benefit figure NBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=100000, title='Cost Benefit Analysis', x_label='WTP for one addn QALY ($)', y_label='Incremental Net Monetary Benefit ($)', interval=Econ.Interval.CONFIDENCE, show_legend=True, figure_size=6 )
def report_CEA_CBA(simOutputs_none, simOutputs_anticoag): """ performs cost-effectiveness analysis :param simOutputs_none: output of a cohort simulated under mono therapy :param simOutputs_anticoag: output of a cohort simulated under combination therapy """ # define two strategies no_therapy_strategy = Econ.Strategy( name='No Therapy', cost_obs=simOutputs_none.get_costs(), effect_obs=simOutputs_none.get_utilities() ) anticoag_therapy_strategy = Econ.Strategy( name='Combination Therapy', cost_obs=simOutputs_anticoag.get_costs(), effect_obs=simOutputs_anticoag.get_utilities() ) # CEA CEA = Econ.CEA( strategies=[no_therapy_strategy, anticoag_therapy_strategy], if_paired=False ) # show the CE plane CEA.show_CE_plane( title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3 ) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=Settings.ALPHA, cost_digits=0, effect_digits=2, icer_digits=2, ) # CBA NBA = Econ.CBA( strategies=[no_therapy_strategy, anticoag_therapy_strategy], if_paired=False ) # show the net monetary benefit figure NBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=50000, title='Cost-Benefit Analysis', x_label='Willingness-to-pay for one additional QALY ($)', y_label='Incremental Net Monetary Benefit ($)', interval=Econ.Interval.CONFIDENCE, show_legend=True, figure_size=6 )
def report_CEA_CBA(simOutputs_standard, simOutputs_population): """ performs cost-effectiveness analysis :param simOutputs_standard: output of a cohort simulated under standard testing :param simOutputs_population: output of a cohort simulated under population testing """ # define two strategies standard_testing_strategy = Econ.Strategy( name='Standard Testing', cost_obs=simOutputs_standard.get_costs(), effect_obs=simOutputs_standard.get_utilities()) population_testing_strategy = Econ.Strategy( name='Population Testing', cost_obs=simOutputs_population.get_costs(), effect_obs=simOutputs_population.get_utilities()) # CEA CEA = Econ.CEA( strategies=[standard_testing_strategy, population_testing_strategy], if_paired=False) # show the CE plane CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=ALPHA, cost_digits=0, effect_digits=2, icer_digits=0, ) # CBA NBA = Econ.CBA( strategies=[standard_testing_strategy, population_testing_strategy], if_paired=False) # show the net monetary benefit figure NBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=150000, title='Cost-Benefit Analysis', x_label='Willingness-to-pay for one additional QALY ($)', y_label='Incremental Net Monetary Benefit ($)', interval=Econ.Interval.CONFIDENCE, show_legend=True, figure_size=6)
def report_CEA_CBA(simOutputs_warfarin, simOutputs_dabigatran_110, simOutputs_dabigatran_150): warfarin_strategy = Econ.Strategy( name="Warfarin", cost_obs=simOutputs_warfarin.get_costs(), effect_obs=simOutputs_warfarin.get_utilities()) dabigatran_110_strategy = Econ.Strategy( name="Dabigatran 110mg", cost_obs=simOutputs_dabigatran_110.get_costs(), effect_obs=simOutputs_dabigatran_110.get_utilities()) dabigatran_150_strategy = Econ.Strategy( name="Dabigatran 150mg", cost_obs=simOutputs_dabigatran_150.get_costs(), effect_obs=simOutputs_dabigatran_150.get_utilities()) listofStrategies = [ warfarin_strategy, dabigatran_110_strategy, dabigatran_150_strategy ] CEA = Econ.CEA(listofStrategies, if_paired=False) # create cost effectiveness analysis plane CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=Settings.ALPHA, cost_digits=0, effect_digits=2, icer_digits=3, ) CBA = Econ.CBA(listofStrategies, if_paired=False) # Create Cost benefit analysis figure CBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=50000, x_label="Willingness-to-pay for one additional QALY ($)", y_label="Incremental Net Monetary Benefit ($)", interval=Econ.Interval.CONFIDENCE, transparency=0.4, show_legend=True, figure_size=6, title='Cost Benefit Analysis')
def report_CEA_CBA(simOutputs_none, simOutputs2, simOutputs3, simOutputs4): no_change = Econ.Strategy(name="No change", cost_obs=simOutputs_none.get_costs(), effect_obs=simOutputs_none.get_utilities()) supplies = Econ.Strategy(name="Additional Supplies", cost_obs=simOutputs2.get_costs(), effect_obs=simOutputs2.get_utilities()) training = Econ.Strategy(name="Additional Training", cost_obs=simOutputs3.get_costs(), effect_obs=simOutputs3.get_utilities()) supplies_and_training = Econ.Strategy( name="Adding Supplies and Training", cost_obs=simOutputs4.get_costs(), effect_obs=simOutputs4.get_utilities()) listofStrategies = [no_change, supplies, training, supplies_and_training] CEA = Econ.CEA(listofStrategies, if_paired=False) CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=Settings.ALPHA, cost_digits=0, effect_digits=2, icer_digits=2, ) CBA = Econ.CBA(listofStrategies, if_paired=False) CBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=50000, x_label="Willingness-to-pay for one additional QALY ($)", y_label="Incremental Net Monetary Benefit ($)", interval=Econ.Interval.CONFIDENCE, transparency=0.4, show_legend=True, figure_size=6, title='cost benefit analysis')
def report_CEA_CBA(simOutputs_ANNUAL, simOutputs_SEMI): annual_MDA = Econ.Strategy(name="Annual MDA", cost_obs=simOutputs_ANNUAL.get_costs(), effect_obs=simOutputs_ANNUAL.get_utilities()) semiannual_MDA = Econ.Strategy(name="Semi-Annual MDA", cost_obs=simOutputs_SEMI.get_costs(), effect_obs=simOutputs_SEMI.get_utilities()) listofStrategies = [annual_MDA, semiannual_MDA] CEA = Econ.CEA(listofStrategies, if_paired=False) CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=Settings.ALPHA, cost_digits=2, effect_digits=2, icer_digits=2, ) CBA = Econ.CBA(listofStrategies, if_paired=False) NBA = Econ.CBA(strategies=[annual_MDA, semiannual_MDA], if_paired=False) NBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=900, x_label="Willingness-to-pay for one unit reduction in DALY ($)", y_label="Incremental Net Monetary Benefit ($)", interval=Econ.Interval.CONFIDENCE, transparency=0.4, show_legend=True, figure_size=6, title='Cost Benefit Analysis')
def report_CEA_CBA(simOutputs_none, simOutputs_anticoag): no_therapy_strategy = EconCls.Strategy( name="without vaccination", cost_obs=simOutputs_none.get_total_cost(), effect_obs=simOutputs_none.get_total_utility()) anticoag_therapy_strategy = EconCls.Strategy( name="With vaccination", cost_obs=simOutputs_anticoag.get_total_cost(), effect_obs=simOutputs_anticoag.get_total_utility()) listofStrategies = [no_therapy_strategy, anticoag_therapy_strategy] CEA = EconCls.CEA(listofStrategies, if_paired=False) CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3) # report the CE table CEA.build_CE_table( interval=EconCls.Interval.CONFIDENCE, alpha=0.05, cost_digits=0, effect_digits=2, icer_digits=2, ) CBA = EconCls.CBA(listofStrategies, if_paired=False) CBA.graph_deltaNMB_lines( min_wtp=0, max_wtp=50000, x_label="Willingness-to-pay for one additional QALY ($)", y_label="Incremental Net Monetary Benefit ($)", interval=EconCls.Interval.CONFIDENCE, transparency=0.4, show_legend=True, figure_size=6, title='cost benefit analysis')
def report_CEA(simOutputs_mono, simOutputs_combo): """ performs cost-effectiveness analysis :param simOutputs_mono: output of a cohort simulated under mono therapy :param simOutputs_combo: output of a cohort simulated under combination therapy """ # define two strategies mono_therapy_strategy = Econ.Strategy( name='WITHOUT anticoagulation', cost_obs=simOutputs_mono.get_costs(), effect_obs=simOutputs_mono.get_utilities() ) combo_therapy_strategy = Econ.Strategy( name='WITH anticoagulation', cost_obs=simOutputs_combo.get_costs(), effect_obs=simOutputs_combo.get_utilities() ) # CEA CEA = Econ.CEA( strategies=[mono_therapy_strategy, combo_therapy_strategy], if_paired=False ) # show the CE plane CEA.show_CE_plane( title='Problem 4: Cost-Effectiveness Analysis', x_label='Additional discounted utility', y_label='Additional discounted cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3 ) # report the CE table CEA.build_CE_table( interval=Econ.Interval.CONFIDENCE, alpha=ALPHA, cost_digits=0, effect_digits=2, icer_digits=2, )
def report_CEA_CBA_single(cohort_no_treat, cohort_acu, cohort_cran, cohort_abx, cohort_estro): no_treatment_strategy = Econ.Strategy( name="No treatment", cost_obs=cohort_no_treat.get_ave_total_cost(), effect_obs=cohort_no_treat.get_ave_number_utis()) acu_strategy = Econ.Strategy(name="Acupunture", cost_obs=cohort_acu.get_ave_total_cost(), effect_obs=cohort_acu.get_ave_number_utis()) cran_strategy = Econ.Strategy(name="Cranberry", cost_obs=cohort_cran.get_ave_total_cost(), effect_obs=cohort_cran.get_ave_number_utis()) abx_strategy = Econ.Strategy(name="Antibiotics", cost_obs=cohort_abx.get_ave_total_cost(), effect_obs=cohort_abx.get_ave_number_utis()) estro_strategy = Econ.Strategy( name="Estrogen", cost_obs=cohort_estro.get_ave_total_cost(), effect_obs=cohort_estro.get_ave_number_utis()) CEA = Econ.CEA(strategies=[ no_treatment_strategy, acu_strategy, cran_strategy, abx_strategy, estro_strategy ], if_paired=False) CEA.show_CE_plane(title='Cost-Effectiveness Analysis', x_label='Difference in total number of UTIs', y_label='Difference in total cost', show_names=True, show_clouds=True, show_legend=True, figure_size=6, transparency=0.3)
SA2_baseline_strat = Econ.Strategy(name="4% Baseline", cost_obs=[137.54], effect_obs=[.986]) SA2_training_strat = Econ.Strategy(name="4% Training Only", cost_obs=[144.33], effect_obs=[.9872]) SA2_supplies_strat = Econ.Strategy(name="4% Supplies Only", cost_obs=[136.29], effect_obs=[.9874]) SA2_both_strat = Econ.Strategy(name="4% Both Training and Supplies", cost_obs=[144.11], effect_obs=[.989]) econ_eval = Econ.CEA( strategies=[baseline_strat, training_strat, supplies_strat, both_strat], if_paired=False) Econ.CEA.show_CE_plane(econ_eval, title='Cost Effectiveness Analysis with 10% Hypertension',\ y_label='Cost',\ x_label='Utility',\ show_names=True,\ figure_size=6) SA1_econ_eval = Econ.CEA(strategies=[ SA1_baseline_strat, SA1_training_strat, SA1_supplies_strat, SA1_both_strat ], if_paired=False) Econ.CEA.show_CE_plane(SA1_econ_eval, title='Cost Effectiveness Analysis with 18% Hypertension',\ y_label='Cost',\ x_label='Utility',\ show_names=True,\
import scr.EconEvalClasses as Econ import Decision_Tree as Inputs import RunTree as run baseline_strat = Econ.Strategy(name="Baseline", cost_obs=1.44, effect_obs=.966) training_strat = Econ.Strategy("Training Only", cost_obs=8.81, effect_obs=.9661) supplies_strat = Econ.Strategy("Supplies Only", cost_obs=1.17, effect_obs=.968) both_strat = Econ.Strategy("Both Training and Supplies", cost_obs=12.432, effect_obs=.915) econ_eval=Econ.CEA(strategies=[baseline_strat, training_strat, supplies_strat, both_strat], if_paired=False) Econ.CEA.show_CE_plane(econ_eval, title='Cost Effectiveness Analysis',\ y_label='Cost',\ x_label='Utility')
s_center[3, 1] + np.random.normal(0, 0.5, 10)) s4 = ce.Strategy("s5", s_center[4, 0] + np.random.normal(0, 0.5, 10), s_center[4, 1] + np.random.normal(0, 0.5, 10)) s5 = ce.Strategy("s6", s_center[5, 0] + np.random.normal(0, 0.5, 10), s_center[5, 1] + np.random.normal(0, 0.5, 10)) s6 = ce.Strategy("s7", s_center[6, 0] + np.random.normal(0, 0.5, 10), s_center[6, 1] + np.random.normal(0, 0.5, 10)) s7 = ce.Strategy("s8", s_center[7, 0] + np.random.normal(0, 0.5, 10), s_center[7, 1] + np.random.normal(0, 0.5, 10)) s8 = ce.Strategy("s9", s_center[8, 0] + np.random.normal(0, 0.5, 10), s_center[8, 1] + np.random.normal(0, 0.5, 10)) s9 = ce.Strategy("s10", s_center[9, 0] + np.random.normal(0, 0.5, 10), s_center[9, 1] + np.random.normal(0, 0.5, 10)) # create a CEA object -- unpaired myCEA = ce.CEA([s0, s1, s2, s3, s4, s5, s6, s7, s8, s9], if_paired=True) # plot with label and sample cloud myCEA.show_CE_plane('CE plane with unpaired observations and showing labels', 'E[Effect]', 'E[Cost]', show_names=True, show_clouds=True, figure_size=6) # plot with sample cloud and legend myCEA.show_CE_plane('CE Plane with unpaired observations and showing legend', 'E[Effect]', 'E[Cost]', show_legend=True, show_clouds=True,