TruncNorm
Arbitrary order moments for truncated multivariate normal distributions.
Introduction
Given
X ~ N(m, C), a <= X <= b
with mean vector m, covariance matrix C, lower limit vector a and upper
limit vector b,
import truncnorm
truncnorm.moments(m, C, a, b, 4)
returns all the following moments of total order less or equal to 4 as a list:
[
P(a<=X<=b), (scalar)
E[X_i], (N vector)
E[X_i*X_j], (NxN matrix)
E[X_i*X_j*X_k], (NxNxN array)
E[X_i*X_j*X_k*X_l], (NxNxNxN array)
]
for all i, j, k and l. Note that the first element in the list is a bit
of a special case. That's because E[1] is trivially 1 so giving the
normalisation constant instead is much more useful.
TODO
- Double truncation
- Numerical stability could probably be increased by using logarithic scale in critical places of the algorithm
- Sampling (see Gessner et al below)
- Folded distribution
- Optimize recurrent integrals by using vector and index-mapping representation instead of arrays. Using arrays makes computations efficient and simple, but same elements are computed multiple times because of symmetry in the moments.
References
-
"On Moments of Folded and Truncated Multivariate Normal Distributions" by Raymond Kan & Cesare Robotti, 2016
-
"Integrals over Gaussians under Linear Domain Constraints" by Alexandra Gessner & Oindrila Kanjilal & Philipp Hennig, 2020
Metadata
Release files for truncnorm 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| truncnorm-0.0.2.tar.gz | 7.2 kB | Details |
Release files / truncnorm-0.0.2.tar.gz
| Download URL | truncnorm-0.0.2.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0fab29ccb2df76651a136f89f80e956bb099cde6fda6b26bde76f948d01698e8
|
|
BLAKE2b-256 checksum How to use checksums |
368ffcce97da63b7b00d35812362c3fae912bc36526444f4b9cb21d36de44a6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/4.0.2 CPython/3.11.8
|