Hey Elementary Team, Thank you for taking the time...
# product-feedback
t
Hey Elementary Team, Thank you for taking the time to make all the features that are available in this open-source package. Saves people like a me a lot of time when wanting to test data quality. My only question/comment/concern is this: I feel that the detection method for anomalies isn’t quite aligned with how Z scores/t scores are used. The training period should be isolated from the detection period to calculate the sample mean (assumed population mean) otherwise if we include the data point being tested in the mean calculation then the Z score will definitely be skewed by the new test data point. For example, if I’m trying to perform a volume anomaly test for a table that I know receive a single monthly manual upload, I would calculate an average of the previous X months worth of data (I’m assuming they were successfully uploaded). Then for the upcoming month I would want to test if this new volume data point statistically belongs to that “population” of successfully uploaded table volumes. Including the new data point in the sample mean calculation doesn’t seem to make sense as it could damper the Z score which might not be caught with the default anomaly_sensitivity. Just thought I’d bring this up and if I’m totally wrong I would love to learn where my assumptions/understandings are wrong. Thanks Elementary!
👆 2
o
Hi @Trevor Osborne! this is a great topic, thanks for surfacing! this is actually a topic that we debated internally several times. The idea was that detection period could contain several data points. If the first point in the detection period is anomalous then the test would fail anyways and it doesn't really matter what happens with the following points as we detected that in the detection period there's an anomalous data point. If not, then it means that the first point is within the normal range. Then when the second point is being evaluated you do want to take into consideration the previous point in the detection period as it makes the history of the current point more accurate (since first point is more recent and within the normal range). That said, we let you control how many data points the detection period contains (right now it's in days but we are changing it now to be based on the configured time bucket size and number of points). I hope this clarifies and happy to continue the brainstorm about it as this is an interesting topic we are still discussing internally 🙏