{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/ksd-aggregated-goodness-of-fit-test","title":"KSD Aggregated Goodness-of-fit Test","arxiv_id":"2202.00824","date":"2022-02-02","proceeding":null,"authors":["Antonin Schrab","Benjamin Guedj","Arthur Gretton"],"abstract":"We investigate properties of goodness-of-fit tests based on the Kernel Stein Discrepancy (KSD). We introduce a strategy to construct a test, called KSDAgg, which aggregates multiple tests with different kernels. KSDAgg avoids splitting the data to perform kernel selection (which leads to a loss in test power), and rather maximises the test power over a collection of kernels. We provide non-asymptotic guarantees on the power of KSDAgg: we show it achieves the smallest uniform separation rate of the collection, up to a logarithmic term. For compactly supported densities with bounded model score function, we derive the rate for KSDAgg over restricted Sobolev balls; this rate corresponds to the minimax optimal rate over unrestricted Sobolev balls, up to an iterated logarithmic term. KSDAgg can be computed exactly in practice as it relies either on a parametric bootstrap or on a wild bootstrap to estimate the quantiles and the level corrections. In particular, for the crucial choice of bandwidth of a fixed kernel, it avoids resorting to arbitrary heuristics (such as median or standard deviation) or to data splitting. We find on both synthetic and real-world data that KSDAgg outperforms other state-of-the-art quadratic-time adaptive KSD-based goodness-of-fit testing procedures.","url_abs":"https://arxiv.org/abs/2202.00824v6","url_pdf":"https://arxiv.org/pdf/2202.00824v6.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"ksd-aggregated-goodness-of-fit-test","repo_url":"https://github.com/antoninschrab/ksdagg","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":null},{"paper_slug":"ksd-aggregated-goodness-of-fit-test","repo_url":"https://github.com/antoninschrab/ksdagg-paper","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2202.00824","atlas_url":"https://app.syntology.ai/?focus=2202.00824","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2202.00824"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/antoninschrab/ksdagg","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/antoninschrab/ksdagg-paper","reach":null}],"summary":{"ran_honours":2,"ran_draft_wrong":1,"ran_fixture":1,"unverified":2},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"named_in_paper":{"samples":2,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":3,"samples":[{"code_sha256_prefix":"35e8a1dce671edd0","entry":"create_weights","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"35e8a1dce671edd0"}},{"code_sha256_prefix":"297f50cd6da36f51","entry":"create_weights","repo":"antoninschrab/ksdagg","repo_kind":"official","path":"ksdagg/np.py","file_url":"https://github.com/antoninschrab/ksdagg/blob/HEAD/ksdagg/np.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"297f50cd6da36f51"}},{"code_sha256_prefix":"f3d6af9cdda0f3d5","entry":"jax_distances","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"f3d6af9cdda0f3d5"}},{"code_sha256_prefix":"312c1dced4120601","entry":"ksdagg","repo":"antoninschrab/ksdagg-paper","repo_kind":"named_in_paper","path":"ksdagg/np.py","file_url":"https://github.com/antoninschrab/ksdagg-paper/blob/HEAD/ksdagg/np.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"312c1dced4120601"}},{"code_sha256_prefix":"c07fb17178973f65","entry":"ksdagg","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"c07fb17178973f65"}},{"code_sha256_prefix":"c7d475d23ef062c8","entry":"ksdagg","repo":"antoninschrab/ksdagg-paper","repo_kind":"named_in_paper","path":"ksdagg/jax.py","file_url":"https://github.com/antoninschrab/ksdagg-paper/blob/HEAD/ksdagg/jax.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c7d475d23ef062c8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}