2017-07-19 16 views
-1

HH:MM:SSの形式で時間をインデックスとして含むDataframeがあります。データフレームには、float値を含むYという1つの列しかありません。 マイデータセットは次のとおりです。データにHH:MM:SSのみが含まれているときにARIMAモデルを使用して時系列データを予測する

09:37:57   121 
 
09:39:05    73 
 
09:40:40    91 
 
09:40:45   101 
 
09:47:40    69 
 
09:52:13    81 
 
09:58:35    83 
 
10:00:30   428 
 
10:11:28   184 
 
10:13:20   231 
 
10:14:18   577 
 
10:19:44    92 
 
10:23:17    67 
 
10:23:40   156 
 
10:24:21    76 
 
10:24:31    95 
 
10:26:38   180 
 
10:26:43    65 
 
10:27:11   130 
 
10:28:28    90 
 
10:29:53   293 
 
10:31:26   132 
 
10:36:21    67 
 
10:38:22   118 
 
10:39:37   110 
 
10:41:03    65 
 
10:43:49    71 
 
10:43:57    90 
 
10:45:17    93 
 
10:45:44    74

私は(2,1,2)オーダーのARIMAモデルを使用してYの値を予測します。

model = ARIMA(endog=dt, order=(2, 1, 2)) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\tsa\arima_model.py", line 1000, in __new__ 
 
    mod.__init__(endog, order, exog, dates, freq, missing) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\tsa\arima_model.py", line 1015, in __init__ 
 
    super(ARIMA, self).__init__(endog, (p, q), exog, dates, freq, missing) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\tsa\arima_model.py", line 452, in __init__ 
 
    super(ARMA, self).__init__(endog, exog, dates, freq, missing=missing) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\tsa\base\tsa_model.py", line 44, in __init__ 
 
    self._init_dates(dates, freq) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\tsa\base\tsa_model.py", line 56, in _init_dates 
 
    dates = to_datetime(dates) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\tools\datetimes.py", line 514, in to_datetime 
 
    result = _convert_listlike(arg, box, format, name=arg.name) 
 
    File "C:\Users\Moushmi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\tools\datetimes.py", line 435, in _convert_listlike 
 
    require_iso8601=require_iso8601 
 
    File "pandas\_libs\tslib.pyx", line 2355, in pandas._libs.tslib.array_to_datetime (pandas\_libs\tslib.c:46617) 
 
    File "pandas\_libs\tslib.pyx", line 2583, in pandas._libs.tslib.array_to_datetime (pandas\_libs\tslib.c:46321) 
 
    File "pandas\_libs\tslib.pyx", line 2516, in pandas._libs.tslib.array_to_datetime (pandas\_libs\tslib.c:45268) 
 
TypeError: <class 'datetime.time'> is not convertible to datetime

私のコードは次のとおりです:

model = ARIMA(endog=dt, order=(2, 1, 2)) 

results_ARIMA = model.fit()
プリント(results_ARIMA) plt.plot(しかし、私は次のエラーを取得していますmodel.resid) plt.show()

ここでdtはデータフレームです。この問題を解決するには、提案が必要です。 私はこの問題に非常に似ていますenter link description hereしかし解決策はありません。

+0

@ Quickbeam2k1このエラーの説明をありがとうございます。データフレームインデックスを時間から日時に変更しました。それは働いています。 –

答えて

0

本質的に、エラーメッセージを理解する必要があります。まず、一連の時間オブジェクトがあります。たとえば、次のようになります。今、あなたがそう

pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime 
(pandas\_libs\tslib.c:46617)() 

pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime 
(pandas\_libs\tslib.c:46321)() 

pandas\_libs\tslib.pyx in pandas._libs.tslib.array_to_datetime 
(pandas\_libs\tslib.c:45268)() 

TypeError: <class 'datetime.time'> is not convertible to datetime 

を持っているので、これは、同じエラーメッセージを提供し、驚くことではないが、我々は時間を変換することはできません

pd.to_datetime(s) 

日時に変換してみましょう

import pandas as pd 
s = pd.Series(pd.datetime(2017, 5, 3, 11,11,11).time()) 

0 11:11:11 
dtype: object 

datepartが完全に欠落しているため、オブジェクトをdatetimeオブジェクトに変換します。本質的に、そこにいくつかの日付を提供する必要があります。

関連する問題