-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Time and phase marginalization #71
Time and phase marginalization #71
Conversation
@kazewong this git conflict might need your intervene |
I fixed the conflicts and moved the internal likelihood function into Before merging this, I think it will be beneficial to also migrate the body of the heterodyne likelihood to the same API. |
Yes, that was the plan to have it also included there in another pull request. I can have it also add it there within this one. For relative binning, only phase marginalization will be added; as the time marginalization will then use a non-uniform grid fft, for which I am not sure if it is beneficial (e.g. see Appendix A in https://arxiv.org/abs/2312.06009) |
If it is not a lot of changes, perhaps we can just have it in this PR. On relative binning, I agree we can first add phase marginalization. For time marginalization, I think at some point we can consider using a non-uniform fft package jax-finufft, which to my understand is quite performant. The main issue there currently is the installation will get a bit more complicated than simple |
For the relative binning likelihood; the optimizer finds the following parameters;
I was expecting the marginalization over phase would help the optimizer to get closer to the true parameters, yet, the impact is minimal. For PE, I have two sets of runs with both the reference parameters fixed at the injected parameters, so that we have an apple-to-apple comparison; the corner plots are as follows |
src/jimgw/single_event/utils.py
Outdated
return jnp.log(i0e(x)) + x | ||
|
||
|
||
def original_likelihood(params, h_sky, detectors, freqs, align_time, **kwargs): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer to put the likelihood function in the likelihood.py
file instead of utils.py
. You can leave the logi0 in.
This commit is in response to the issue #2
You may find the comparison corner plots as follows: