TypeError:只能将列表而不是“ str”连接到列表-自回归模型

问题描述

亲爱的, 当我尝试拟合模型时,我正在时间序列数据集上应用自回归模型,但标题中提到了此错误。 请找到以下代码

dataset = dataset.values
# split into train and test sets
train_size = int(len(dataset) * 0.67)
test_size = len(dataset) - train_size
train,test = dataset[0:train_size,:],dataset[train_size:len(dataset),:]
print(len(train),len(test))

from matplotlib import pyplot
from statsmodels.tsa.ar_model import AutoReg
from sklearn.metrics import mean_squared_error
from math import sqrt

# train autoregression
model = AutoReg(train,lags=20)
model_fit = model.fit()

收到错误

TypeError                                 Traceback (most recent call last)
<ipython-input-13-94515331b50e> in <module>
      1 # train autoregression
----> 2 model = AutoReg(train,lags=20)
      3 model_fit = model.fit()

TypeError: can only concatenate list (not "str") to list

请告知如何解决此问题。

解决方法

正如评论所说,很高兴看到dataset。但是这行

train,test = dataset[0:train_size,:],...

让我认为数据集是二维的,而文档here则表明您需要一维

所以也许你想要

train,0],...

或数据集的其他某些列(不是index-0)

,

因此,确实地,如上所述,查看您的数据集,您的训练和测试是2D数组,而AutoReg需要1D,因此您应该尝试此答案中的建议,看看是否可行? – piterbarg