1
$\begingroup$

I've got 1325 days of revenue data and when plotting the components it makes 100% sense from a domain expert point of view, so the model is capturing the variations quite well (or it seems it does...). I've added the country holidays using m.add_country_holidays(country_name='GB')

However, when it comes to accuracy I'm getting the following averages:

MAPE: 0.3
MAE: 721,415

721,415 is not an acceptable error. Around 100K would be.

These are the MAE and MAPE plots: MAE

MAPE

Time-series plot: time-series

Performance metrics (first 20):

performance metrics

What else can I do to improve the accuracy of this model? Thank you

$\endgroup$
  • $\begingroup$ It might be helpful to outline the process you've followed so far - e.g. what are you trying to predict, any transformations applied to the target, and the model parameterisation. $\endgroup$ – bradS Nov 20 '19 at 12:07
  • $\begingroup$ I haven't applied any transformation to the target or modified any parameter. Prophet model is quite straightforward and automatic. It only needs 2 columns, date and number, which, in my case are revenue figures. $\endgroup$ – raulb1 Nov 20 '19 at 14:03
  • $\begingroup$ Can you include a plot of the time-series data and the predictions made by your model? $\endgroup$ – zachdj Nov 20 '19 at 14:27
  • 1
    $\begingroup$ Your target looks very noisy - it seems to fluctuate between 1m and 5m. Maybe you should consider applying some sort of transformation. There also seem to be massive downward spikes (2017, 2018, 2019)... have you taken a look at these in any detail? $\endgroup$ – bradS Nov 20 '19 at 16:14
  • 1
    $\begingroup$ I would start with something like the log (base of your choice, 10 or e is common). I would also consider removing the Christmas data and treating it separately - it looks to be an outlier and is likely distorting the modelling. $\endgroup$ – bradS Nov 21 '19 at 9:17
1
$\begingroup$

Data here is bit noisy & has a lot of fluctuations. As few comment suggest apply some transformation on it. I would say get your data in some smaller range & then apply LSTM to predict it. I made time-series work with LSTM with removal of noise by eliminating outliers & it worked with nice further prediction.

RNNs tend to work better with time-series data especially bidirectional-LSTM due to their backwards learning capabilities.

|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.