{"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/frequency-adaptive-normalization-for-non","title":"Frequency Adaptive Normalization For Non-stationary Time Series Forecasting","arxiv_id":"2409.20371","date":"2024-09-30","proceeding":null,"authors":["Weiwei Ye","Songgaojun Deng","Qiaosha Zou","Ning Gui"],"abstract":"Time series forecasting typically needs to address non-stationary data with evolving trend and seasonal patterns. To address the non-stationarity, reversible instance normalization has been recently proposed to alleviate impacts from the trend with certain statistical measures, e.g., mean and variance. Although they demonstrate improved predictive accuracy, they are limited to expressing basic trends and are incapable of handling seasonal patterns. To address this limitation, this paper proposes a new instance normalization solution, called frequency adaptive normalization (FAN), which extends instance normalization in handling both dynamic trend and seasonal patterns. Specifically, we employ the Fourier transform to identify instance-wise predominant frequent components that cover most non-stationary factors. Furthermore, the discrepancy of those frequency components between inputs and outputs is explicitly modeled as a prediction task with a simple MLP model. FAN is a model-agnostic method that can be applied to arbitrary predictive backbones. We instantiate FAN on four widely used forecasting models as the backbone and evaluate their prediction performance improvements on eight benchmark datasets. FAN demonstrates significant performance advancement, achieving 7.76% ~ 37.90% average improvements in MSE.","url_abs":"https://arxiv.org/abs/2409.20371v1","url_pdf":"https://arxiv.org/pdf/2409.20371v1.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":"frequency-adaptive-normalization-for-non","repo_url":"https://github.com/wayne155/FAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series-forecasting","task_name":"Time Series Forecasting"}],"methods":[{"method_slug":"instance-normalization","method_name":"Instance Normalization"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.20371","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.20371"}},"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/wayne155/FAN","reach":null}],"summary":{"ran":2,"ran_fixture":1,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"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":"4c51dd0e4bd2b789","entry":"FAN","repo":"wayne155/FAN","repo_kind":"official","path":"torch_timeseries/normalizations/FAN.py","file_url":"https://github.com/wayne155/FAN/blob/HEAD/torch_timeseries/normalizations/FAN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4c51dd0e4bd2b789"}},{"code_sha256_prefix":"17a88b90167f1629","entry":"MLPfreq","repo":"wayne155/FAN","repo_kind":"official","path":"torch_timeseries/normalizations/FAN.py","file_url":"https://github.com/wayne155/FAN/blob/HEAD/torch_timeseries/normalizations/FAN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"17a88b90167f1629"}},{"code_sha256_prefix":"4d894ea4df626106","entry":"main_freq_part","repo":"wayne155/fan","repo_kind":"official","path":"torch_timeseries/normalizations/FAN.py","file_url":"https://github.com/wayne155/fan/blob/HEAD/torch_timeseries/normalizations/FAN.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4d894ea4df626106"}},{"code_sha256_prefix":"8f7b0264c7a9cbdd","entry":"main_freq_part","repo":"wayne155/FAN","repo_kind":"official","path":"torch_timeseries/normalizations/FAN.py","file_url":"https://github.com/wayne155/FAN/blob/HEAD/torch_timeseries/normalizations/FAN.py","link_basis":"first_harvest_node","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":"8f7b0264c7a9cbdd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}