Solved – n formula to translate a Beta distribution back to a Pert distribution? Or is simulation the only way

bayesianbeta distributionprediction intervalproject-managementsimulation

A popular method to estimate in project management is the 3 point estimation plus the PERT formula

If I use it for example to estimate how many stories my team is going to be able to complete Sprint over Sprint, I can start by saying that:

  • Min number of stories: 10
  • Most likely number of stories: 20
  • Max number of stories: 30

Which when using the Z-score for 75% confidence tells me that if my assumptions are correct I can be 75% confident that I will be able to complete at least 18 stories.

- Pert Mean=([[Min]]+(4*[[Most Likely]])+[[Max]])/6
- Pert Variance = POWER(([[Max]]-[[Min]])/6,2)
- Pert StDev = SQRT([Pert Variance]) 
  • Pert Mean: 20, StD: 3, Z-score: -0.67 therefore 20+(3*-0.67) = 18

But then it turns out that my team is only able to complete 8 stories, way less than what I expected to be the minimum, initially I had considered to simple update my parameter estimates to:

  • Min number of stories: 8
  • Most likely number of stories: 20
  • Max number of stories: 30

But it didn't feel quite right, so I started reading more and discovered PERT distribution is actually a transformation of the Beta distribution, which meant I could use this to recalibrate.

So I went ahead and translated my initial PERT estimate into a Beta distribution by using this formulas:

Alpha =IF([Weighted Mean]=[Mode],([Lambda]/2)+1,  ([Weighted Mean]-[Min])*(2*[Mode]-[Min]-[Max])/(([Mode]-[Weighted Mean])*([Max]-[Min])))

Beta =[Alpha]*([Max]-[Weighted Mean])/([Weighted Mean]-[Min])

Which gave me this results:

  • Alpha: 3
  • Beta: 3

Adjusting alpha and beta to reflect the fact that we expected to complete 20 stories but only completed 8 is easy:

  • Calibrated Alpha = 3+8 = 11
  • Calibrated Beta = 3+12= 15.

Now the question is how do I translate that back into PERT to be able to use the Z-score to estimate (with 75%) confidence the number of stories that I will be able to complete on the next sprint…
I looked and looked and couldn't find anything…. So I went the Montecarlo simulation route and had Excel generate 1 Million random numbers based on the Beta distribution:

FLOOR.MATH(BETA.INV(RAND(),[Alpha],[Beta],[Minimum],[Maximum])

That is:

FLOOR.MATH(BETA.INV(RAND(),11,15,8,30)

I used 8 as the min because is that smallest value I ever had (even if the project has only ran for 1 sprint)

And the result was:

  • Min 9
  • Mode 17
  • Max 26

Which I am now using as parameters to do the PERT estimation for the next iteration…

The problem is that Excel is not really that fast generating 1 millon rows, and I really would like to calculate how things adjust over multiple sprints, so I am now wondering:

  • Is this the only way to adjust the PERT parameters based on the way the team actually performed?
  • Or is there some kind of (Bayesian?) formula that I could use to re-calibrate my PERT estimates?

Best Answer

This article might be useful

http://pubsonline.informs.org/doi/pdf/10.1287/ited.1080.0013

BTW, When I estimate the beta parameters using the pert parameter you gave (10,20,30) I got alfa=beta=4 (I used equations 4 and 5 in the article above)

Confirm you are using the proper formula.

Good luck, JP