stdlib-js / google-summer-of-code

Google Summer of Code resources.
https://github.com/stdlib-js/stdlib
26 stars 7 forks source link

[Idea]: add support for the multivariate normal distribution #11

Open kgryte opened 1 year ago

kgryte commented 1 year ago

Idea

The goal of this idea is to implement the multivariate normal distribution. This distribution is fundamental in a wide variety of statistical applications and will help unblock stdlib in offering additional statistics APIs.

As a starting point, SciPy's multivariate normal distribution API and implementation could provide a suitable point of reference:

Expected Outcomes

Users will be able to evaluate the PDF, CDF, logPDF, and logCDF and be able to draw random variates from a specified distribution.

Involved Software

No other software is necessary. Will require reading reference implementations written in Python, R, and Julia.

Prerequisite Knowledge

JavaScript, Node.js.

Difficulty

Intermediate.

Project Length

175/350 hours. Can be scoped accordingly. A skilled contributor should be able to complete in 175 hours with the potential of using their implementation to implement higher order statistics APIs.

Potential Mentors

@kgryte @Planeshifter @Pranavchiku

kgryte commented 9 months ago

@Planeshifter One of the main prerequisites here is the presence of ndarray linear algebra functionality, correct?

Planeshifter commented 9 months ago

@kgryte Yes; not exactly sure off top of my head what functions will be required for the various distribution functions, but e.g. matrix multiplication, matrix inverse / Cholesky decomposition, and extracting a diagonal matrix come to mind.