import math
A = 1/12
B = A + 1/6
C = A + 2/6
D = A + 3/6
E = A + 4/6
F = A + 5/6
alpha0 = 0.50 # Jeffreys prior
beta0 = 0.50  # Jeffreys prior
s = A  # Select score, A to F 
Vs = 0.01 
PriorMean = alpha0/(alpha0+beta0) 
PriorVar = alpha0*beta0/((alpha0+beta0)**2*(alpha0+beta0+1)) 
PriorSD = math.sqrt(PriorVar) 
alpha = alpha0+s**2*(1-s)/Vs 
beta = beta0+s*(1-s)**2/Vs 
PosteriorMean = alpha/(alpha+beta) 
PosteriorVar = alpha*beta/((alpha+beta)**2*(alpha+beta+1)) 
PosteriorSD = math.sqrt(PosteriorVar) 
wPrior = 1/PriorVar/(1/PriorVar+1/Vs) 
wScore = 1-wPrior 
WeightedSum = PriorMean*wPrior+s*wScore
print("PriorMean =",PriorMean)
print("PriorVar =",PriorVar)
print("PriorSD =",PriorSD)
print("alpha =",alpha)
print("beta",beta)
print("PosteriorMean =",PosteriorMean)
print("PosteriorVar =",PosteriorVar)
print("PosteriorSD =",PosteriorSD)
print("wPrior =",wPrior)
print("wScore =",wScore)
print("WeightedSum =",WeightedSum)

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats 

def prior(x):
   return scipy.stats.beta.pdf(x, alpha0, beta0)
def posterior(x):
   return scipy.stats.beta.pdf(x,  alpha, beta)

x = np.linspace(0.0, 1, 100)
y1 = prior(x)
y2 = posterior(x)

fig, ax = plt.subplots()
ax.plot(x, y1, label='Prior', color='blue', linestyle='--')
ax.plot(x, y2, label='Posterior', color='red', linestyle='-')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('Plotting Multiple Functions')
ax.legend()
plt.show()



