All for specifying actual periods so as to distinguish from missing data
In some time series, data may naturally only exist for certain at certain time-stamps, yet the anomaly detector has no way of distinguishing such data from missing data.
For example, assume you are looking at financial data from US markets using closing information each day. The US market has 252 trading days on average each year. But 252/365=0.69, so using 1 day periods in the anomaly detector sees that more than 30% of the points are missing and errors out. What I would like is to have something like an optional parameter that allows me to specify all potential periods. Then, the anomaly detector would only consider the data missing if I do not have data in the series section of the json for a timestamp for which is in the "potential periods" section.
Currently, to work around this, I am just creating a fake time series that effectively does the same. I just put the series into a continuous daily series that includes weekends and holidays even though those dates do not correspond to actual dates the data was observed.
Thanks for your feedback. There're definitely time series which only exist for certain time-stamps by nature. For now, for these kind of time series, we encourage customers to fill missing before they send the series to the API. In our new version which will be released next month, we will add filling missing logic inside the API. Then for this kind of time series you still can use the anomaly detector API to detect anomalies.
Regarding the "potential periods" suggestion, I firstly would like to clarify "Period" concept in Anomaly Detector. In Anomaly Detector, "Period" mean repeat cycle of a time series. For example, daily usage of a web service could have weekly period. Here, I guess you would like to control missing ratio of a time series or you want a method to skip those empty time-stamps.
I suggest we can try fill missing value for this kind of time series. We have done offline experiment on our data-set which shows result will be better if we fill missing value in those empty/null time-stamps.