-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
version 1 #33
Comments
@bkamins version 1 is where the padding stuff happens. along the way a few questions arose. I am adopting an "accumulator" approach to statistics available incrementally. In the first example, with each new For all accumulators, |
What you plan for is very similar to https://github.com/joshday/OnlineStats.jl, so you might want to have a look at that implementation also. Regarding your question - I think |
That's a good suggestion about accum(x)() |
[@juliohm @bkamins] I am continuing the discussion at TableTransforms #121 here, to keep the information for RollingFunctions more contiguous. Tables.jl, TableTransforms.jl, DataFrames.jl and .. understand e.g. My perspective on rolling functions over windows into data and transformations is that none of the following should be excluded and all should be similarly constructable and useable in a shared way.
In addition, the ability to pre- or post- pad with given value or with a sequence of determinate values (tapering) must be available and essentially effortless. The first level of rollable functions are directly implementations of incremental algorithms that update the functional value (e.g. a descriptive statistic) with each next step within the windowed data. Each of these is performant. What is necessary both for this package and for seamless use with DataFrames and TableTransforms, is to support melding two or more first level capabilities (incremental updating of the extrema, the mean, and an exponentially weighted mean) rather than simply stacking them. Wrapping them in a pipe that pumps each new observation through the shared API would work and offers the potential to use multiple threads effectively. OnlineStats.jl is not restricted to incremental updating, covers most of the first level descriptive functions in a similar way, and many more. It is important to let those stats be used (made rollable). The intent of that package is to process and provide with a single look at the items within a data[stream]. Rolling over windowed data involves structural subsequences by definition. So there is interplay, and smooth interuse takes careful consideration. @joshday |
My current approach to incremental stats is shown for |
This gist shows my current approach to incremental stats with optional stream element preprocessing, again using rolling minimum. |
These are the "single stepped incremental statistics" available
not shown (not yet finalized, part of the windowing facilities) |
This shows an accumulator with local short term memory. |
This is for discussion of issues specific to the design of version 1.
@bkamins
The text was updated successfully, but these errors were encountered: