I am new in time-series forecasting with Prophet, Currently, I am doing forecasting for the number of sales, I don't get really good results with Prophet, my dataset doesn't have a specific trend and has random spikes:
Here is the result of my training and testing, I am getting very high errors in testing, I tried to give the spike as a holiday, the blue line is the training result, the black line is the measurement, the yellow line is the testing result and the green line is the actual data. Also, I add this to my model:
I have many questions and it would be great if help me figure out how can I improve my accuracy.
The line of change points (red) is smooth, should I adjust the change points by myself ?, so the model works better because there are so many changing points that Prophet cannot detect.
If the answer to the first question is yes! how can I do it? In the documentation, it is written, is better the model does it automatically, so I didn't change it.
Does Prophet work well in these types of datasets which have randomly increasing and decreasing?
I want to have high accuracy as much as possible:
This is my result for accuracy:
cutoffs = pd.to_datetime(["2019-12"])
I am new in time-series forecasting with Prophet, Currently, I am doing forecasting for the number of sales, I don't get really good results with Prophet, my dataset doesn't have a specific trend and has random spikes:
Here is the result of my training and testing, I am getting very high errors in testing, I tried to give the spike as a holiday, the blue line is the training result, the black line is the measurement, the yellow line is the testing result and the green line is the actual data. Also, I add this to my model:
model = Prophet(changepoint_prior_scale=0.08, seasonality_prior_scale=0.6, weekly_seasonality=False, daily_seasonality=False, yearly_seasonality=True, seasonality_mode = "additive", holidays=holidays)
This is also the result for the components plot:
I have many questions and it would be great if help me figure out how can I improve my accuracy.
I want to have high accuracy as much as possible: This is my result for accuracy: cutoffs = pd.to_datetime(["2019-12"])
df_cv2 = cross_validation(model, cutoffs=cutoffs,horizon="365 days")
df_p = performance_metrics(df_cv2)
The result of mse for testing is 398 which is extremely high.
I would appreciate any suggestions.