UnrollingAverages

A Julia package to deconvolve ("unroll") moving averages of time series to get the original ones back.

https://github.com/inphyt/unrollingaverages.jl

Science Score: 28.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

julia julia-language julia-package reverse-engineering statistics stats time-series time-series-analysis time-series-data time-series-database time-series-transformation

Keywords from Contributors

raytracer julialang
Last synced: 6 months ago · JSON representation ·

Repository

A Julia package to deconvolve ("unroll") moving averages of time series to get the original ones back.

Basic Info
Statistics
  • Stars: 19
  • Watchers: 0
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
julia julia-language julia-package reverse-engineering statistics stats time-series time-series-analysis time-series-data time-series-database time-series-transformation
Created about 4 years ago · Last pushed about 3 years ago
Metadata Files
Readme Funding License Citation

README.md

UnrollingAverages.jl

License: MIT Docs: Stable Docs: Dev CI Compat Helper Format Check Coverage: Codecov Coverage: Coveralls Code Style: Blue DOI

UnrollingAverages is a Julia package aimed at deconvolving (or unrolling) moving averages of time series to get the original ones back.

UnrollingAverages currently assumes that the moving average is a simple moving average. Further relaxations and extensions may come in the future, see Future Developments section.

Installation

Press ] in the Julia REPL and then

nothing pkg> add UnrollingAverages

Usage

The package exports a single function called unroll: it returns a Vector whose elements are the possible original time series.

julia unroll( moving_average::Vector{Float64}, window::Int64; initial_conditions::U=nothing, assert_natural::Bool=false ) where {U<:Union{Tuple{Vararg{Union{Int64,Float64}}},Nothing}}

Arguments

  • moving_average: the time series representing the moving average to unroll ;
  • window: the width of the moving average ;
  • initial_conditions: the initial values of the original time series to be recovered. It may be a Tuple of window-1 positive integer values, or nothing if initial conditions are unknown. Currently it is not possible to specify values in the middle of the time series, this may be a feature to be added in the future ;
  • assert_natural default boolean argument. If true, the pipeline will try to recover a time series of natural numbers only. More then one acceptable time series (where "acceptable" means that it reproduces moving_average) may be found and all will be returned.

A few remarks:

  1. If isnothing(initial_conditions):
    • if assert_natural, then an internal unroll_iterative method is called, which tries to exactly recover the whole time series, initial conditions included. Enter ?UnrollingAverages.unroll_iterative in a Julia to read further details;
    • if !assert_natural, then an internal unroll_linear_approximation method is called. See this StackExchange post. NB: this is an approximated method, it will generally not return the exact original time series;
  2. If typeof(initial_conditions) <: Ntuple{window-1, <:Union{Int64,Float64}}, then an internal unroll_recursive method is called, which exactly recovers the time series. Mathematical details about this function are reported in the documentation, and you may read more by entering ?UnrollingAverages.unroll_recursive.

Future Developments

  • Modify initial_conditions argument of unroll so that it accepts known values throughout the series;
  • Implement reversing methods for other types of moving averages .

How to Contribute

If you wish to change or add some functionality, please file an issue. Some suggestions may be found in the Future Developments section.

How to Cite

If you use this package in your work, please cite this repository using the metadata in CITATION.bib.

Announcements

Owner

  • Name: Interdisciplinary Physics Team (InPhyT)
  • Login: InPhyT
  • Kind: organization
  • Email: inphyt@gmail.com
  • Location: Turin, Italy

Complex Systems Modelling Group: Computational Social Science, Epidemiology and Neuroscience.

Citation (CITATION.bib)

@software{Monticone_Moroni_UnrollingAverages_2021,
         abstract     = {A Julia package to deconvolve ("unroll") moving averages of time series to get the original ones back.},
         author       = {Monticone, Pietro and Moroni, Claudio},
         doi          = {10.5281/zenodo.5725301},
         institution  = {University of Turin},
         keywords     = {Julia Language, Time Series, Statistics, Data Science, Data Analysis, Reverse Engineering},
         license      = {MIT},
         organization = {Interdisciplinary Physics Team (InPhyT)},
         title        = {UnrollingAverages.jl},
         url          = {https://doi.org/10.5281/zenodo.5725301},
         year         = {2021}
         }

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 57
  • Total Committers: 4
  • Avg Commits per committer: 14.25
  • Development Distribution Score (DDS): 0.088
Top Committers
Name Email Commits
Interdisciplinary Physics Team (InPhyT) 6****m@u****m 52
github-actions[bot] 4****]@u****m 3
Interdisciplinary Physics Team (InPhyT) i****t@g****m 1
CompatHelper Julia c****y@j****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 1
  • Total pull requests: 6
  • Average time to close issues: less than a minute
  • Average time to close pull requests: 16 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 4.0
  • Average comments per pull request: 0.17
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JuliaTagBot (1)
Pull Request Authors
  • InterdisciplinaryPhysicsTeam (3)
  • github-actions[bot] (2)
  • ClaudMor (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
juliahub.com: UnrollingAverages

A Julia package to deconvolve ("unroll") moving averages of time series to get the original ones back.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Stargazers count: 24.1%
Average: 26.6%
Forks count: 33.3%
Dependent packages count: 38.9%
Last synced: 6 months ago