Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4.  
  5. N = 15000 # Number of flips
  6. BIAS_HEADS = 0.3 # The bias of the coin
  7.  
  8.  
  9. bias_range = np.linspace(0, 1, 101) # The range of possible biases
  10. prior_bias_heads = np.ones(len(bias_range)) / len(bias_range) # Uniform prior distribution
  11. flip_series = (np.random.rand(N) <= BIAS_HEADS).astype(int) # A series of N 0's and 1's (coin flips)
  12.  
  13. for flip in flip_series:
  14. likelihood = bias_range**flip * (1-bias_range)**(1-flip)
  15. evidence = np.sum(likelihood * prior_bias_heads)
  16. prior_bias_heads = likelihood * prior_bias_heads / evidence
  17.  
  18. plt.plot(bias_range, prior_bias_heads)
  19. plt.xlabel('Heads Bias')
  20. plt.ylabel('P(Heads Bias)')
  21. plt.grid()
  22. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement