问题描述
我正在尝试使用 ARIMA(4,3) 和滑动窗口技术 (TimeSeriessplit) 来预测失业率,但遇到了 SVD 不收敛的问题。
Finland_unemployment_rate = array([[ 3.6],[ 3. ],[ 3.9],[ 4.6],[ 6.4],[ 2.1],[ 2.4],[ 2.2],[ 2.5],[ 2.3],[ 2.9],[ 2.7],[ 3.3],[ 4.5],[ 6.1],[ 3.1],[ 3.2],[ 4.1],[ 5.2],[ 6.7],[ 9.1],[ 5.9],[ 6.2],[ 7.4],[ 7.7],[ 8. ],[ 8.6],[10.3],[10.2],[10.5],[11.7],[13.5],[11.6],[10.6],[11.5],[11.8],[12.7],[13.2],[12.9],[14.3],[15.6],[16.1],[17.1],[19. ],[16.3],[14.9],[16.7],[16.9],[16.5],[18.7],[18.3],[18.5],[19.9],[15.4],[14.6],[15.7],[15.2],[15. ],[14.7],[15.5],[14.8],[15.1],[14.5],[13. ],[14. ],[14.2],[13.8],[14.1],[13.4],[13.6],[10.8],[11.1],[11.4],[11.3],[12.1],[12.4],[12.6],[12. ],[10.1],[10. ],[10.9],[13.3],[ 9. ],[ 9.5],[ 9.4],[11.2],[11. ],[11.9],[ 7.8],[ 8.3],[ 8.9],[ 8.7],[ 9.9],[ 9.8],[ 9.6],[ 9.3],[ 7.6],[ 8.8],[ 8.1],[10.4],[ 8.5],[ 8.2],[ 7.9],[ 7.2],[ 9.2],[ 7.3],[ 7.1],[ 8.4],[ 6.6],[ 6.9],[ 6.8],[ 7.5],[ 6. ],[ 5.6],[ 5.8],[ 7. ],[10.7],[ 6.5],[ 6.3],[ 5.4],[ 7.4]])
X = Finland_UR.Value
tscv = TimeSeriessplit(n_splits=381,max_train_size= 320)
Finland_pred = []
for train,test in tscv.split(X):
X_train,X_test = X[train],X[test]
if len(X_train) == 320 :
model = ARIMA(X_train,(4,3))
model = model.fit()
start = len(train)
end = len(train) + len(test) -1
pred = model.predict(start= start,end = end)
Finland_pred.append(pred)
最初,我的 max_train_size 是 100,但是经过几次迭代后,它说 SVD 没有收敛。之后,我又将 max_trained_size 更改了几次并达到了 350,此错误不再发生。 我也尝试将 ARIMA 更改为 (3,3) (1,3) 但当我的 max_train_size 数量较少时,仍然出现同样的问题。当我更改为 ARIMA(1,1) 时,即使 max_train_size = 100 模型也能工作 我在网上查找并尝试使用 Max_min_scaler 对其进行标准化,但它也不起作用 因此,我的模型或数据有什么问题,我可以做些什么来保持我的 max_train_size 相对较低?
或者我应该简化 ARIMA 的顺序?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)