Berserk Docs
Scalar FunctionsSeries Functions

series_periods_detect

Detects periodic patterns in a time series using FFT-based spectral analysis.

Syntax

series_periods_detect(series, min_period, max_period, num_periods)

Parameters

Prop

Type

Returns: dynamic

Examples

Example 1 — Detect a weekly raid pattern (period=7) in 28 days of data — high activity every 7th day

print (periods, scores) = series_periods_detect(
  dynamic([10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10])
)
periods (dynamic)scores (dynamic)
[7.0][1.2664603537264012]

Example 2 — Widen the search range (min=2, max=14) and request the top 2 periods

print (periods, scores) = series_periods_detect(
  dynamic([10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10]),
  2.0,
  14.0,
  2
)
periods (dynamic)scores (dynamic)
[7.0,2.0][1.2664603537264012,0.2066957036771069]

Example 3 — Detect a shorter cycle — raids every 3rd day

print (periods, scores) = series_periods_detect(
  dynamic([10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3]),
  2.0,
  10.0,
  2
)
periods (dynamic)scores (dynamic)
[3.0][1.425422448468271]

On this page