You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am experiencing issues with having Prophet fit daily usage data. Based on my understanding of the data there is daily, very likely weekly and monthly (possibly annual) components. I have 90d of 15min data. The forecast is interested in next week forecast at 15 min increments. Pretty sure the data is stationary in the data I am using for testing (non stationary is also possible but currently a specific case is used to avoid that).
First when I let prophet do its own thing it does something very odd to the daily seasonality: P = Prophet() ... P.plot_components(fcast) P.plot(fcast, figsize=(60,6)) #is there a way to plot specific subregion instead of full data?
The daily seasonality has way too many bumps in it. The amplitude of daily forecast is also very low. For weekly seasonality there is a large drop around wed, which seems to be exaggerated as the original data (black) has relatively same lows.
I am able to somewhat manage the daily seasonality if I force it myself: P = Prophet(daily_seasonality=False) P.add_seasonality(name="daily", period=1, fourier_order=1) #increasing fourier_order to higher number leads to multiple bumps rather than bettermatching of the data ... P.plot_components(fcast) P.plot(fcast, figsize=(60,6)) #is there a way to plot specific subregion instead of full data?
The data is matched closer but the amplitude of the forecast is still a big issue.
I tried adjusting # of changepoints (ie 90*10) no impact,
changepoint_prior_scale set to 0.17 improves a little bit:
I tried logistic growth not helpful.
Setting daily seasonality to multiplicative goes too ham on the amplitude and the period is offset:
P = Prophet(daily_seasonality=False, changepoint_prior_scale=0.0925)
P.add_seasonality(name="daily", period=1, fourier_order=1, mode="multiplicative")
Is a little bit better amplitude match, but its out of sync with actual data and is off on the low part:
Any suggestions as to how I can match the data better (each day is a spike)?
I am experiencing issues with having Prophet fit daily usage data. Based on my understanding of the data there is daily, very likely weekly and monthly (possibly annual) components. I have 90d of 15min data. The forecast is interested in next week forecast at 15 min increments. Pretty sure the data is stationary in the data I am using for testing (non stationary is also possible but currently a specific case is used to avoid that).
First when I let prophet do its own thing it does something very odd to the daily seasonality:
P = Prophet()
...
P.plot_components(fcast)
P.plot(fcast, figsize=(60,6)) #is there a way to plot specific subregion instead of full data?
The daily seasonality has way too many bumps in it. The amplitude of daily forecast is also very low. For weekly seasonality there is a large drop around wed, which seems to be exaggerated as the original data (black) has relatively same lows.
I am able to somewhat manage the daily seasonality if I force it myself:
P = Prophet(daily_seasonality=False)
P.add_seasonality(name="daily", period=1, fourier_order=1) #increasing fourier_order to higher number leads to multiple bumps rather than bettermatching of the data
...
P.plot_components(fcast)
P.plot(fcast, figsize=(60,6)) #is there a way to plot specific subregion instead of full data?
The data is matched closer but the amplitude of the forecast is still a big issue.
I tried adjusting # of changepoints (ie 90*10) no impact,
changepoint_prior_scale set to 0.17 improves a little bit:
I tried logistic growth not helpful.
Setting daily seasonality to multiplicative goes too ham on the amplitude and the period is offset:
removing changepoint_prior_scale leads to worse match, fourier increase leads to more bumps
Best match with multiplicative and changepoint_prior_scale=0.17 (code above):
Any suggestions as to how I can match the data better (each day is a spike)?
The text was updated successfully, but these errors were encountered: