biolab / orange3-timeseries

🍊 :chart_with_upwards_trend: Orange add-on for analyzing, visualizing, manipulating, and forecasting time series data.
Other
62 stars 41 forks source link

Feature request: extend Moving transform to include cumulative transform for datasets with >1000 records #182

Closed wvdvegte closed 2 years ago

wvdvegte commented 2 years ago
Timeseries version

0.3.12

Orange version

3.20.2

Expected behavior
Actual behavior
Steps to reproduce the behavior

N/A

Currently, Moving transform only supports a fixed window size w, from t= t(i-w) to t(i), next value t=t(i-w+1) to t(i+1), etc, and, alternatively rom t= t(i-w) to t(i), next values t=t(i+1) to t(i+1+w), t(i+1+w+1) to t (i+1+2w) etc. It would be nice to have a third option: to include for every i all values since the first value. This would allow cumulative transforms, such as a cumulative sum. It does not seem to require a lot of adaptation to the Moving Transform widget, and currently, it is only possible using a Python script.

Additional info (worksheets, data, screenshots, ...)

N/A

kernc commented 2 years ago

Wholly agreed. Would you care enough to add the function in a PR?

I think what you ask might even be achievable if you just adjust this spin box to support higher maximums: https://github.com/biolab/orange3-timeseries/blob/3ce4ca1d6c9d26fff7f4c203a4c9282248d69189/orangecontrib/timeseries/widgets/owmovingtransform.py#L185 and then unset non-overlapping windows check box due to this line: https://github.com/biolab/orange3-timeseries/blob/3ce4ca1d6c9d26fff7f4c203a4c9282248d69189/orangecontrib/timeseries/widgets/owmovingtransform.py#L277 and just add a cumsum transform with a very large window (larger than your data length) ...

wvdvegte commented 2 years ago

@kernc, what is a PR? A pull request? I have no idea how these things work and what a pull request actually does - I'm not a programmer. I just know enough to adapt the Python code in the link that I cited to my personal needs...

wvdvegte commented 2 years ago

Changed the title, because I wasn't aware that this feature already exists in Moving Transform for datasets with up to 1000 records, thereby requiring manually setting the window size to 1000. It would be nice to have a Cumulative Sum (and cumulative product, overall max, etc.) that has no limitations when it comes to the number of records, and doesn't require manually setting a window size (because for a real cumsum, the window size is always "all the data").