Once the model has been run, we can use the results and summarize
them using the summary_results_det
to print the results of
the last simulation (if nsim = 1
, it’s the deterministic
case), and summary_results_sim
to show the PSA results
(with the confidence intervals). We can also use the individual patient
data generated by the simulation, which we collect here to plot in the
psa_ipd
object.
summary_results_det(results[[1]][[1]]) #print first simulation
#> int noint
#> costs 58978.88 51768.23
#> dcosts 0.00 7210.66
#> lys 9.72 9.72
#> dlys 0.00 0.00
#> qalys 6.27 6.08
#> dqalys 0.00 0.19
#> ICER NA Inf
#> ICUR NA 38286.46
#> INMB NA 2206.06
#> costs_undisc 74324.03 65474.81
#> dcosts_undisc 0.00 8849.22
#> lys_undisc 11.99 11.99
#> dlys_undisc 0.00 0.00
#> qalys_undisc 7.62 7.38
#> dqalys_undisc 0.00 0.24
#> ICER_undisc NA Inf
#> ICUR_undisc NA 37557.56
#> INMB_undisc NA 2931.65
#> c_default 58978.88 51768.23
#> dc_default 0.00 7210.66
#> c_default_undisc 74324.03 65474.81
#> dc_default_undisc 0.00 8849.22
#> q_default 6.27 6.08
#> dq_default 0.00 0.19
#> q_default_undisc 7.62 7.38
#> dq_default_undisc 0.00 0.24
summary_results_sim(results[[1]])
#> int noint
#> costs 58,979 (58,979; 58,979) 51,768 (51,768; 51,768)
#> dcosts 0 (0; 0) 7,211 (7,211; 7,211)
#> lys 9.72 (9.72; 9.72) 9.72 (9.72; 9.72)
#> dlys 0 (0; 0) 0 (0; 0)
#> qalys 6.27 (6.27; 6.27) 6.08 (6.08; 6.08)
#> dqalys 0 (0; 0) 0.188 (0.188; 0.188)
#> ICER NaN (NA; NA) Inf (Inf; Inf)
#> ICUR NaN (NA; NA) 38,286 (38,286; 38,286)
#> INMB NaN (NA; NA) 2,206 (2,206; 2,206)
#> costs_undisc 74,324 (74,324; 74,324) 65,475 (65,475; 65,475)
#> dcosts_undisc 0 (0; 0) 8,849 (8,849; 8,849)
#> lys_undisc 12 (12; 12) 12 (12; 12)
#> dlys_undisc 0 (0; 0) 0 (0; 0)
#> qalys_undisc 7.62 (7.62; 7.62) 7.38 (7.38; 7.38)
#> dqalys_undisc 0 (0; 0) 0.236 (0.236; 0.236)
#> ICER_undisc NaN (NA; NA) Inf (Inf; Inf)
#> ICUR_undisc NaN (NA; NA) 37,558 (37,558; 37,558)
#> INMB_undisc NaN (NA; NA) 2,932 (2,932; 2,932)
#> c_default 58,979 (58,979; 58,979) 51,768 (51,768; 51,768)
#> dc_default 0 (0; 0) 7,211 (7,211; 7,211)
#> c_default_undisc 74,324 (74,324; 74,324) 65,475 (65,475; 65,475)
#> dc_default_undisc 0 (0; 0) 8,849 (8,849; 8,849)
#> q_default 6.27 (6.27; 6.27) 6.08 (6.08; 6.08)
#> dq_default 0 (0; 0) 0.188 (0.188; 0.188)
#> q_default_undisc 7.62 (7.62; 7.62) 7.38 (7.38; 7.38)
#> dq_default_undisc 0 (0; 0) 0.236 (0.236; 0.236)
summary_results_sens(results)
#> arm analysis analysis_name variable value
#> <char> <int> <char> <fctr> <char>
#> 1: int 1 costs 58,979 (58,979; 58,979)
#> 2: noint 1 costs 51,768 (51,768; 51,768)
#> 3: int 1 dcosts 0 (0; 0)
#> 4: noint 1 dcosts 7,211 (7,211; 7,211)
#> 5: int 1 lys 9.72 (9.72; 9.72)
#> 6: noint 1 lys 9.72 (9.72; 9.72)
#> 7: int 1 dlys 0 (0; 0)
#> 8: noint 1 dlys 0 (0; 0)
#> 9: int 1 qalys 6.27 (6.27; 6.27)
#> 10: noint 1 qalys 6.08 (6.08; 6.08)
#> 11: int 1 dqalys 0 (0; 0)
#> 12: noint 1 dqalys 0.188 (0.188; 0.188)
#> 13: int 1 ICER NaN (NA; NA)
#> 14: noint 1 ICER Inf (Inf; Inf)
#> 15: int 1 ICUR NaN (NA; NA)
#> 16: noint 1 ICUR 38,286 (38,286; 38,286)
#> 17: int 1 INMB NaN (NA; NA)
#> 18: noint 1 INMB 2,206 (2,206; 2,206)
#> 19: int 1 costs_undisc 74,324 (74,324; 74,324)
#> 20: noint 1 costs_undisc 65,475 (65,475; 65,475)
#> 21: int 1 dcosts_undisc 0 (0; 0)
#> 22: noint 1 dcosts_undisc 8,849 (8,849; 8,849)
#> 23: int 1 lys_undisc 12 (12; 12)
#> 24: noint 1 lys_undisc 12 (12; 12)
#> 25: int 1 dlys_undisc 0 (0; 0)
#> 26: noint 1 dlys_undisc 0 (0; 0)
#> 27: int 1 qalys_undisc 7.62 (7.62; 7.62)
#> 28: noint 1 qalys_undisc 7.38 (7.38; 7.38)
#> 29: int 1 dqalys_undisc 0 (0; 0)
#> 30: noint 1 dqalys_undisc 0.236 (0.236; 0.236)
#> 31: int 1 ICER_undisc NaN (NA; NA)
#> 32: noint 1 ICER_undisc Inf (Inf; Inf)
#> 33: int 1 ICUR_undisc NaN (NA; NA)
#> 34: noint 1 ICUR_undisc 37,558 (37,558; 37,558)
#> 35: int 1 INMB_undisc NaN (NA; NA)
#> 36: noint 1 INMB_undisc 2,932 (2,932; 2,932)
#> 37: int 1 c_default 58,979 (58,979; 58,979)
#> 38: noint 1 c_default 51,768 (51,768; 51,768)
#> 39: int 1 dc_default 0 (0; 0)
#> 40: noint 1 dc_default 7,211 (7,211; 7,211)
#> 41: int 1 c_default_undisc 74,324 (74,324; 74,324)
#> 42: noint 1 c_default_undisc 65,475 (65,475; 65,475)
#> 43: int 1 dc_default_undisc 0 (0; 0)
#> 44: noint 1 dc_default_undisc 8,849 (8,849; 8,849)
#> 45: int 1 q_default 6.27 (6.27; 6.27)
#> 46: noint 1 q_default 6.08 (6.08; 6.08)
#> 47: int 1 dq_default 0 (0; 0)
#> 48: noint 1 dq_default 0.188 (0.188; 0.188)
#> 49: int 1 q_default_undisc 7.62 (7.62; 7.62)
#> 50: noint 1 q_default_undisc 7.38 (7.38; 7.38)
#> 51: int 1 dq_default_undisc 0 (0; 0)
#> 52: noint 1 dq_default_undisc 0.236 (0.236; 0.236)
#> arm analysis analysis_name variable value
psa_ipd <- bind_rows(map(results[[1]], "merged_df"))
psa_ipd[1:10,] %>%
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
We can also check what has been the absolute number of events per
strategy.