{"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/arxiv-2608-10891","title":"Benchmarking Time Series Generation Methods for Privacy-Preserving Forecasting","arxiv_id":"2608.10891","date":"2026-08-11","proceeding":null,"authors":["Luis Amorim","Vitor Cerqueira","Moises Santos","Paulo J. Azevedo","Carlos Soares"],"abstract":"Time series forecasting in privacy-sensitive domains often requires training models on released data rather than original observations. Synthetic time series generation has been developed primarily for data augmentation, where generated series supplement the original training set. How well these methods perform when fully replacing the original data - and how much privacy risk the released series carry - remains underexplored. We address this gap through a benchmark evaluating synthetic generation methods and noise-based anonymization baselines under a Train on Synthetic, Test on Real (TSTR) protocol. We jointly assess forecasting performance and distance-based empirical privacy risk across seven datasets, characterizing the trade-off between these objectives. We also introduce Grasynda-P, a privacy-motivated extension of the graph-based generator Grasynda, incorporating matrix ensembling and kernel density estimation. Our results show that: (1) no generation method fully substitutes for original training data; (2) noise-based anonymization yields the strongest privacy but the worst forecasting performance; (3) simple transformation-based generators outperform deep generative models for forecasting in this setting; and (4) Grasynda-P lies on the Pareto frontier, achieving competitive forecasting with stronger privacy separation than other generators. This benchmark establishes a reference point for evaluating and developing new privacy-aware synthetic time series generation methods.","url_abs":"https://arxiv.org/abs/2608.10891","url_pdf":"https://arxiv.org/pdf/2608.10891","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2608.10891","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2608.10891"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/Amorim009/Grasynda","reach":null}],"summary":{"ran":7,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":9,"ran":7,"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":9,"samples":[{"code_sha256_prefix":"a9d545514d7aab3d","entry":"load_data","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"src/timevae/data_utils.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/src/timevae/data_utils.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":"a9d545514d7aab3d"}},{"code_sha256_prefix":"cb766fcbb3b56728","entry":"load_final_nhits_best_params","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"run_universal_experiments.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/run_universal_experiments.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":"cb766fcbb3b56728"}},{"code_sha256_prefix":"02323b4ec8b58f09","entry":"load_latest_random_search_best_params","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"run_universal_experiments.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/run_universal_experiments.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":"02323b4ec8b58f09"}},{"code_sha256_prefix":"55cbda5ae15d39e5","entry":"load_yaml_file","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"src/timevae/data_utils.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/src/timevae/data_utils.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":"55cbda5ae15d39e5"}},{"code_sha256_prefix":"20c0352334f78ce3","entry":"make_alpha_per_series","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"src/timevae_wrapper_gpu.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/src/timevae_wrapper_gpu.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":"20c0352334f78ce3"}},{"code_sha256_prefix":"3e6ee92de83bf88f","entry":"masked_mse_np","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"src/timevae_wrapper_gpu.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/src/timevae_wrapper_gpu.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":"3e6ee92de83bf88f"}},{"code_sha256_prefix":"5a0371ea399c03a5","entry":"masked_mse_per_series","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"src/timevae_wrapper_gpu.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/src/timevae_wrapper_gpu.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":"5a0371ea399c03a5"}},{"code_sha256_prefix":"50c8fcc9f625eac2","entry":"build_hybrid_q10_generator","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"run_universal_experiments.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/run_universal_experiments.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":"50c8fcc9f625eac2"}},{"code_sha256_prefix":"3d20f07d2e1ba948","entry":"load_final_model_best_params","repo":"Amorim009/Grasynda","repo_kind":"found_in_text","path":"run_universal_experiments_gpu.py","file_url":"https://github.com/Amorim009/Grasynda/blob/HEAD/run_universal_experiments_gpu.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":"3d20f07d2e1ba948"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}