Uncertainty wrapper using estimated Jacobian

## Project description

## UncertaintyWrapper

Use `@unc_wrapper` decorator to wrap any Python callable to append the
covariance and Jacobian matrices to the return values. See documentation and
tests for usage and examples.

### Installation

Use `pip install UncertaintyWrapper` to install from
PyPI or download a source
distribution, extract and use `python setup.py install`.

### Requirements

#### Optional Requirements

- Nose for testing.
- Sphinx to build documentation.
- NREL SOLPOS for testing
- AlgoPy for testing

### Usage

Example:

from uncertainty_wrapper import unc_wraper import numpy as np @unc_wrapper def f(x): return np.exp(x) x, cov = np.array([[1.0]]), np.array([[0.1]]) f(x, __covariance__=cov)

Returns:

(array([[ 2.71828183]]), # exp(1.0) array([[[ 0.73890561]]]), # (delta-f)^2 = (df/dx)^2 * (delta-x)^2 array([[[ 2.71828183]]])) # df/dx = exp(x)

### History

Releases are named after geological eons, periods and epochs.

#### v0.4.1 Paleozoic Era

- Jagged arrays of covariance keys work now.
- simplify

#### v0.4 Phanerozoic Era

- Fixes #5,
`ValueError`if covariance keys have multiple observations - fix covariance cross terms not scaled correctly

#### v0.3.3 Neoproterozoic Era

- Fixes #4,
`ValueError`if just one observation

#### v0.3.2 Mesoproterozoic Era

- Fixes #2, don’t need to tile scalar x for multiple observations
- Fixes #3, use sparse matrices for dot product instead of dense
- uses pvlib example instead of proprietary solar_utils

#### v0.3.1 Paleoproterozoic Era

- Fixes #1 works with Pint’s @ureg.wraps()
- Use indices for positional arguments. Don’t use inspect.argspec since not guaranteed to be the same for wrapped or decorated functions
- Test Jacobian estimate for IV with AlgoPy
- Show Jacobian errors plot in getting started docs.

#### v0.3 Proterozoic Eon

- new
`unc_wrapper_args()`allows selection of independent variables that the partial derivatives are with respect to and also grouping those arguments together so that in the original function they can stay unpacked. - return values are grouped correctly so that they can remain unpacked in original function. These allow Uncertainty Wrapper to be used with Pint’s wrapper
- covariance now specified as dimensionaless fraction of square of arguments
- more complex tests: IV curve and solar position (requires NREL’s solpos)

#### v0.2.1 Eoarchean Era

- update documentation

#### v0.2 Archean Eon

- Fix nargs and nf order mixup in Jacobian
- add more complex test
- fix tile cov by nobs
- move partial derivative to subfunction
- try threading, but same speed, and would only work with NumPy anyway

#### v0.1 Hadean Eon

- adds covariance to output
- allows __covariance__ to be passed as input
- uses estimate Jacobian based on central finite difference method

## Project details

## Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help | File type | Python version | Upload date |
---|---|---|---|

uncertainty_wrapper-0.4.1-py2-none-any.whl (27.2 kB) Copy SHA256 hash SHA256 | Wheel | 2.7 | May 6, 2016 |

uncertainty_wrapper-0.4.1.zip (29.9 kB) Copy SHA256 hash SHA256 | Source | None | May 6, 2016 |