Cross Validated
2024-06-09 00:17 UTC
By Tunneller
AI-113-20240609-social-media-129c7e87
Can I use Prophet on a timeseries with a nonstationary daily variation?
I have some temperature data with gaps that I need to interpolate onto a uniform time series (and extrapolate a bit too). I am trying to use FB Prophet and it seems almost perfect. And yet.... If you look at the graph you can see that if the missing data is far from a daily extreme then Prophet is fine. But when the missing data is near an daily max/min then it ignores the measured data. Reading the documentation it seems that Prophet anticipates data of the form a(t) + F(H) where t is daily time, a(t) is slowly varying but nonstationary, H is the hourly time and F(H) is the periodic variation for that day, but it does not anticipate a(t) + b(t) F(H) where b is also slowly varying but nonstationary. I see in Adaptive Normalization for Non-stationary Time Series Forecasting: that those authors decompose each day into slices and then apply normalization by removing and restores the non-stationary factors a(t) and b(t) . Would that be the correct approach here? It doesnt seem completely trivial to implement because they use machine learning to do the splicing and dicing. Alternatively, I do see that Prophet allows introduction of arbitrary regressors. If I somehow estimated b(t) (e.g. by averaging each day), or whatever, then is there a way to tell Prophet about b ? How else do people interpolate gaps in time series? This seems like it should be a completely standard problem to solve, but I'm stumbling. df_p = df[["Time","Temperature"]].copy() df_p = df_p.rename(columns={"Time"…
I have some temperature data with gaps that I need to interpolate onto a uniform time series (and extrapolate a bit too). I am trying to use FB Prophet and it seems almost perfect. And yet.... If you look at the graph you can see that if the missing data is far from a daily extreme then Prophet is fine. But when the missing data is near an daily max/min then it ignores the measured data. Reading the documentation it seems that Prophet anticipates data of the form a(t) + F(H) where t is daily time, a(t) is slowly varying but nonstationary, H is the hourly time and F(H) is the periodic variation for that day, but it does not anticipate a(t) + b(t) F(H) where b is also slowly varying but nonstationary. I see in Adaptive Normalization for Non-stationary Time Series Forecasting: that those authors decompose each day into slices and then apply normalization by removing and restores the non-stationary factors a(t) and b(t) . Would that be the correct approach here? It doesnt seem completely trivial to implement because they use machine learning to do the splicing and dicing. Alternatively, I do see that Prophet allows introduction of arbitrary regressors. If I somehow estimated b(t) (e.g. by averaging each day), or whatever, then is there a way to tell Prophet about b ? How else do people interpolate gaps in time series? This seems like it should be a completely standard problem to solve, but I'm stumbling. df_p = df[["Time","Temperature"]].copy() df_p = df_p.rename(columns={"Time"…
Full article content could not be extracted automatically. Read the original below.
Source:
Cross Validated
· stats.stackexchange.com