statsmodels.tsa.deterministic.CalendarFourier

class statsmodels.tsa.deterministic.CalendarFourier(freq, order)[source]

基于日历时间的傅里叶级数确定性项

Parameters:
freqstr

一个可转换为 pandas 频率的字符串。

orderint

要包含的傅里叶分量的数量。必须小于或等于 2*周期。

Attributes:
freq

确定性项的频率

is_dummy

指示生成的值是否为虚拟变量的标志

order

包含的傅里叶项的顺序

注释

每个i=1, …, order都包含一个正弦项和一个余弦项

\[\begin{split}f_{i,s,t} & = \sin\left(2 \pi i \tau_t \right) \\ f_{i,c,t} & = \cos\left(2 \pi i \tau_t \right)\end{split}\]

其中 m 是周期的长度,\(\tau_t\) 是频率归一化时间。例如,当 freq 为“D”时,时间戳为 12:00:00 的观测值将具有 \(\tau_t=0.5\)

示例

这里我们模拟不规则间隔的每小时数据,并为这些数据构建日历傅里叶项。

>>> import numpy as np
>>> import pandas as pd
>>> base = pd.Timestamp("2020-1-1")
>>> gen = np.random.default_rng()
>>> gaps = np.cumsum(gen.integers(0, 1800, size=1000))
>>> times = [base + pd.Timedelta(gap, unit="s") for gap in gaps]
>>> index = pd.DatetimeIndex(pd.to_datetime(times))
>>> from statsmodels.tsa.deterministic import CalendarFourier
>>> cal_fourier_gen = CalendarFourier("D", 2)
>>> cal_fourier_gen.in_sample(index)

方法

in_sample(index)

生成用于样本内拟合的确定性趋势。

out_of_sample(steps, index[, forecast_index])

为样本外预测生成确定性趋势

属性

freq

确定性项的频率

is_dummy

指示生成的值是否为虚拟变量的标志

order

包含的傅里叶项的顺序


Last update: Oct 16, 2024