import CalibrationClasses as Cls import CalibrationSettings as CalibSets import SimPy.FigureSupport as Fig # create a calibration object calibration = Cls.Calibration() # sample the posterior of the mortality probability calibration.sample_posterior(n_samples=CalibSets.POST_N) # create the histogram of the resampled mortality probabilities Fig.graph_histogram(data=calibration.mortalityResamples, title='Histogram of Resampled Mortality Probabilities', x_label='Mortality Probability', y_label='Counts', x_range=[CalibSets.POST_L, CalibSets.POST_U]) # Estimate of mortality probability and the posterior interval print( 'Estimate of mortality probability ({:.{prec}%} credible interval):'. format(1 - CalibSets.ALPHA, prec=0), calibration.get_mortality_estimate_credible_interval( alpha=CalibSets.ALPHA)) # effective sample size # txtEff = 'Effective sample size: {:.1f}'.format(calibration.get_effective_sample_size()) # print(txtEff)
import CalibrationClasses as Cls calibrated = Cls.Calibration() calibrated.sample_posterior() print('PROBLEM 4:') print( 'The estimated annual mortality probability and the 95% credible interval is:', calibrated.get_mortality_estimate_credible_interval(alpha=.05, deci=4))
print('Problem 2') print( 'Binomial distribution with p (probability of successes) equals the probability of surviving beyond 5 years (q) and number of trials as N.' ) print() print('Problem 3') prob = stat.binom.pmf(400, 573, 0.5) print( 'The likelihood that a clinical study reports 400 of 573 participants survived at the end of the 5-year study period ' 'if 50% of the patients in our simulated cohort survived beyond 5 years is:', prob) print() print("Problem 4") # create a calibration object calibration = CalibClasses.Calibration() # sample the posterior of the mortality probability calibration.sample_posterior() # create the histogram of the resampled mortality probabilities Fig.graph_histogram(observations=calibration.get_mortality_resamples(), title='Histogram of Resampled Mortality Probabilities', x_label='Mortality Probability', y_label='Counts', x_range=[CalibSets.POST_L, CalibSets.POST_U]) # Estimate of mortality probability and the posterior interval print( 'Estimate of mortality probability ({:.{prec}%} credible interval):'. format(1 - CalibSets.ALPHA, prec=0),
import CalibrationClasses as CalibSupport import CalibrationSettings as CalibSets print('(Question 5)') # initialize a calibrated model calibrated_model = CalibSupport.CalibratedModel('CalibrationResults.csv') # simulate the calibrated model calibrated_model.simulate(CalibSets.SIM_POP_SIZE, CalibSets.TIME_STEPS) # report mean and projection interval print( 'Mean survival time and {:.{prec}%} projection interval:'.format( 1 - CalibSets.ALPHA, prec=0), calibrated_model.get_mean_survival_time_proj_interval(CalibSets.ALPHA, deci=4))
import CalibrationClasses as Cls import InputData as D import SupportCalibrated as Support from definitions import CALIBRATION_ROOT_DIR # create a calibrated model for when drug is not available calibratedModelNoDrug = Cls.CalibratedModel( csv_file_name=CALIBRATION_ROOT_DIR + '\CalibrationResults.csv') # simulate the calibrated model calibratedModelNoDrug.simulate(num_of_simulated_cohorts=D.NUM_SIM_COHORTS, cohort_size=D.SIM_POP_SIZE, time_steps=D.TIME_STEPS) # create a calibrated model when drug is available calibratedModelWithDrug = Cls.CalibratedModel( csv_file_name=CALIBRATION_ROOT_DIR + '\CalibrationResults.csv', drug_effectiveness_ratio=D.DRUG_EFFECT_RATIO) # simulate the calibrated model initial_seed = D.NUM_SIM_COHORTS * D.SIM_POP_SIZE calibratedModelWithDrug.simulate(num_of_simulated_cohorts=D.NUM_SIM_COHORTS, cohort_size=D.SIM_POP_SIZE, time_steps=D.TIME_STEPS, cohort_ids=range( initial_seed, initial_seed + D.NUM_SIM_COHORTS)) # report mean and projection interval of expected survival time Support.print_outcomes(calibrated_model=calibratedModelNoDrug, strategy_name='When drug is not available:') Support.print_outcomes(calibrated_model=calibratedModelWithDrug, strategy_name='When drug is available:')
#P3: Likelihood Calculation import scipy.stats as stat from scipy.stats import binom print( "Problem3: The likelihood that a clinical study reports 400 of 573 participants survived at the end of the 5-year study period if 50% of the patients in our simulated cohort survived beyond 5 years is", stat.binom.pmf(k=400, n=573, p=0.5)) #P4: Calibration import CalibrationClasses as Cls import CalibrationSettings as CalibSets # create a calibration object calibration = Cls.Calibration() # sample the posterior of the mortality probability calibration.sample_posterior() # Estimate of mortality probability and the posterior interval print( 'Problem4: Estimate of annual mortality probability ({:.{prec}%} credible interval):' .format(1 - CalibSets.ALPHA, prec=0), calibration.get_mortality_estimate_credible_interval(CalibSets.ALPHA, 4)) #P5: Projection # initialize a calibrated model calibrated_model = Cls.CalibratedModel('CalibrationResults.csv') # simulate the calibrated model
import CalibrationClasses as Cls import CalibrationSettings as CalibSets import SimPy.FigureSupport as Fig import SimPy.SamplePathClasses as Path import MultiCohortSupport as Support import CalibrationParameterClasses as P # initialize a calibrated model calibrated_model_SOC = Cls.CalibratedModel( csv_file_name='CalibrationResults.csv') calibrated_model_NSB = Cls.CalibratedModel( csv_file_name='CalibrationResults.csv') # simulate the calibrated model calibrated_model_SOC.simulate( num_of_simulated_cohorts=CalibSets.NUM_SIM_COHORTS, cohort_size=CalibSets.SIM_POP_SIZE, sim_length=CalibSets.SIM_LENGTH, diagnostic=P.Diagnostic.SOC) calibrated_model_NSB.simulate( num_of_simulated_cohorts=CalibSets.NUM_SIM_COHORTS, cohort_size=CalibSets.SIM_POP_SIZE, sim_length=CalibSets.SIM_LENGTH, diagnostic=P.Diagnostic.NSB) # plot the sample paths Path.graph_sample_paths(sample_paths=calibrated_model_SOC.multiCohorts. multiCohortOutcomes.survivalCurves, title='Survival Curves', x_label='Time (Week)',
import CalibrationClasses as Cls import CalibrationSettings as Sets import SimPy.Plots.Histogram as Hist import SimPy.Plots.SamplePaths as Path # initialize a calibrated model calibrated_model = Cls.CalibratedModel(csv_file_name='CalibrationResults.csv') # simulate the calibrated model calibrated_model.simulate(num_of_simulated_cohorts=Sets.NUM_SIM_COHORTS, cohort_size=Sets.SIM_POP_SIZE, time_steps=Sets.TIME_STEPS) # plot the sample paths Path.plot_sample_paths(sample_paths=calibrated_model.multiCohorts. multiCohortOutcomes.survivalCurves, title='Survival Curves', x_label='Time-Step (Year)', y_label='Number Survived', transparency=0.5) # plot the histogram of mean survival time Hist.plot_histogram( data=calibrated_model.multiCohorts.multiCohortOutcomes.meanSurvivalTimes, title='Histogram of Mean Survival Time', x_label='Mean Survival Time (Year)', y_label='Count', bin_width=0.25, x_range=[2.5, 21.5]) # create the histogram of the resampled mortality probabilities Hist.plot_histogram(data=calibrated_model.resampledMortalityProb,
import CalibrationClasses as CalibClasses import CalibrationSettings as CalibSets print('Question 4') # create a calibration object calibration = CalibClasses.Calibration() # sample the posterior of the mortality probability calibration.sample_posterior() # Estimate of mortality probability and the posterior interval print( 'Estimate of mortality probability ({:.{prec}%} credible interval):'. format(1 - CalibSets.ALPHA, prec=0), calibration.get_mortality_estimate_credible_interval(CalibSets.ALPHA, 4))