如何在 Python 中实现向量自回归?
Posted
技术标签:
【中文标题】如何在 Python 中实现向量自回归?【英文标题】:How to implement Vector Auto-Regression in Python? 【发布时间】:2013-08-23 07:28:00 【问题描述】:我想在python中实现向量自回归。我的数据保存为 3 个列表的列表。我找到了这个 - http://statsmodels.sourceforge.net/stable/vector_ar.html#var,但想不出正确的实现方式。
假设 tsdata - 一个包含 3 个长度为 100 的列表的列表,是我的数据。我试过了
varmodel = ts.VAR(tsdata)
results = varmodel.fit(maxlags=5, ic='aic')
但上述方法不起作用。
更新: 根据以下建议,我已将列表列表更改为列堆栈。现在工作正常。所以 tsdata,它是一个列表列表被更改为
tsdata = np.column_stack(tsdata)
【问题讨论】:
请详细说明“它不起作用”。当我执行VAR(data_as_lists).fit(maxlags=5, ic='aic').summary()
时,我得到了输出——不清楚所说的输出是否合理。即使这样,您的数据也应该是带有 DatetimeIndex 的 pandas DataFrame。
我的猜测是,当列表转换为数组时,列表的形状错误,变量在行中,观察在列中。在列表列表中尝试 np.column_stack
您的代码中的tsdata
在哪里?你在问题中提到它,但我看到的只是resid
。
代码中也应该是tsdata。更正了错字。将尝试 np.column_stack。
菲利普,感谢您的建议。它奏效了。
【参考方案1】:
将列表列表更改为列堆栈 (as @Josef suggests) 可能会解决您的问题。为此,可以使用numpy.column_stack
如下
tsdata = np.column_stack(tsdata)
【讨论】:
以上是关于如何在 Python 中实现向量自回归?的主要内容,如果未能解决你的问题,请参考以下文章