【问题标题】:ARIMA Forecast: Cannot cast ufunc subtract output from dtype('float64') to dtype('int64') with casting rule 'same_kind'ARIMA 预测:无法使用转换规则“same_kind”将 ufunc 减去输出从 dtype('float64') 转换为 dtype('int64')
【发布时间】:2018-06-01 15:59:51
【问题描述】:

我正在使用 ARIMA 来拟合值并将其保存为 pickle 文件。发布后,pickle 文件用于摆脱样本预测。但是,在获取样本预测时,我收到以下错误: 无法使用转换规则“same_kind”将 ufunc 减去输出从 dtype('float64') 转换为 dtype('int64')。

def forecast_fit(df):            
  series=df
  X = series.values
  train=X
  model = ARIMA(X, order=(1,0,1))
  model_fit = model.fit(disp=0)
  model_fit.save('model.pkl')
forecast_fit(df)
#Out of sample forecasts
loaded = ARIMAResults.load('model.pkl)
forecast = loaded.forecast(steps=17)[0]        #error_occurs_here
df=pd.DataFrame(forecast, columns=[i+'_hat'])  

df 包含以下数据: https://docs.google.com/spreadsheets/d/14W77ra-nQYqvDN8wSPhhiN11lBnob6ZW0UVevQ5orKk/edit?usp=sharing

我附上数据是因为这个样本发生了错误,其余变量(我正在对许多其他变量重复练习)不会产生错误。

【问题讨论】:

  • 这个错误似乎是一些数据类型不匹配,但它应该反映在拟合模型而不是退出样本预测时。

标签: python machine-learning forecasting arima


【解决方案1】:

似乎 statsmodels ARIMA 会抛出错误,因为它没有将 int 显式转换为 float。如果我尝试将数据转换为浮点数,statsmodels 会运行良好。

X = X.astype('float32')

这已经是 Github 上报告的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 2016-12-05
    • 2019-02-26
    • 2018-08-15
    • 1970-01-01
    • 2017-01-20
    • 2021-01-26
    • 2019-03-11
    相关资源
    最近更新 更多