Source code for interpreTS.core.features.feature_variance_change
import pandas as pd
import numpy as np
[docs]
def calculate_change_in_variance(data, window_size=5):
"""
Calculate the change in variance over time in a time series.
Parameters
----------
data : pd.Series or np.ndarray
The time series data for which the change in variance is to be calculated.
window_size : int, optional
The size of the rolling window to calculate variance (default is 5).
Returns
-------
pd.Series
A series containing the change in variance over time, with the same index as the input.
Raises
------
TypeError
If the data is not a valid time series type.
ValueError
If the data contains NaN values or is too short to calculate variance.
Examples
--------
>>> import pandas as pd
>>> data = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> calculate_change_in_variance(data, window_size=3)
0 NaN
1 NaN
2 NaN
3 0.00
4 0.00
dtype: float64
"""
# Convert data to a pandas Series if it's an ndarray
if isinstance(data, np.ndarray):
data = pd.Series(data)
# Calculate rolling variance
rolling_variance = data.rolling(window=window_size).var()
# Calculate the change in variance as the first difference of rolling variances
change_in_variance = rolling_variance.diff()
return change_in_variance