2
statsmodels
ライブラリを使用してVARを実行しようとしていますが、明らかにendog形式が間違っています。いくつかのことを試してみましたが、解決方法を見つけることはできません。Python/Statsmodels - ベクトル自己回帰endog
私は、次のコードを実行しています:私は取得していますエラーは次のようである
def VAR_run(pred_frame,targetframe):
#preparing the dates
dates=pred_frame.index
# preparing target
targetmatrix=targetframe.as_matrix()
# preparing pred_frame
predmatrix=pred_frame.as_matrix()
#creating endog
timeseries=(predmatrix,targetmatrix)
model=VAR((timeseries),dates=dates)
を:
File "/Users/file.py", line 1198, in M_pred_frame
VAR_run(pred_frame,targetframe)
File "/file.py", line 1156, in VAR_run
model=VAR((timeseries),dates=dates)
File "/Library/Python/2.7/site-packages/statsmodels/tsa/vector_ar/var_model.py", line 334, in __init__
raise ValueError("Only gave one variable to VAR")
ValueError: Only gave one variable to VAR
誰もが私の旅を啓発することはできますか?
EXTRA INFO
pred_frame
もともとこのようなパンダDataFrame
です:
Tgt
Date
...
2015-10-01 0.54
2015-11-01 0.82
2015-12-01 1.01
2016-01-01 0.96
2016-02-01 1.27
:
Value lag1 2lag 3lag 4lag 5lag 6lag 7lag 8lag 9lag
Date
...
2015-12-01 1.01 0.82 0.54 0.22 0.62 0.79 0.74 0.71 1.32 1.22
2016-01-01 0.96 1.01 0.82 0.54 0.22 0.62 0.79 0.74 0.71 1.32
2016-02-01 1.27 0.96 1.01 0.82 0.54 0.22 0.62 0.79 0.74 0.71
targetframe
は、もともともこのようなパンダDataFrame
です3210
彼らはこのように見えるの配列になった場合:形状について
targetmatrix = [[ nan]
[ 1.18]
[ 0.5 ]
[ 0.51]
...]
predmatrix= ...[ 1.27 0.96 1.01 ..., -2.14865885 -2.14865885
-3.19355784]
[ nan nan nan ..., -18.13211803 -2.14865885
-2.14865885]
[ nan nan nan ..., nan nan
nan]]
dates = DatetimeIndex(['1958-04-01', '1958-05-01', '1958-06-01', '1958-07-01',
'1958-08-01', '1958-09-01', '1958-10-01', '1958-11-01',
'1958-12-01', '1959-01-01',
...
'2015-07-01', '2015-08-01', '2015-09-01', '2015-10-01',
'2015-11-01', '2015-12-01', '2016-01-01', '2016-02-01',
'2016-03-01', '2016-04-01'],
dtype='datetime64[ns]', name=u'Date', length=697, freq='MS')
:
targetmatrix.shape = (230, 1)
predmatrix.shape = (697, 1920)
dates.shape=(697,)
あなたの助けが高く評価されます:)
あなたができ、この後のすべての? – Stefan
を解決するために、あなたも同様に動作する別のStatsmodels方法に精通していますVARまたはVARMAXに変換し、外生変数も使用できるようにします(答えに記載されているように1次元入力を受け入れます) –