Real-time latin-hypercube-sampling-based Monte Carlo Error Propagation
Project description
Overview
mcerp is a stochastic calculator for Monte Carlo methods that uses latin-hypercube sampling to perform non-order specific error propagation (or uncertainty analysis).
If you are familiar with Excel-based risk analysis programs like @Risk, Crystal Ball, ModelRisk, etc., this package will work wonders for you (and probably even be faster!) and give you more modelling flexibility with the powerful Python language.
With this package you can easily and transparently track the effects of uncertainty through mathematical calculations. Advanced mathematical functions, similar to those in the standard math module, and statistical functions like those in the scipy.stats module, can also be evaluated directly.
What’s New In This Release
Extensive support for scipy.stats statistical functions (like linregress, wilcoxon, bayes_mvs, scoreatpercentile, etc.) in the sub-module mcerp.stats. The syntax is the same as the original scipy functions, but now you can use objects created with MCERP as input to the args of the functions (keyword-arguments not yet supported).
The math and statistical functions are now imported a little easier:
>>> from mcerp.umath import * # imports the math functions >>> from mcerp.stats import * # imports the statistical functions
New distribution constructors (see the package documentation for help with the syntax and links to more detailed information about each):
Bradford
Burr
Erf
Erlang
ExtremeValueMax or EVMax
ExtremeValueMin or EVMin
PERT
Aliased names for many other distributions (i.e., either can be used to create the same distribution, like, N(0, 1) is the same as Normal(0, 1)):
ChiSquared or Chi2
Exponential or Exp
Fisher or F
LogNormal or LogN
Normal or N
StudentT or T
Triangular or Tri
Uniform or U
Weibull or Weib
Bernoulli or Bern
Binomial or B
Geometric or G
Hypergeometric or H
Poisson or Pois
Main Features
Transparent calculations. No or little modification to existing code required.
Basic NumPy support without modification. (I haven’t done extensive testing, so please let me know if you encounter bugs.)
Advanced mathematical functions supported through the mcerp.umath sub-module. If you think a function is in there, it probably is. If it isn’t, please request it!
Easy statistical distribution constructors. The location, scale, and shape parameters follow the notation in the respective Wikipedia articles.
Correlation enforcement and variable sample visualization capabilities.
Probability calculations using conventional comparison operators.
Advanced Scipy statistical function compatibility with package functions.
Installation
Required Packages
The following packages should be installed automatically (if using pip or easy_install), otherwise they will need to be installed manually:
NumPy : Numeric Python
SciPy : Scientific Python
Matplotlib : Python plotting library
These packages come standard in Python(x,y), Spyder, and other scientific computing python bundles.
How to install
You have several easy, convenient options to install the mcerp package (administrative privileges may be required)
Simply copy the unzipped mcerp-XYZ directory to any other location that python can find it and rename it mcerp.
From the command-line, do one of the following:
Manually download the package files below, unzip to any directory, and run:
$ [sudo] python setup.py install
If setuptools is installed, run:
$ [sudo] easy_install --upgrade mcerp
If pip is installed, run:
$ [sudo] pip install --upgrade mcerp
Python 3
To use this package with Python 3.x, you will need to run the 2to3 conversion tool at the command-line using the following syntax while in the unzipped mcerp directory:
$ 2to3 -w .
This should take care of the main changes required. Then, run:
$ python3 setup.py install
If bugs continue to pop up, please email the author.
You can also get the bleeding-edge code from GitHub (though I can’t promise there won’t be stability issues…).
See also
uncertainties : First-order error propagation
soerp : Second-order error propagation
Contact
Please send feature requests, bug reports, or feedback to Abraham Lee.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.