2013-04-17 2 views
0

향후의 값을 예측하기 위해 stats 모델을 사용하여 VAR 알고리즘을 실행하려고하는데 막혔습니다. 내가 무슨 짓을VAR 모델 : IndexError : 튜플 인덱스가 범위를 벗어났습니다.

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

self.neqs = ...? 앞에 print self.endog.shape를 호출하면 어떻게됩니까? –

답변

0

복제본 this. 그곳에 응답하여 mailing list에 질문했을 때 대답했습니다.

변수가 하나 인 VAR을 실행할 수 없습니다. Pandas Series는 정의상 하나의 변수이고 VAR은 하나 이상의 내생 변수가있을 때 사용됩니다.

편집 : 좀 더 체계적으로 작성하려면 다음 링크를 참조하십시오. http://statsmodels.sourceforge.net/devel/vector_ar.html#var

관련 문제