预处理
functime 支持使用 Polars 进行并行时间序列预处理。所有 functime 预处理器将面板 DataFrame 作为输入,并逐个时间序列地转换每个时间序列(即作为并行化的 group_by 操作)。
时间序列变换通常用于稳定时间序列(例如,boxcox 用于方差稳定)或通过一阶差分或去趋势使时间序列平稳。一些变换也是可逆的,例如diff 和 detrend,这对于将变换后的时间序列的预测转换回原始尺度是很有用的。
查看API参考以获取详细信息。
快速示例
差分
应用k阶差分。这个变换是可逆的。
from functime.preprocessing import diff
transformer = diff(order=1)
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
季节性差分
应用k阶差分,偏移sp个周期。此变换是可逆的。
from functime.preprocessing import diff
# Assume X is a monthly dataset with seasonal period = 12
transformer = diff(order=1, sp=12)
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
去趋势(线性)
去除每个时间序列的线性趋势。此变换是可逆的。
from functime.preprocessing import detrend
transformer = detrend(method="linear")
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
去趋势(均值)
去除每个时间序列的平均趋势。这个变换是可逆的。
from functime.preprocessing import detrend
transformer = detrend(method="mean")
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
博克斯-考克斯变换
对每个时间序列应用优化的 Box-Cox 变换。这个变换是可逆的。
from functime.preprocessing import boxcox
transformer = boxcox(method="mle")
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
Yeo-Johnson
对每个时间序列应用优化的Yeo-Johnson变换。该变换是可逆的。
from functime.preprocessing import yeojohnson
transformer = yeojohnson()
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
局部缩放
通过减去均值并除以标准差来标准化每个时间序列。该转换是可逆的。
from functime.preprocessing import scale
transformer = scale(use_mean=True, use_std=True)
X_new = X.pipe(transformer).collect()
X_original = transformer.invert(X_new)
滚动统计
给定一系列窗口大小,对每个时间序列在每列上应用滚动统计。这种变换是不可逆的。当前支持以下统计:mean,min,max,mlm(最大值减去最小值),sum,std,cv(变异系数)。