{"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/time-series-deconfounder-estimating-treatment","title":"Time Series Deconfounder: Estimating Treatment Effects over Time in the Presence of Hidden Confounders","arxiv_id":"1902.00450","date":"2019-02-01","proceeding":"ICML 2020 1","authors":["Ioana Bica","Ahmed M. Alaa","Mihaela van der Schaar"],"abstract":"The estimation of treatment effects is a pervasive problem in medicine. Existing methods for estimating treatment effects from longitudinal observational data assume that there are no hidden confounders, an assumption that is not testable in practice and, if it does not hold, leads to biased estimates. In this paper, we develop the Time Series Deconfounder, a method that leverages the assignment of multiple treatments over time to enable the estimation of treatment effects in the presence of multi-cause hidden confounders. The Time Series Deconfounder uses a novel recurrent neural network architecture with multitask output to build a factor model over time and infer latent variables that render the assigned treatments conditionally independent; then, it performs causal inference using these latent variables that act as substitutes for the multi-cause unobserved confounders. We provide a theoretical analysis for obtaining unbiased causal effects of time-varying exposures using the Time Series Deconfounder. Using both simulated and real data we show the effectiveness of our method in deconfounding the estimation of treatment responses over time.","url_abs":"https://arxiv.org/abs/1902.00450v4","url_pdf":"https://arxiv.org/pdf/1902.00450v4.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":"time-series-deconfounder-estimating-treatment","repo_url":"https://bitbucket.org/mvdschaar/mlforhealthlabpub","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"time-series-deconfounder-estimating-treatment","repo_url":"https://github.com/ioanabica/Time-Series-Deconfounder","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"causal-inference","task_name":"Causal Inference"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"}],"methods":[{"method_slug":"causal-inference","method_name":"Causal inference"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1902.00450","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1902.00450"}},"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/ioanabica/Time-Series-Deconfounder","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://bitbucket.org/mvdschaar/mlforhealthlabpub","reach":null}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"c17b0ad606536eef","entry":"compute_predictive_checks_eval_metric","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"utils/predictive_checks_utils.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/utils/predictive_checks_utils.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":"c17b0ad606536eef"}},{"code_sha256_prefix":"0e7ef3ed19120c98","entry":"compute_test_statistic_all_timesteps","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"utils/predictive_checks_utils.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/utils/predictive_checks_utils.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":"0e7ef3ed19120c98"}},{"code_sha256_prefix":"8d4ca4c79c1e789b","entry":"convert_to_tf_dataset","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"rmsn/core_routines.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/rmsn/core_routines.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":"8d4ca4c79c1e789b"}},{"code_sha256_prefix":"2a8ccd2bd649a431","entry":"get_dataset_splits","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"time_series_deconfounder.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/time_series_deconfounder.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":"2a8ccd2bd649a431"}},{"code_sha256_prefix":"93dde245ceafbc0c","entry":"get_parameters_from_string","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"rmsn/configs.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/rmsn/configs.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":"93dde245ceafbc0c"}},{"code_sha256_prefix":"e44ac986e2579df6","entry":"linear","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"rmsn/libs/net_helpers.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/rmsn/libs/net_helpers.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":"e44ac986e2579df6"}},{"code_sha256_prefix":"d78cd8d573b89986","entry":"randomise_minibatch_index","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"rmsn/libs/net_helpers.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/rmsn/libs/net_helpers.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":"d78cd8d573b89986"}},{"code_sha256_prefix":"5bd3abf588391af9","entry":"reshape_for_sklearn","repo":"ioanabica/Time-Series-Deconfounder","repo_kind":"official","path":"rmsn/libs/net_helpers.py","file_url":"https://github.com/ioanabica/Time-Series-Deconfounder/blob/HEAD/rmsn/libs/net_helpers.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":"5bd3abf588391af9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}