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
[REVIEW]: Fast Resampling and Monte Carlo Methods in Python #5092
Comments
Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks. For a list of things I can do to help you, just type:
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
|
|
Wordcount for |
|
Dear @coatless, Dear @SaranjeetKaur This is the review thread. Firstly, type
to generate your own checklist. In that checklist, there are 23 check items. Whenever you complete the corresponding task, you can check off them. Please write your comments as separate posts and do not modify your checklist descriptions. The review process is interactive so you can always interact with the authors, reviewers, and the editor. You can also create issues and pull requests in the target repository. Please do mention this thread's URL in the issues so we can keep tracking what is going on out of our world. Please do not hesitate to ask me about anything, anytime. Thank you in advance! |
@coatless, @SaranjeetKaur - could you please generate your task list and update your status? thank you in advance. |
@coatless, @SaranjeetKaur - After three weeks from assigning as reviewers, I am still failed to get at least a life signal from you (Are you fine?). Please generate your task lists to start your review. If you are not available, please ping me, so I can find another reviewers to proceed. Thank you in advance. |
@coatless - no worries, thank you for the response @SaranjeetKaur - We are waiting to hear from you also. Thank you in advance. |
@jbytecode - I am looking at this thread now |
Review checklist for @SaranjeetKaurConflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
|
Since the paper is about specific contributions to a much larger library (as discussed in #5047 (comment)), I thought it might be helpful to point out some relevant files. License: SciPy's license file is available at https://github.com/scipy/scipy/blob/main/LICENSE.txt. Contributions: The "blame" of Installation: Installation instructions for the whole library are at https://scipy.org/install/. The list of dependencies is available in the environment.yml file. Please use the latest version of SciPy (1.10.1) for best results. Documentation: The scipy.stats API reference includes both input/output documentation and examples. More realistic usage examples are available in the scipy.stats tutorials. Tests: Automated tests are in Community Guidlines: Community guidelines are available in the Developer Documentation. Functionality: One way of verifying the functionality would be to follow the examples in the API reference. For example, the documentation of Performance: The paper claims that these methods are "fast" because "the functions take advantage of vectorized user code, avoiding slow Python loops". There is an easy way to verify this. All three functions accept an argument
For example, the relevant parts of the `scipy.stats.bootstrap` example are:
import numpy as np
rng = np.random.default_rng()
from scipy.stats import norm
dist = norm(loc=2, scale=4) # our "unknown" distribution
data = dist.rvs(size=100, random_state=rng)
from scipy.stats import bootstrap
data = (data,) # samples must be in a sequence
# np.std is vectorized
%timeit bootstrap(data, statistic=np.std, confidence_level=0.9, random_state=rng)
# 12.2 ms ± 2.01 ms per loop (mean ± std. dev. of 7 runs, 100 loops each) If we redefine the statistic so that it is not vectorized: # remove the axis argument so that the statistic can only operate on one 1d sample at a time
%timeit bootstrap(data, statistic=lambda x: np.std(x), confidence_level=0.9, random_state=rng)
# 266 ms ± 14.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) As an independent check, a naive implementation of the (percentile) bootstrap would be: n_resamples = 9999 # default for `bootstrap`
def naive_bootstrap(data):
bootstrap_distribution = []
for j in range(9999):
i = rng.integers(len(data), size=len(data))
bootstrap_distribution.append(np.std(data[i]))
return np.percentile(bootstrap_distribution, [5, 95])
%timeit naive_bootstrap(data[0])
# 265 ms ± 1.92 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) I hope this helps!
|
@mdhaber - of course, addition to this, you can provide some reproducible test benchmark if exists. thank you. |
Thanks @jbytecode I added notes on how one might begin to verify the functionality and performance claims. I'd be happy to provide other examples if it would help! |
@coatless, @SaranjeetKaur - Could you please update your status and inform us on how is your review going? Thank you in advance. |
Hi @jbytecode - I have reviewed it for general checks and am yet to test the software functionality and documentation part. |
@SaranjeetKaur - Thank you for responding and updating your status. |
@coatless, @SaranjeetKaur - Could you please update your status and tell us how is your review going? Thank you in advance. |
@coatless, @SaranjeetKaur - Is it possible to get a life signal? Could you please update your status? Thank you in advance. |
Dear @coatless and @SaranjeetKaur, I am so sorry if I am bothering you. We are a little bit ahead of normal review times. Moreover, I can only reach the reviewers by email which in turn does not give me a significant result. Please declare your availability and set a deadline in a few days. If you are not able to review this manuscript let me know, so I'll find new reviewers. Thank you in advance. |
@mdhaber - it might be helpful to add link to the references in the section "Statement of need" (that is, for all the 3 questions, when you are sharing examples which were introduced in the Summary) Also when you are describing the state of the ecosystem before the release of SciPy 1.9.0 and how it was partially met by tutorials, blog posts, medium.com, and niche packages - share some references here too, if possible. |
@mdhaber - sure |
@mdhaber - if commits are only on manuscript and bibtex, it is okay, we can proceed with the current one. |
Good to know. But I went ahead and recreated it. Same URL. |
@editorialbot set v1.10.0-joss-article as version @mdhaber - we can now go on with the archive creation. most authors choose Zenodo. please create an archive associated to this version tag and report the DOI here. |
Done! version is now v1.10.0-joss-article |
10.5281/zenodo.8031631 |
@mdhaber - In the software repo, it seems the license is |
@editorialbot set 10.5281/zenodo.8031631 as archive |
Done! archive is now 10.5281/zenodo.8031631 |
@editorialbot check references |
|
@editorialbot generate pdf |
@mdhaber - All of the stuff looks fine to me. I am now recommending an acceptance. The track editor or editor-in-chief will have the final decision. Thank you! |
@editorialbot recommend-accept |
|
|
👋 @openjournals/dsais-eics, this paper is ready to be accepted and published. Check final proof 👉📄 Download article If the paper PDF and the deposit XML files look good in openjournals/joss-papers#4302, then you can now move forward with accepting the submission by compiling again with the command |
@editorialbot accept |
|
Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository. If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file. You can copy the contents for your CITATION.cff file here: CITATION.cff
If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation. |
🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘 |
🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨 Here's what you must now do:
Any issues? Notify your editorial technical team... |
🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉 If you would like to include a link to your paper from your README use the following code snippets:
This is how it will look in your documentation: We need your help! The Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:
|
Thanks, everyone! |
Submitting author: @mdhaber (Matt Haberland)
Repository: https://github.com/mdhaber/scipy
Branch with paper.md (empty if default branch): joss_resampling
Version: v1.10.0-joss-article
Editor: @jbytecode
Reviewers: @SaranjeetKaur, @kose-y
Archive: 10.5281/zenodo.8031631
Status
Status badge code:
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
Reviewer instructions & questions
@coatless & @SaranjeetKaur, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @jbytecode know.
✨ Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest ✨
Checklists
📝 Checklist for @SaranjeetKaur
📝 Checklist for @kose-y
The text was updated successfully, but these errors were encountered: