Skip to content
This repository was archived by the owner on Nov 19, 2020. It is now read-only.
This repository was archived by the owner on Nov 19, 2020. It is now read-only.

MultivariateNormal can't handle semi-positive definite covariance matrix #1019

@xieliaing

Description

@xieliaing

What would you like to submit? (put an 'x' inside the bracket that applies)

  • question
  • bug report
  • feature request

Robust Multivariate Normal Sampling with semi-PD cov matrix

generate method in MultivariateNormalDistribution class requires strictly positive definite covariance matrix but in reality, we could facing cases where a semi-PD covariance matrix is present and we still want to do sampling which is 100% valid. Think of a case where you have two columns that are 100% correlated.

Current implementation leverages on Cholesky Decomposition for the following formula:
Cov = L'L
z~N(0, I)
sample = \mu + L'z
Cholesky Decomposition requires strictly PD cov matrix but its variant LDL' decomposition is able to handle semi-PD cov matrix and is considered as a robust alternative.

I can contribute the LDL' decomposition

Note: If you would like to support the development for this feature or resolution of this bug, consider adding a bounty to it later in https://www.bountysource.com/teams/accord-net/issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions