statsmodels.tsa.statespace.representation.Representation

class statsmodels.tsa.statespace.representation.Representation(k_endog, k_states, k_posdef=None, initial_variance=1000000.0, nobs=0, dtype=<class 'numpy.float64'>, design=None, obs_intercept=None, obs_cov=None, transition=None, state_intercept=None, selection=None, state_cov=None, statespace_classes=None, **kwargs)[source]

时间序列过程的状态空间表示

Parameters:
k_endog{array_like, int}

观察到的时间序列过程 \(y\) 如果是数组形式,或者是过程中的变量数量,如果是整数。

k_statesint

未观测状态过程的维度。

k_posdefint, optional

描述测量方程中冲击的保证正定协方差矩阵的维度。必须小于或等于k_states。默认是k_states

initial_variancefloat, optional

当指定近似扩散初始化时使用的初始方差。默认值为1e6。

initializationInitialization object or str, optional

初始状态的初始化方法。如果是一个字符串,必须是以下之一:{‘diffuse’, ‘approximate_diffuse’, ‘stationary’, ‘known’}。

initial_statearray_like, optional

如果使用 initialization='known',则为初始状态分布的均值。

initial_state_covarray_like, optional

如果使用 initialization='known',则为初始状态分布的协方差矩阵。

nobsint, optional

如果没有提供内生向量(即 k_endog 是一个整数),可以选择指定观测数量。如果没有指定,它们将被设置为零,直到数据绑定到模型。

dtypenp.dtype, optional

如果没有提供内生向量(即 k_endog 是一个整数),可以选择指定状态空间矩阵的默认数据类型。默认值为 np.float64

designarray_like, optional

设计矩阵, \(Z\)。默认设置为零。

obs_interceptarray_like, optional

观测方程的截距,\(d\)。默认设置为零。

obs_covarray_like, optional

观测方程的协方差矩阵 \(H\)。默认设置为零。

transitionarray_like, optional

转移矩阵, \(T\)。默认设置为零。

state_interceptarray_like, optional

转换方程的截距,\(c\)。默认设置为零。

selectionarray_like, optional

选择矩阵, \(R\)。默认设置为零。

state_covarray_like, optional

状态方程的协方差矩阵 \(Q\)。默认设置为零。

**kwargs

其他关键字参数。不直接使用。它的存在是为了提高与子类的兼容性,以便它们可以使用 **kwargs 来指定任何默认的状态空间矩阵(例如 design),而不必清理它们可能被传递的其他关键字参数。

Attributes:
nobsint

观测值的数量。

k_endogint

观测序列的维度。

k_statesint

未观测状态过程的维度。

k_posdefint

描述测量方程中冲击的保证正定协方差矩阵的维度。

shapesdictionary of name:tuple

一个字典,记录了每个表示矩阵的初始形状,以元组形式表示。

initializationstr

卡尔曼滤波器初始化方法。默认是未设置。

initial_variancefloat

近似扩散初始化的初始方差。默认值为1e6。

注释

一般状态空间模型形式如下

\[\begin{split}y_t & = Z_t \alpha_t + d_t + \varepsilon_t \\ \alpha_t & = T_t \alpha_{t-1} + c_t + R_t \eta_t \\\end{split}\]

其中 \(y_t\) 表示时间 \(t\) 的观测向量, \(\alpha_t\) 表示时间 \(t\) 的(未观测到的)状态向量,并且不规则分量定义为

\[\begin{split}\varepsilon_t \sim N(0, H_t) \\ \eta_t \sim N(0, Q_t) \\\end{split}\]

剩余的变量(\(Z_t, d_t, H_t, T_t, c_t, R_t, Q_t\))在方程中是描述过程的矩阵。它们的变量名称和维度如下

Z : 设计 \((k\_endog \times k\_states \times nobs)\)

d : 观测截距 \((k\_endog \times nobs)\)

H : 观测协方差 \((k\_endog \times k\_endog \times nobs)\)

T : 转移 \((k\_states \times k\_states \times noobs)\)

c : 状态截距 \((k\_states \times nobs)\)

R : 选择 \((k\_states \times k\_posdef \times nobs)\)

问:state_cov \((k\_posdef \times k\_posdef \times nobs)\)

如果其中一个矩阵是时间不变的(例如,\(Z_t = Z_{t+1} ~ \forall ~ t\)),则其最后一个维度的大小可能是\(1\),而不是大小nobs

参考文献

方法

bind(endog)

将数据绑定到状态空间表示

clone(endog, **kwargs)

克隆一个状态空间表示,同时覆盖一些元素

diff_endog(新数据[, 容差])

extend(endog[, start, end])

扩展当前的状态空间模型,或特定的(时间)子集

initialize(初始化[, ...])

如有必要,创建一个初始化对象

initialize_approximate_diffuse([variance])

使用近似扩散值初始化状态空间模型。

initialize_components([a, Pstar, Pinf, A, ...])

使用组件矩阵初始化状态空间模型

initialize_diffuse()

将状态空间模型初始化为扩散状态。

initialize_known(constant, stationary_cov)

使用已知的初始状态分布初始化状态空间模型。

initialize_stationary()

将状态空间模型初始化为平稳状态。

属性

design

(数组) 设计矩阵: \(Z~(k\_endog \times k\_states \times nobs)\)

dtype

(dtype) 当前活动表示矩阵的数据类型

endog

(数组) 观测向量,obs 的别名。

obs

(数组) 观测向量: \(y~(k\_endog \times nobs)\)

obs_cov

(数组) 观测协方差矩阵: \(H~(k\_endog \times k\_endog \times nobs)\)

obs_intercept

(数组) 观测截距: \(d~(k\_endog \times nobs)\)

prefix

(str) 当前活动表示矩阵的BLAS前缀

selection

(数组) 选择矩阵: \(R~(k\_states \times k\_posdef \times nobs)\)

state_cov

(数组) 状态协方差矩阵: \(Q~(k\_posdef \times k\_posdef \times nobs)\)

state_intercept

(数组) 状态截距: \(c~(k\_states \times nobs)\)

time_invariant

(bool) 当前活跃的表示矩阵是否是时间不变的

transition

(数组) 转移矩阵: \(T~(k\_states \times k\_states \times nobs)\)


Last update: Oct 16, 2024