Your question is Statistical Anomaly Detection. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Goldman Sachs systems monitor ordered market and operational measurements for unusual movements. Given a numeric time series, identify values whose deviation from recent history exceeds a configurable z-score threshold.
Implement detect_anomalies(values, window, z_threshold). For each index i, use the preceding at most window values as the baseline, excluding values[i]. Compute their population mean and population standard deviation. Flag i when the absolute z-score is at least z_threshold.
If fewer than two baseline values exist, do not flag the point. If the baseline standard deviation is zero, flag the point only when it differs from the baseline mean. Return anomaly indices in ascending order.
values is a list of integers or floating-point numbers.window is an integer specifying the maximum number of preceding observations in the baseline.z_threshold is a positive floating-point number.sqrt(sum((x - mean)^2) / count).def detect_anomalies(values, window, z_threshold):