{"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/bayotide-bayesian-online-multivariate-time","title":"BayOTIDE: Bayesian Online Multivariate Time series Imputation with functional decomposition","arxiv_id":"2308.14906","date":"2023-08-28","proceeding":null,"authors":["Shikai Fang","Qingsong Wen","Yingtao Luo","Shandian Zhe","Liang Sun"],"abstract":"In real-world scenarios like traffic and energy, massive time-series data with missing values and noises are widely observed, even sampled irregularly. While many imputation methods have been proposed, most of them work with a local horizon, which means models are trained by splitting the long sequence into batches of fit-sized patches. This local horizon can make models ignore global trends or periodic patterns. More importantly, almost all methods assume the observations are sampled at regular time stamps, and fail to handle complex irregular sampled time series arising from different applications. Thirdly, most existing methods are learned in an offline manner. Thus, it is not suitable for many applications with fast-arriving streaming data. To overcome these limitations, we propose BayOTIDE: Bayesian Online Multivariate Time series Imputation with functional decomposition. We treat the multivariate time series as the weighted combination of groups of low-rank temporal factors with different patterns. We apply a group of Gaussian Processes (GPs) with different kernels as functional priors to fit the factors. For computational efficiency, we further convert the GPs into a state-space prior by constructing an equivalent stochastic differential equation (SDE), and developing a scalable algorithm for online inference. The proposed method can not only handle imputation over arbitrary time stamps, but also offer uncertainty quantification and interpretability for the downstream application. We evaluate our method on both synthetic and real-world datasets.We release the code at {https://github.com/xuangu-fang/BayOTIDE}","url_abs":"https://arxiv.org/abs/2308.14906v3","url_pdf":"https://arxiv.org/pdf/2308.14906v3.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":"bayotide-bayesian-online-multivariate-time","repo_url":"https://github.com/xuangu-fang/bayotide","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"computational-efficiency","task_name":"Computational Efficiency"},{"task_slug":"gaussian-processes","task_name":"Gaussian Processes"},{"task_slug":"imputation","task_name":"Imputation"},{"task_slug":"missing-values","task_name":"Missing Values"},{"task_slug":"multivariate-time-series-imputation","task_name":"Multivariate Time Series Imputation"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"uncertainty-quantification","task_name":"Uncertainty Quantification"}],"methods":[{"method_slug":"gps","method_name":"GPS"},{"method_slug":"fail","method_name":"fail"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.14906","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.14906"}},"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/xuangu-fang/bayotide","reach":null}],"summary":{"ran_honours":4,"ran":1,"unverified":1},"by_repo_kind":{"official":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"1b3555f7c202df84","entry":"CRPS_score","repo":"xuangu-fang/bayotide","repo_kind":"official","path":"model_BayOTIDE.py","file_url":"https://github.com/xuangu-fang/bayotide/blob/HEAD/model_BayOTIDE.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1b3555f7c202df84"}},{"code_sha256_prefix":"23883a05d1156bef","entry":"LDS_GP_streaming","repo":"xuangu-fang/bayotide","repo_kind":"official","path":"model_BayOTIDE.py","file_url":"https://github.com/xuangu-fang/bayotide/blob/HEAD/model_BayOTIDE.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"23883a05d1156bef"}},{"code_sha256_prefix":"0eabe6591b009ad0","entry":"calc_denominator","repo":"xuangu-fang/bayotide","repo_kind":"official","path":"model_BayOTIDE.py","file_url":"https://github.com/xuangu-fang/bayotide/blob/HEAD/model_BayOTIDE.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0eabe6591b009ad0"}},{"code_sha256_prefix":"1a3407a061d6af02","entry":"neg_llk","repo":"xuangu-fang/bayotide","repo_kind":"official","path":"model_BayOTIDE.py","file_url":"https://github.com/xuangu-fang/bayotide/blob/HEAD/model_BayOTIDE.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1a3407a061d6af02"}},{"code_sha256_prefix":"ff7efc68e98e1d55","entry":"quantile_loss","repo":"xuangu-fang/bayotide","repo_kind":"official","path":"model_BayOTIDE.py","file_url":"https://github.com/xuangu-fang/bayotide/blob/HEAD/model_BayOTIDE.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ff7efc68e98e1d55"}},{"code_sha256_prefix":"8bbacf578f49ecb1","entry":"BayTIDE","repo":"xuangu-fang/bayotide","repo_kind":"official","path":"model_BayOTIDE.py","file_url":"https://github.com/xuangu-fang/bayotide/blob/HEAD/model_BayOTIDE.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8bbacf578f49ecb1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}