Generate seasons in time series¶
In [1]:
Copied!
import badgers
badgers.__version__
import badgers
badgers.__version__
Out[1]:
'0.0.14'
In [2]:
Copied!
import numpy as np
import matplotlib.pyplot as plt
from badgers.generators.time_series.seasons import GlobalAdditiveSinusoidalSeasonGenerator
import numpy as np
import matplotlib.pyplot as plt
from badgers.generators.time_series.seasons import GlobalAdditiveSinusoidalSeasonGenerator
Setup random generator¶
In [3]:
Copied!
from numpy.random import default_rng
seed = 0
rng = default_rng(seed)
from numpy.random import default_rng
seed = 0
rng = default_rng(seed)
Generate data (gaussian white noise)¶
In [4]:
Copied!
X = rng.normal(loc=0, scale=0.1, size=(100, 2))
X = rng.normal(loc=0, scale=0.1, size=(100, 2))
In [5]:
Copied!
fig, axes = plt.subplots(2, 1, sharex=True, figsize=(6,4))
axes[0].plot(X[:, 0])
axes[1].plot(X[:, 1])
fig, axes = plt.subplots(2, 1, sharex=True, figsize=(6,4))
axes[0].plot(X[:, 0])
axes[1].plot(X[:, 1])
Out[5]:
[<matplotlib.lines.Line2D at 0x2c732fa3110>]
Add sinusoidal season¶
In [6]:
Copied!
generator = GlobalAdditiveSinusoidalSeasonGenerator(random_generator=rng)
generator = GlobalAdditiveSinusoidalSeasonGenerator(random_generator=rng)
In [7]:
Copied!
Xt, _ = generator.generate(X=X, y=None, period=np.array([10,50]))
Xt, _ = generator.generate(X=X, y=None, period=np.array([10,50]))
In [8]:
Copied!
fig, axes = plt.subplots(2, sharex=True, sharey=True, figsize=(6,6))
axes[0].plot(X)
axes[0].set_title('Original data')
axes[1].plot(Xt)
axes[1].set_title('Transformed data')
plt.tight_layout();
fig, axes = plt.subplots(2, sharex=True, sharey=True, figsize=(6,6))
axes[0].plot(X)
axes[0].set_title('Original data')
axes[1].plot(Xt)
axes[1].set_title('Transformed data')
plt.tight_layout();