pymc-devs/pymc

Increase support for batched multivariate distributions

Open

#5,383 opened on Jan 24, 2022

View on GitHub
 (9 comments) (0 reactions) (0 assignees)Python (1,902 forks)batch import
enhancementshelp wanted

Repository metrics

Stars
 (7,926 stars)
PR merge metrics
 (Avg merge 11d) (7 merged PRs in 30d)

Description

The logp of several multivariate distributions does not work (or is not tested) for arbitrarily batched dimensions. Some cases I could confirm include:

  • MvNormal - #6897
  • MvStudentT #6897
  • KroneckerNormal
  • MatrixNormal
  • LKJCorr
  • LKJCholeskyCov
  • StickBreakingWeights (alpha) #6042
  • Wishart (may be fine to ignore) #8246
  • CARRV (maybe better to leave this one as is)

Reproducible code:

size = (4, 3)
pm.logp(pm.MvNormal.dist(mu=np.ones(2), cov=np.eye(2), size=size), np.ones((*size, 2)))
# ValueError: Invalid dimension for value: 3
pm.logp(pm.MvStudentT.dist(nu=3, mu=np.ones(2), cov=np.eye(2), size=size), np.ones((*size, 2)))
# ValueError: Invalid dimension for value: 3

Distributions that already support (and have tests for) arbitrary shapes

Contributor guide