Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Statistical Anomaly Detection

MediumPython00:00
Practice interviewer
In session
5 left
00:00

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.

You need to log in / sign up to run or submit.

Problem

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.

Formal Specification

  • 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.
  • Return a list of integer indices.
  • Use the population standard deviation: sqrt(sum((x - mean)^2) / count).

Constraints

  • 2 <= len(values) <= 10^5
  • 2 <= window <= len(values)
  • z_threshold > 0
  • Every value is a finite integer or floating-point number

Function Signature

def detect_anomalies(values, window, z_threshold):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output