Sum loglikelihoods before exponentiating #105
Merged
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.
Order of operations at the end of likelihood() has been switched, which highlighted the opportunity to use a vectorized exp() call in some cases.
The new code should be:
Faster (when
log = FALSE, individual = FALSE
)Created on 2023-11-06 with reprex v2.0.2
More robust
It is often problematic to work with very small values, such as the ones produced by exponentiating a large negative number. This can lead to underflows.
This is one of the reasons why we use log likelihood, as discussed in this SO thread.
Simpler
An
ifelse()
has been removed.Note
This seems like a minimal improvement so submitting this as a draft PR to get opinions. I'm fine with whatever the outcome of this PR is (closed without merging or merged).