statsmodels lagmatrix函数“错误”吗? (向滞后数组添加零)

时间:2013-08-04 02:26:01

标签: python statsmodels

示例:

的Python

lagmatrix([1 2 3])
returns [0 1 2]

如果我想对Y的滞后值(即AR过程)进行回归,这显然是不正确的。

我想使用statsmodel.OLS运行Y的回归和Y的滞后值但是如果我将NaN放在Y的滞后版本中,则OLS会抱怨并且不会运行。

有没有办法运行回归而不会针对Y[1:-1]回归lagmatrix(Y)[1:-1]

如果我有更多的滞后,这会让人讨厌。

statsmodels中的AR功能如何发现滞后?

1 个答案:

答案 0 :(得分:1)

我不知道你的lagmatrix是什么。

我建议使用pandas,它具有滞后方法并且具有nan处理功能。

statsmodels有两个函数,用于内部创建自回归和向量自回归模型的滞后矩阵以及相关的假设检验,它们有trim选项来选择如何处理初始和尾随观察。

>>> from statsmodels.tsa.tsatools import lagmat, lagmat2ds
>>> x = np.arange(10)
>>> y_lagged, y = lagmat(x, maxlag=2, trim="forward", original='sep')
>>> y_lagged
array([[ 0.,  0.],
       [ 0.,  0.],
       [ 1.,  0.],
       [ 2.,  1.],
       [ 3.,  2.],
       [ 4.,  3.],
       [ 5.,  4.],
       [ 6.,  5.],
       [ 7.,  6.],
       [ 8.,  7.]])
>>> y
array([[0],
       [1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])
>>> y_lagged, y = lagmat(x, maxlag=2, trim="both", original='sep')
>>> y_lagged
array([[ 1.,  0.],
       [ 2.,  1.],
       [ 3.,  2.],
       [ 4.,  3.],
       [ 5.,  4.],
       [ 6.,  5.],
       [ 7.,  6.],
       [ 8.,  7.]])
>>> y
array([[2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])