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.2 Terreneuvian Series
futurize
remove pint
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
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.
Source Distribution
Built Distribution
File details
Details for the file uncertainty_wrapper-0.4.2.tar.gz
.
File metadata
- Download URL: uncertainty_wrapper-0.4.2.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8592d281fc906daf4a5eeaecef35d94d579ac91b7011ce2fb50aa0b62885f8b |
|
MD5 | f57f4b836fe9a4414d6a3ba1f49570d3 |
|
BLAKE2b-256 | e8800fd3332908d3cd67485b8fdc72ce1f4ad99857569d381036df4f8c311641 |
File details
Details for the file uncertainty_wrapper-0.4.2-py3-none-any.whl
.
File metadata
- Download URL: uncertainty_wrapper-0.4.2-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32c5756a9fdde4aabeb279b9cc14dcfe3649a52220cd614a63eeaad908ac0a3a |
|
MD5 | c1a37883fa91a764eaecbe69b749782d |
|
BLAKE2b-256 | fe6df3e3aeaa4d9cee173519c089e4a2c936b9a04ea5206560e053647a2bb95f |