Skip to content

Instantly share code, notes, and snippets.

@pat-hanbury
Last active August 1, 2022 10:00
Show Gist options
  • Save pat-hanbury/bbf7989c8643cef494d27d985ac58808 to your computer and use it in GitHub Desktop.
Save pat-hanbury/bbf7989c8643cef494d27d985ac58808 to your computer and use it in GitHub Desktop.
def importance_sampling_MC(lamda, num_samples):
A = lamda
running_total = 0
for i in range(num_samples):
r = get_rand_number(0,1)
running_total += f_of_x(inverse_G_of_r(r, lamda=lamda))/g_of_x(inverse_G_of_r(r, lamda=lamda), A, lamda)
approximation = float(running_total/num_samples)
return approximation
# run simulation
num_samples = 10000
approx = importance_sampling_MC(optimal_lamda, num_samples)
variance = get_IS_variance(optimal_lamda, num_samples)
error = (variance/num_samples)**0.5
# display results
print(f"Importance Sampling Approximation: {approx}")
print(f"Variance: {variance}")
print(f"Error: {error}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment