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