我正在尝试运行带有statsmodels的VAR算法来预测未来的某些值,但我陷入困境。
我有一系列这样的值:
php_resp_time = [349.70448833, 304.32462033000002, 228.08079499999999, 245.03481033, 268.90133700000001, 275.58803332999997, ......, etc.]
我做的是:
>>> mdata = DataFrame(php_resp_time)
>>> output:
0
0 349.704488
1 304.324620
2 228.080795
3 245.034810
4 268.901337
5 275.588033
etc.
>>> dates = sm.tsa.datetools.dates_from_range('1961', length=len(php_resp_time)) #create a range of random dates
>>> output: [datetime.datetime(1961, 12, 31, 0, 0), datetime.datetime(1962, 12, 31, 0, 0), datetime.datetime(1963, 12, 31, 0, 0), datetime.datetime(1964, 12, 31, 0, 0), etc.]
>>> mdata.index = pandas.DatetimeIndex(dates) #assign dates as indexes
>>> data = np.log(mdata).diff().dropna()
>>> output:
0
1962-12-31 -0.138994
1963-12-31 -0.288395
1964-12-31 0.071700
1965-12-31 0.092944
1966-12-31 0.024563
1967-12-31 0.047386
1968-12-31 -0.048385
1969-12-31 0.071730
etc.
#now when I am trying to call the VAR model I get this error:
>>>model = sm.tsa.VAR(data)
>>>output: File "/usr/local/lib/python2.7/dist-packages/statsmodels/tsa/vector_ar/var_model.py", line 345, in __init__
self.neqs = self.endog.shape[1]
IndexError: tuple index out of range
有人知道如何解决这个问题吗?
谢谢!
答案 0 :(得分:0)
this的重复。当你在mailing list上询问时,回答那里并回答。
我们不允许使用一个变量运行VAR。根据定义,Pandas系列只有一个变量,当你有一个以上的内生变量时,会使用VAR。
编辑:为了更具建设性,这里有一些指向更多文档的链接。 http://statsmodels.sourceforge.net/devel/vector_ar.html#var