当数据在 python 中仅包含 HH:MM:SS 时,使用 ARIMA 模型预测时间序列数据



我有一个数据帧,其中包含时间作为索引,格式为 HH:MM:SS。数据帧只有一列,例如 Y,其中包含浮点值。 我的数据集是:

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:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagesstatsmodelstsaarima_model.py", line 1000, in __new__
mod.__init__(endog, order, exog, dates, freq, missing)
File "C:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagesstatsmodelstsaarima_model.py", line 1015, in __init__
super(ARIMA, self).__init__(endog, (p, q), exog, dates, freq, missing)
File "C:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagesstatsmodelstsaarima_model.py", line 452, in __init__
super(ARMA, self).__init__(endog, exog, dates, freq, missing=missing)
File "C:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagesstatsmodelstsabasetsa_model.py", line 44, in __init__
self._init_dates(dates, freq)
File "C:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagesstatsmodelstsabasetsa_model.py", line 56, in _init_dates
dates = to_datetime(dates)
File "C:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagespandascoretoolsdatetimes.py", line 514, in to_datetime
result = _convert_listlike(arg, box, format, name=arg.name)
File "C:UsersMoushmiAppDataLocalProgramsPythonPython36-32libsite-packagespandascoretoolsdatetimes.py", line 435, in _convert_listlike
require_iso8601=require_iso8601
File "pandas_libstslib.pyx", line 2355, in pandas._libs.tslib.array_to_datetime (pandas_libstslib.c:46617)
File "pandas_libstslib.pyx", line 2583, in pandas._libs.tslib.array_to_datetime (pandas_libstslib.c:46321)
File "pandas_libstslib.pyx", line 2516, in pandas._libs.tslib.array_to_datetime (pandas_libstslib.c:45268)
TypeError: <class 'datetime.time'> is not convertible to datetime

我的代码是:

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

results_ARIMA = model.fit(
(print(results_ARIMA( plt.plot(model.resid( plt.show((

此处dt是数据帧。需要建议才能解决问题。 我的问题与此非常相似 输入链接描述 这里 但是没有解决方案。

本质上,您必须了解错误消息。 首先,你有一系列的时间对象,例如

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

现在让我们尝试将其转换为日期时间

pd.to_datetime(s)

这提供了与您相同的错误消息

pandas_libstslib.pyx in pandas._libs.tslib.array_to_datetime 
(pandas_libstslib.c:46617)()
pandas_libstslib.pyx in pandas._libs.tslib.array_to_datetime 
(pandas_libstslib.c:46321)()
pandas_libstslib.pyx in pandas._libs.tslib.array_to_datetime 
(pandas_libstslib.c:45268)()
TypeError: <class 'datetime.time'> is not convertible to datetime

因此,毫不奇怪,我们无法将时间对象转换为日期时间对象,因为日期部分完全丢失。从本质上讲,您需要在那里提供一些日期。

最新更新