{"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/the-brier-score-under-administrative","title":"The Brier Score under Administrative Censoring: Problems and Solutions","arxiv_id":"1912.08581","date":"2019-12-18","proceeding":null,"authors":["Håvard Kvamme","Ørnulf Borgan"],"abstract":"The Brier score is commonly used for evaluating probability predictions. In survival analysis, with right-censored observations of the event times, this score can be weighted by the inverse probability of censoring (IPCW) to retain its original interpretation. It is common practice to estimate the censoring distribution with the Kaplan-Meier estimator, even though it assumes that the censoring distribution is independent of the covariates. This paper discusses the general impact of the censoring estimates on the Brier score and shows that the estimation of the censoring distribution can be problematic. In particular, when the censoring times can be identified from the covariates, the IPCW score is no longer valid. For administratively censored data, where the potential censoring times are known for all individuals, we propose an alternative version of the Brier score. This administrative Brier score does not require estimation of the censoring distribution and is valid even if the censoring times can be identified from the covariates.","url_abs":"https://arxiv.org/abs/1912.08581v1","url_pdf":"https://arxiv.org/pdf/1912.08581v1.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":"the-brier-score-under-administrative","repo_url":"https://github.com/havakv/pycox","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"the-brier-score-under-administrative","repo_url":"https://github.com/loft-br/xgboost-survival-embeddings","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"survival-analysis","task_name":"Survival Analysis"},{"task_slug":null,"task_name":"valid"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1912.08581","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1912.08581"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/loft-br/xgboost-survival-embeddings","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/havakv/pycox","reach":null}],"summary":{"unverified":10},"by_repo_kind":{"listed":{"samples":10,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"6109e771b2fbc50d","entry":"approx_brier_score","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/metrics.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6109e771b2fbc50d"}},{"code_sha256_prefix":"ab974e0e5d7b823d","entry":"calculate_exp_boundary","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/non_parametric.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/non_parametric.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ab974e0e5d7b823d"}},{"code_sha256_prefix":"53d59eb8921713e0","entry":"check_xgboost_parameters","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/_feature_extractors.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/_feature_extractors.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"53d59eb8921713e0"}},{"code_sha256_prefix":"4f297c0d0275886e","entry":"concordance_index","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/metrics.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4f297c0d0275886e"}},{"code_sha256_prefix":"7dfeac8c842a5768","entry":"convert_data_to_xgb_format","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/converters.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/converters.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7dfeac8c842a5768"}},{"code_sha256_prefix":"d26026c9c19bdd6d","entry":"convert_to_structured","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/converters.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/converters.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d26026c9c19bdd6d"}},{"code_sha256_prefix":"d24741fb9abd3df2","entry":"convert_y","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/converters.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/converters.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d24741fb9abd3df2"}},{"code_sha256_prefix":"c5f263c5e424dabd","entry":"dist_calibration_score","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/metrics.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/metrics.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c5f263c5e424dabd"}},{"code_sha256_prefix":"c641555a1cafd15e","entry":"get_time_bins","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/non_parametric.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/non_parametric.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c641555a1cafd15e"}},{"code_sha256_prefix":"a05bebfafbf61bd4","entry":"sort_and_add_zeros","repo":"loft-br/xgboost-survival-embeddings","repo_kind":"listed","path":"xgbse/non_parametric.py","file_url":"https://github.com/loft-br/xgboost-survival-embeddings/blob/HEAD/xgbse/non_parametric.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a05bebfafbf61bd4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}