statsmodels.tsa.deterministic.DeterministicProcess¶
-
class statsmodels.tsa.deterministic.DeterministicProcess(index, *, period=
None, constant=False, order=0, seasonal=False, fourier=0, additional_terms=(), drop=False)[source]¶ 确定性项的容器类。
直接支持常数、时间趋势,以及单一周期的季节虚拟变量或傅里叶项。除了可以通过构造函数直接初始化的确定性项之外,还可以添加额外的确定性项。
- Parameters:¶
- index{
Sequence[Hashable],pd.Index} 过程的索引。通常在预测应用中使用时应该是“样本内”索引。
- period{
float,int},defaultNone 季节性或傅里叶分量的周期。对于季节性虚拟变量,必须为整数。如果未提供,则从索引中读取freq(如果可用)。
- constantbool,
defaultFalse 是否包含常数。
- order
int,default0 要包含的时间趋势的阶数。例如,2将包括线性和二次项。0表示不包括时间趋势项。
- seasonalbool =
False 是否包含季节性虚拟变量
- fourier
int= 0 要包含的傅里叶项的顺序。
- additional_terms
Sequence[DeterministicTerm] 一系列额外的确定性项,包含在过程中。
- dropbool,
defaultFalse 一个标志,指示检查完全共线性并删除任何线性相关的项。
- index{
- Attributes:¶
注释
请参阅笔记本 时间序列模型中的确定性项 以获取概述。
示例
>>> from statsmodels.tsa.deterministic import DeterministicProcess >>> from pandas import date_range >>> index = date_range("2000-1-1", freq="M", periods=240)首先是一个具有常数和二次时间趋势的确定性过程。
>>> dp = DeterministicProcess(index, constant=True, order=2) >>> dp.in_sample().head(3) const trend trend_squared 2000-01-31 1.0 1.0 1.0 2000-02-29 1.0 2.0 4.0 2000-03-31 1.0 3.0 9.0通过将 seasonal 设置为 True,可以包含季节性虚拟变量。
>>> dp = DeterministicProcess(index, constant=True, seasonal=True) >>> dp.in_sample().iloc[:3,:5] const s(2,12) s(3,12) s(4,12) s(5,12) 2000-01-31 1.0 0.0 0.0 0.0 0.0 2000-02-29 1.0 1.0 0.0 0.0 0.0 2000-03-31 1.0 0.0 1.0 0.0 0.0傅里叶分量可以用来替代捕捉季节性模式,
>>> dp = DeterministicProcess(index, constant=True, fourier=2) >>> dp.in_sample().head(3) const sin(1,12) cos(1,12) sin(2,12) cos(2,12) 2000-01-31 1.0 0.000000 1.000000 0.000000 1.0 2000-02-29 1.0 0.500000 0.866025 0.866025 0.5 2000-03-31 1.0 0.866025 0.500000 0.866025 -0.5可以使用额外的项来捕捉多个季节性。
>>> from statsmodels.tsa.deterministic import Fourier >>> index = date_range("2000-1-1", freq="D", periods=5000) >>> fourier = Fourier(period=365.25, order=1) >>> dp = DeterministicProcess(index, period=3, constant=True, ... seasonal=True, additional_terms=[fourier]) >>> dp.in_sample().head(3) const s(2,3) s(3,3) sin(1,365.25) cos(1,365.25) 2000-01-01 1.0 0.0 0.0 0.000000 1.000000 2000-01-02 1.0 1.0 0.0 0.017202 0.999852 2000-01-03 1.0 0.0 1.0 0.034398 0.999408方法
apply(索引)创建一个具有不同索引的相同确定性过程
生成用于样本内拟合的确定性趋势。
out_of_sample(steps[, forecast_index])为样本外预测生成确定性趋势
range(开始, 结束)跨越一系列观测值的确定性项
属性
进程的索引
过程包含的确定性项
Last update:
Oct 16, 2024