Fix numerical issues inside p-value computation #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Have been getting
inf
negative log p-values where the correct numbers are reasonable (e.g. 60). This is because the computation involves direct p-values that are then log transformed. This doesn't give us any numerical stability benefits.This is not a full solution. It just fixes some floating point issues.
Would be ideal to have a C++ version of
scipy.stats.distributions.t.logsf
, in which the log p-value is computed entirely in log space to avoid over/underflow before the log is applied.