Here, we are running Beta-PERT Monte Carlo simulation.
from scipy import stats as stats
from scipy.stats import beta as beta
from scipy.stats import rv_continuous
import matplotlib.pylab as plt
class Beta_PERT(rv_continuous):
def _shape(self, minimum, mode, maximum, lamb):
alpha = 1+lamb*(mode-minimum)/(maximum-minimum)
beta = 1+lamb*(maximum-mode)/(maximum-minimum)
return [alpha,beta]
def _cdf(self,x, minimum, mode, maximum, lamb):
s_alpha, s_beta = self._shape(minimum, mode, maximum, lamb)
z = (x-minimum)/(maximum-minimum)
cdf = beta.cdf(z,s_alpha,s_beta)
return cdf
pert = Beta_PERT(name="pert")
rv_1 = pert(0.02,0.05,0.2,4)
rv_2 = pert(1,5,20,4)
N = 5000
freq = rv_1.rvs(N)
loss = rv_2.rvs(N)
ALE = freq*loss
No comments:
Post a Comment