statsmodels.tsa.arima.model.ARIMA

class statsmodels.tsa.arima.model.ARIMA(endog, exog=None, order=(0, 0, 0), seasonal_order=(0, 0, 0, 0), trend=None, enforce_stationarity=True, enforce_invertibility=True, concentrate_scale=False, trend_offset=1, dates=None, freq=None, missing='none', validate_specification=True)[source]

自回归积分滑动平均(ARIMA)模型及其扩展

该模型是ARIMA类型模型的基本接口,包括那些具有外生回归变量和具有季节性成分的模型。最一般的模型形式是SARIMAX(p, d, q)x(P, D, Q, s)。它还允许所有特殊情况,包括

  • 自回归模型:AR(p)

  • 移动平均模型:MA(q)

  • 混合自回归移动平均模型:ARMA(p, q)

  • 整合模型:ARIMA(p, d, q)

  • 季节性模型: SARIMA(P, D, Q, s)

  • 回归分析,误差遵循上述ARIMA类型模型之一

Parameters:
endogarray_like, optional

观察到的时间序列过程 \(y\)

exogarray_like, optional

外生回归变量的数组。

ordertuple, optional

模型的(p,d,q)阶数,分别对应自回归、差分和移动平均部分。d始终为整数,而p和q可以是整数或整数列表。

seasonal_ordertuple, optional

季节性成分模型的(P,D,Q,s)阶数,分别对应自回归参数、差分、移动平均参数和周期性。默认值为(0, 0, 0, 0)。D和s始终为整数,而P和Q可以是整数或正整数列表。

trendstr{‘n’,’c’,’t’,’ct’} or iterable, optional

控制确定性趋势的参数。可以指定为一个字符串,其中‘c’表示常数项,‘t’表示时间中的线性趋势,‘ct’表示两者都包括。也可以指定为一个可迭代对象,定义一个多项式,如numpy.poly1d中所示,其中[1,1,0,1]表示\(a + bt + ct^3\)。默认值为‘c’,适用于没有积分的模型,对于有积分的模型则没有趋势。请注意,所有趋势项都作为外生回归变量包含在模型中,这与SARIMAX模型中包含趋势的方式不同。有关趋势项处理的精确定义,请参阅“注释”部分。

enforce_stationaritybool, optional

是否要求自回归参数对应于平稳过程。

enforce_invertibilitybool, optional

是否要求移动平均参数对应于一个可逆过程。

concentrate_scalebool, optional

是否将尺度(误差项的方差)从似然中集中出来。这通过减少一个参数来简化模型。这仅适用于通过数值最大似然法进行估计时。

trend_offsetint, optional

时间趋势值的起始偏移量。默认值为1,因此如果trend=’t’,趋势值等于1, 2, …, nobs。通常仅在通过扩展先前数据集创建模型时设置。

datesarray_like of datetime, optional

如果 endogexog 未提供索引,可以提供一个包含日期时间对象的类数组对象。

freqstr, optional

如果没有通过 endogexog 指定索引,可以在此处指定时间序列的频率,作为 Pandas 偏移量或偏移字符串。

missingstr

可用的选项是‘none’、‘drop’和‘raise’。如果选择‘none’,则不进行nan检查。如果选择‘drop’,则会删除任何包含nan的观测值。如果选择‘raise’,则会引发错误。默认值是‘none’。

Attributes:
endog_names

内生变量名称

exog_names

外生变量的名称。

initial_design

初始设计矩阵

initial_selection

初始选择矩阵

initial_state_intercept

初始状态截距向量

initial_transition

初始转移矩阵

initial_variance
initialization
loglikelihood_burn
model_latex_names

所有可能的模型参数的latex名称。

model_names

所有可能的模型参数的纯文本名称。

model_orders

模型中每个多项式的阶数。

param_names

人类可读的参数名称列表(适用于模型中实际包含的参数)。

param_terms

模型中实际包含的参数列表,按排序顺序排列。

start_params

最大似然估计的初始参数

state_names

(list of str) 未观测状态的可读名称列表。

tolerance

注释

该模型通过“带有ARIMA误差的回归”结合了外生回归变量和趋势分量。这与使用SARIMAX估计的规范不同,后者将趋势分量与任何包含的外生回归变量分开处理。此处估计的模型的完整规范是:

\[\begin{split}Y_{t}-\delta_{0}-\delta_{1}t-\ldots-\delta_{k}t^{k}-X_{t}\beta & =\epsilon_{t} \\ \left(1-L\right)^{d}\left(1-L^{s}\right)^{D}\Phi\left(L\right) \Phi_{s}\left(L\right)\epsilon_{t} & =\Theta\left(L\right)\Theta_{s}\left(L\right)\eta_{t}\end{split}\]

其中 \(\eta_t \sim WN(0,\sigma^2)\) 是白噪声过程,L 是滞后算子,\(G(L)\) 是对应于自回归 (\(\Phi\))、季节性自回归 (\(\Phi_s\))、移动平均 (\(\Theta\)) 和季节性移动平均分量 (\(\Theta_s\)) 的滞后多项式。

enforce_stationarityenforce_invertibility 在构造函数中指定,因为它们影响对数似然计算,因此不应在运行时更改。这就是为什么它们不作为 fit 方法的参数包含在内。

请参阅笔记本 ARMA: 太阳黑子数据ARMA: 人工数据 以获取概述。

示例

>>> mod = sm.tsa.arima.ARIMA(endog, order=(1, 0, 0))
>>> res = mod.fit()
>>> print(res.summary())

方法

clone(endog[, exog])

克隆状态空间模型并使用新数据,可选择新的规格

filter(params[, transformed, ...])

卡尔曼滤波

fit([start_params, transformed, ...])

拟合(估计)模型的参数。

fit_constrained(约束[, start_params])

使用一些受等式约束的参数拟合模型。

fix_params(params)

将参数固定为特定值(上下文管理器)

from_formula(公式, 数据[, 子集])

状态空间模型未实现

handle_params(params[, transformed, ...])

确保模型参数满足形状和其他要求

hessian(params, *args, **kwargs)

似然函数的Hessian矩阵,在给定参数处求值

impulse_responses(params[, steps, impulse, ...])

脉冲响应函数

information(参数)

模型的费舍尔信息矩阵。

initialize()

初始化SARIMAX模型。

initialize_approximate_diffuse([variance])

初始化近似漫反射

initialize_default([...])

初始化默认值

initialize_known(初始状态, ...)

初始化已知

initialize_statespace(**kwargs)

初始化状态空间表示

initialize_stationary()

初始化静止状态

loglike(params, *args, **kwargs)

对数似然评估

loglikeobs(参数[, 转换, ...])

对数似然评估

observed_information_matrix(params[, ...])

观测信息矩阵

opg_information_matrix(参数[, ...])

梯度信息矩阵的外积

predict(params[, exog])

模型拟合后,predict 返回拟合值。

prepare_data()

准备用于状态空间表示的数据

score(params, *args, **kwargs)

在参数处计算得分函数。

score_obs(params[, method, transformed, ...])

计算每个观测值的得分,在参数处进行评估

set_conserve_memory([conserve_memory])

设置内存保护方法

set_filter_method([filter_method])

设置过滤方法

set_inversion_method([inversion_method])

设置反演方法

set_smoother_output([smoother_output])

设置平滑输出

set_stability_method([stability_method])

设置数值稳定性方法

simulate(params, nsimulations[, ...])

模拟一个遵循状态空间模型的新时间序列

simulation_smoother([simulation_output])

获取状态空间模型的模拟平滑器。

smooth(params[, transformed, ...])

卡尔曼平滑

transform_jacobian(无约束[, ...])

参数变换函数的雅可比矩阵

transform_params(无约束)

将优化器使用的无约束参数转换为似然评估中使用的约束参数。

untransform_params(constrained)

将似然评估中使用的约束参数转换为优化器使用的无约束参数

update(params[, transformed, ...])

更新模型的参数

属性

endog_names

内生变量名称

exog_names

外生变量的名称。

initial_design

初始设计矩阵

initial_selection

初始选择矩阵

initial_state_intercept

初始状态截距向量

initial_transition

初始转移矩阵

初始方差

初始化

loglikelihood_burn

model_latex_names

所有可能的模型参数的latex名称。

model_names

所有可能的模型参数的纯文本名称。

model_orders

模型中每个多项式的阶数。

param_names

人类可读的参数名称列表(适用于模型中实际包含的参数)。

param_terms

模型中实际包含的参数列表,按排序顺序排列。

params_complete

start_params

最大似然估计的初始参数

state_names

(list of str) 未观测状态的可读名称列表。

tolerance


Last update: Oct 16, 2024