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