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 外生回归变量的数组。
- order
tuple,optional 模型的(p,d,q)阶数,分别对应自回归、差分和移动平均部分。d始终为整数,而p和q可以是整数或整数列表。
- seasonal_order
tuple,optional 季节性成分模型的(P,D,Q,s)阶数,分别对应自回归参数、差分、移动平均参数和周期性。默认值为(0, 0, 0, 0)。D和s始终为整数,而P和Q可以是整数或正整数列表。
- trend
str{‘n’,’c’,’t’,’ct’}oriterable,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_offset
int,optional 时间趋势值的起始偏移量。默认值为1,因此如果trend=’t’,趋势值等于1, 2, …, nobs。通常仅在通过扩展先前数据集创建模型时设置。
- datesarray_like
ofdatetime,optional 如果 endog 或 exog 未提供索引,可以提供一个包含日期时间对象的类数组对象。
- freq
str,optional 如果没有通过 endog 或 exog 指定索引,可以在此处指定时间序列的频率,作为 Pandas 偏移量或偏移字符串。
- missing
str 可用的选项是‘none’、‘drop’和‘raise’。如果选择‘none’,则不进行nan检查。如果选择‘drop’,则会删除任何包含nan的观测值。如果选择‘raise’,则会引发错误。默认值是‘none’。
- endogarray_like,
- 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_stationarity 和 enforce_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(参数)模型的费舍尔信息矩阵。
初始化SARIMAX模型。
initialize_approximate_diffuse([variance])初始化近似漫反射
initialize_default([...])初始化默认值
initialize_known(初始状态, ...)初始化已知
initialize_statespace(**kwargs)初始化状态空间表示
初始化静止状态
loglike(params, *args, **kwargs)对数似然评估
loglikeobs(参数[, 转换, ...])对数似然评估
observed_information_matrix(params[, ...])观测信息矩阵
opg_information_matrix(参数[, ...])梯度信息矩阵的外积
predict(params[, exog])模型拟合后,predict 返回拟合值。
准备用于状态空间表示的数据
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, ...])更新模型的参数
属性
内生变量名称
外生变量的名称。
初始设计矩阵
初始选择矩阵
初始状态截距向量
初始转移矩阵
所有可能的模型参数的latex名称。
所有可能的模型参数的纯文本名称。
模型中每个多项式的阶数。
人类可读的参数名称列表(适用于模型中实际包含的参数)。
模型中实际包含的参数列表,按排序顺序排列。
最大似然估计的初始参数
(list of str) 未观测状态的可读名称列表。