facebook / prophet

Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.
https://facebook.github.io/prophet
MIT License
18.38k stars 4.52k forks source link

Questions on graph forecasted and time series input #458

Closed nmiskandar closed 6 years ago

nmiskandar commented 6 years ago

Hi there, I am relatively new to data analytics/machine learning please pardon me if I am unsure with technical terms. I have been using prophet open source and it has been great. However I am quite unsure if the data that I'm using is suitable. I'm using data from an IOT Sensor that logs temperature periodically . For example,

df.head(5) Output | Date | Value 2017-11-24 17:55:00 | 7.7 2017-11-24 17:55:00 | 7.6 2017-11-24 17:56:00 | 7.6 2017-11-24 17:56:00 | 7.5 2017-11-24 18:06:00 | 6.6

The question is does prophet support up to hours:min:secs as all of the examples that I have come across uses year-month-day In addition, i referenced my code based on the Non - daily data documentation

model = Prophet(changepoint_prior_scale = 0.01) model.fit(df) future_data = model.make_future_dataframe(periods=300, freq = 'H')

Can I seek clarification on how do I calculate changepoint_prior_scale, periods and frequency ? Last but not least, referencing to the image, forecast

I am pretty sure the data that I have collected only started in November 2017 whereas the black dots = actual observation can be seen from January 2017. Is there any explanation to this? Appreciate your help on this. Thanks in advance

bletham commented 6 years ago

It does seem that the dates aren't being parsed correctly since in addition to the data from Jan 2017 that shouldn't be there, there is also data for later in 2018 which I'm assuming shouldn't be there either?

The df.head(5) that you pasted seems to have dates in the right format - see https://github.com/facebook/prophet/blob/master/examples/example_yosemite_temps.csv for how the timestamps should be formatted.

Somewhere you turned this to have columns named ds and y, and not "Date" and "Value" before passing to prophet. Could you paste the head of the dataframe right before you pass it into fit?

bletham commented 6 years ago

and also make sure that the whole dataframe is in that timestamp format?

nmiskandar commented 6 years ago

Hi @bletham , yes I have done so. Please refer to the refer to the 3 images that I have screenshot from Jupyter. According to what I have read through the web, it is a must to convert the column naming convention to ds and y if I'm not mistaken. Thank you screenshot1 screenshot2 screenshot3

nmiskandar commented 6 years ago

Hi @bletham, I managed to solve the issue by managing my data to be in date time prior without using python to convert. Thanks