{"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/beyond-cox-models-assessing-the-performance","title":"Beyond Cox Models: Assessing the Performance of Machine-Learning Methods in Non-Proportional Hazards and Non-Linear Survival Analysis","arxiv_id":"2504.17568","date":"2025-04-24","proceeding":null,"authors":["Ivan Rossi","Flavio Sartori","Cesare Rollo","Giovanni Birolo","Piero Fariselli","Tiziana Sanavia"],"abstract":"Survival analysis often relies on Cox models, assuming both linearity and proportional hazards (PH). This study evaluates machine and deep learning methods that relax these constraints, comparing their performance with penalized Cox models on a benchmark of three synthetic and three real datasets. In total, eight different models were tested, including six non-linear models of which four were also non-PH. Although Cox regression often yielded satisfactory performance, we showed the conditions under which machine and deep learning models can perform better. Indeed, the performance of these methods has often been underestimated due to the improper use of Harrell's concordance index (C-index) instead of more appropriate scores such as Antolini's concordance index, which generalizes C-index in cases where the PH assumption does not hold. In addition, since occasionally high C-index models happen to be badly calibrated, combining Antolini's C-index with Brier's score is useful to assess the overall performance of a survival method. Results on our benchmark data showed that survival prediction should be approached by testing different methods to select the most appropriate one according to sample size, non-linearity and non-PH conditions. To allow an easy reproducibility of these tests on our benchmark data, code and documentation are freely available at https://github.com/compbiomed-unito/survhive.","url_abs":"https://arxiv.org/abs/2504.17568v1","url_pdf":"https://arxiv.org/pdf/2504.17568v1.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":"beyond-cox-models-assessing-the-performance","repo_url":"https://github.com/compbiomed-unito/survhive","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"survival-analysis","task_name":"Survival Analysis"},{"task_slug":"survival-prediction","task_name":"Survival Prediction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2504.17568","atlas_url":"https://app.syntology.ai/?focus=2504.17568","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2504.17568"}},"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/compbiomed-unito/survhive","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":"cfe81e2e242d42e4","entry":"generate_topology_grid","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/optimization.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/optimization.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cfe81e2e242d42e4"}},{"code_sha256_prefix":"c37834227cbc4c2d","entry":"get_grid_size","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/optimization.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/optimization.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c37834227cbc4c2d"}},{"code_sha256_prefix":"48d3b393fb5d7a99","entry":"get_indicator","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/util.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"48d3b393fb5d7a99"}},{"code_sha256_prefix":"3002db785bb548c1","entry":"get_time","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/util.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3002db785bb548c1"}},{"code_sha256_prefix":"6489bbb466df745e","entry":"make_survival_scorer","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/metrics.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/metrics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6489bbb466df745e"}},{"code_sha256_prefix":"179a976dea96da76","entry":"load_test_data","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/util.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/util.py","link_basis":"harvester_set","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":"179a976dea96da76"}},{"code_sha256_prefix":"f8307c44b9a2a34b","entry":"optimize","repo":"compbiomed-unito/survhive","repo_kind":"official","path":"survhive/optimization.py","file_url":"https://github.com/compbiomed-unito/survhive/blob/HEAD/survhive/optimization.py","link_basis":"harvester_set","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":"f8307c44b9a2a34b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}