Moments for doubly truncated multivariate normal distributions
Project description
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
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
File details
Details for the file truncnorm-0.0.2.tar.gz
.
File metadata
- Download URL: truncnorm-0.0.2.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fab29ccb2df76651a136f89f80e956bb099cde6fda6b26bde76f948d01698e8 |
|
MD5 | a64e1ce75ecbc0d33804af779e2424c6 |
|
BLAKE2b-256 | 368ffcce97da63b7b00d35812362c3fae912bc36526444f4b9cb21d36de44a6f |