stdlib-js / stdlib-js/stdlib

Logarithm of the Cumulative Distribution Function for a Student's t distribution.

Open
#2,528 5 comments 0 reactions 1 assignee Claimed by @Planeshifter View on GitHub
Needs Discussion Statistics
Dominant language
JavaScript
Stars
6k
Forks
1.3k
Avg merge
1d 3h
Merged PRs (30d)
611

Description

1. The formula for F(x;nu) in the documentation is only valid for x>0.

image

Wikipedia uses t (not x), but gives the same formula, but for t>0 only:

image

From "Sampling Student’s T distribution – use of the inverse cumulative distribution function" by William T. Shaw:
image

And the same formula is returned by `wolframscript`:
![image](https://github.com/stdlib-js/stdlib/assets/461765/740b5b1d-1c54-4a48-9d77-a8972114058b)

2. There is a problem in the implementation of `logcdf`.
The implementation basically computes the normal cdf-probability and then takes the logarithm.
This defeats the purpose of having a `logcdf`, which is meant to be used when `cdf(x)` is
so small it is rounded to 0.

The formula for `cdf` uses the incomplete beta function, which in turn uses `beta`.
Your project includes an `betaln` which computes the logarithm of a beta value.
A solution must be to use `betaln` to implement an "logarithm of a regularized, incomplete beta function"
and use that to implement `logcdf`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.