Esempio n. 1
0
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)
Esempio n. 2
0
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))
Esempio n. 3
0
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),
Esempio n. 4
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:')
Esempio n. 6
0
#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
Esempio n. 7
0
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,
Esempio n. 9
0
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))