Skip to main content

Uncertainty wrapper using estimated Jacobian

Project description

https://travis-ci.org/BreakingBytes/UncertaintyWrapper.svg?branch=master

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

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


Download files

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

Source Distribution

UncertaintyWrapper-0.4.2.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

UncertaintyWrapper-0.4.2-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file UncertaintyWrapper-0.4.2.tar.gz.

File metadata

  • Download URL: UncertaintyWrapper-0.4.2.tar.gz
  • Upload date:
  • Size: 20.9 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

Hashes for UncertaintyWrapper-0.4.2.tar.gz
Algorithm Hash digest
SHA256 522426e0b63f8a2dc10d23c0a9e95fcb3874e8884967e4bd8112fc797c8ad874
MD5 cf81dedc0ba86a6678f7f99282ad5d87
BLAKE2b-256 7817a0afb8958078222cd30452424b16560b0fafed5d108660ec4d6e642b085b

See more details on using hashes here.

File details

Details for the file UncertaintyWrapper-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: UncertaintyWrapper-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

Hashes for UncertaintyWrapper-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0d2f18285d28798f4ea4e88c3a3da62bc5096a72cc517167ad88ad0d8d7feab5
MD5 e1ddd830b0d2fc0714bf23a9d5f82923
BLAKE2b-256 a253c42f1e024520b71a422b1b354770c8c793c259623de29d101f16ddb727f6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page