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_states
int 未观测状态过程的维度。
- k_posdef
int,optional 描述测量方程中冲击的保证正定协方差矩阵的维度。必须小于或等于k_states。默认是k_states。
- initial_variance
float,optional 当指定近似扩散初始化时使用的初始方差。默认值为1e6。
- initialization
Initializationobjectorstr,optional 初始状态的初始化方法。如果是一个字符串,必须是以下之一:{‘diffuse’, ‘approximate_diffuse’, ‘stationary’, ‘known’}。
- initial_statearray_like,
optional 如果使用 initialization='known',则为初始状态分布的均值。
- initial_state_covarray_like,
optional 如果使用 initialization='known',则为初始状态分布的协方差矩阵。
- nobs
int,optional 如果没有提供内生向量(即 k_endog 是一个整数),可以选择指定观测数量。如果没有指定,它们将被设置为零,直到数据绑定到模型。
- dtype
np.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),而不必清理它们可能被传递的其他关键字参数。
- k_endog{array_like,
- Attributes:¶
注释
一般状态空间模型形式如下
\[\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_known(constant, stationary_cov)使用已知的初始状态分布初始化状态空间模型。
将状态空间模型初始化为平稳状态。
属性
(数组) 设计矩阵: \(Z~(k\_endog \times k\_states \times nobs)\)
(dtype) 当前活动表示矩阵的数据类型
(数组) 观测向量,obs 的别名。
(数组) 观测向量: \(y~(k\_endog \times nobs)\)
(数组) 观测协方差矩阵: \(H~(k\_endog \times k\_endog \times nobs)\)
(数组) 观测截距: \(d~(k\_endog \times nobs)\)
(str) 当前活动表示矩阵的BLAS前缀
(数组) 选择矩阵: \(R~(k\_states \times k\_posdef \times nobs)\)
(数组) 状态协方差矩阵: \(Q~(k\_posdef \times k\_posdef \times nobs)\)
(数组) 状态截距: \(c~(k\_states \times nobs)\)
(bool) 当前活跃的表示矩阵是否是时间不变的
(数组) 转移矩阵: \(T~(k\_states \times k\_states \times nobs)\)