Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Four-parameter Beta distribution/PERT distribution #778

Closed
barabadzhi opened this issue Apr 18, 2019 · 5 comments · Fixed by #782
Closed

Four-parameter Beta distribution/PERT distribution #778

barabadzhi opened this issue Apr 18, 2019 · 5 comments · Fixed by #782

Comments

@barabadzhi
Copy link

Background

What is your motivation?

Statistical computing.

What type of application is this? (E.g. cryptography, game, numerical simulation)

Simulation.

Feature request

Will be really nice to have four-parameter Beta distribution/PERT distribution in place. It offers an alternative to using the triangular distribution which takes the same parameters. The PERT distribution has a smoother shape than the Triangular distribution yielding extremes less frequently.

@dhardy
Copy link
Member

dhardy commented Apr 18, 2019

Thanks for the suggestion. Can you point us to any sampling algorithms for the distribution?

@barabadzhi
Copy link
Author

@dhardy

Here are some references:
R
Python

C

Hope, they can be helpful 🙂

@dhardy
Copy link
Member

dhardy commented Apr 18, 2019

Thanks! Question: why is this typically parameterised by (min, max, mode, mode_weight) and not by (min, max, mean)? It looks like it would be easy to add constructors for each if desired.

I guess also it's common to use (min, max) = (0, 1)?

@barabadzhi
Copy link
Author

barabadzhi commented Apr 18, 2019

Mean is the average of all observations.
Typically we use PERT distribution when there are a few observations (thus mean is impractical), but we have min, max and "the most likely value" (mode) instead. We also use mode weight to affect the shape of the curve.

Min/max values can be whatever. I'm generating customer demand data in XXX tons for example. And this can be from 0.1 ton to 10K ton. But (0,1) as default values are fine to me 🙂

@dhardy
Copy link
Member

dhardy commented Apr 19, 2019

Okay, I'll start on this soon, but it's currently blocked by #770.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants