我使用predict (facebook软件包)的月度数据来预测汽车销量。GAM似乎忽略(不适合)所有更高的值(见图)。与ARIMA模型相比,这给了我一个非常高的MSE
df <- data.frame(ds = seq(as.Date('1993-01-01'), as.Date('2017-06-01'),by = 'm'), y)
attach(df)
m <- prophet(df,weekly.seasonality = F, yearly.seasonality = T, seasonality.prior.scale = 12)
future <- make_future_dataframe(m, periods = 12, freq = 'm')
forecast <- predict(m, future)
tail(forecast[c('ds', 'yhat', 'yhat_lower', 'yhat_upper')])
plot(m, forecast)发布于 2018-04-29 12:27:19
@alien_plutone,
您需要减少时间序列值(y)的可变性,即汽车销售值。大多数时间序列模型都期望时间序列的值(y)是平稳的。我建议在应用prophet模型之前对时间序列值使用对数变换。例如,引入以下代码行以使时间序列固定。
注意:
对数变换以带来时间序列中的平稳值(y)。大多数时间序列模型要求输入值(时间序列)是平稳的。如果时间序列的趋势和季节性在一段时间内保持稳定,则称该时间序列是平稳的。
df['y'] <- np.log(df['y'])
例如,基于您的代码:
df <- data.frame(ds = seq(as.Date('1993-01-01'), as.Date('2017-06-01'),by = 'm'), y)
df['y'] <- np.log(df['y'])
m <- prophet(df,weekly.seasonality = F, yearly.seasonality = T, seasonality.prior.scale = 12)
future <- make_future_dataframe(m, periods = 12, freq = 'm')
forecast <- predict(m, future)
tail(forecast[c('ds', 'yhat', 'yhat_lower', 'yhat_upper')])
plot(m, forecast) 请务必让我知道这个答案是否能帮助你降低MSE。请使用exp函数将预测值恢复到原始规模。
非平稳时间序列
Click here to see plot of a non-stationary series
平稳时间序列
https://stackoverflow.com/questions/45460590
复制相似问题