Anomaly Generator on Time Series
- Python 3
- Install the dependencies via
pip install -r requirements.txt
The following example generates 4 time series with 200 data points. The first two time series correlate:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from agots.multivariate_generators.multivariate_data_generator import MultivariateDataGenerator
STREAM_LENGTH = 200
N = 4
K = 2
dg = MultivariateDataGenerator(STREAM_LENGTH, N, K)
df = dg.generate_baseline(initial_value_min=-4, initial_value_max=4)
for col in df.columns:
plt.plot(df[col], label=col)
plt.legend()
plt.show()
df.corr()
To add anomalies, just specify their types and the locations within the corresponding time series as well as their magnitudes:
df = dg.add_outliers({'extreme': [{'n': 0, 'timestamps': [(10,), (30,)],
'factor': 10
}],
'shift': [{'n': 1, 'timestamps': [(40, 60)],
'factor': 10
}],
'trend': [{'n': 2, 'timestamps': [(70, 90)],
'factor': 5
}],
'variance': [{'n': 3, 'timestamps': [(100, 150)],
'factor': 10
}]})
for col in df.columns:
plt.plot(df[col], label=col)
plt.legend()
plt.show()
Discover more in examples/
.