The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

This document provides a very brief introduction to the Prophet API. For a detailed guide on using Prophet, please visit the main site at https://facebook.github.io/prophet/.

Prophet uses the normal model fitting API. We provide a prophet function that performs fitting and returns a model object. You can then call predict and plot on this model object.

First we read in the data and create the outcome variable.

library(readr)
df <- read_csv('../tests/testthat/data.csv')
#> Parsed with column specification:
#> cols(
#>   ds = col_date(format = ""),
#>   y = col_double()
#> )

We call the prophet function to fit the model. The first argument is the historical dataframe. Additional arguments control how Prophet fits the data.

m <- prophet(df)
#> Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.

We need to construct a dataframe for prediction. The make_future_dataframe function takes the model object and a number of periods to forecast:

future <- make_future_dataframe(m, periods = 365)
head(future)
#>           ds
#> 1 2012-05-18
#> 2 2012-05-21
#> 3 2012-05-22
#> 4 2012-05-23
#> 5 2012-05-24
#> 6 2012-05-25

As with most modeling procedures in R, we use the generic predict function to get our forecast:

forecast <- predict(m, future)
head(forecast)
#>           ds    trend additive_terms additive_terms_lower additive_terms_upper
#> 1 2012-05-18 40.50193      -4.547887            -4.547887            -4.547887
#> 2 2012-05-21 40.01455      -5.467254            -5.467254            -5.467254
#> 3 2012-05-22 39.85209      -5.609274            -5.609274            -5.609274
#> 4 2012-05-23 39.68963      -5.724989            -5.724989            -5.724989
#> 5 2012-05-24 39.52717      -5.806214            -5.806214            -5.806214
#> 6 2012-05-25 39.36471      -6.155667            -6.155667            -6.155667
#>      weekly weekly_lower weekly_upper    yearly yearly_lower yearly_upper
#> 1 0.5681288    0.5681288    0.5681288 -5.116016    -5.116016    -5.116016
#> 2 0.3000873    0.3000873    0.3000873 -5.767341    -5.767341    -5.767341
#> 3 0.3905757    0.3905757    0.3905757 -5.999850    -5.999850    -5.999850
#> 4 0.5129521    0.5129521    0.5129521 -6.237941    -6.237941    -6.237941
#> 5 0.6736987    0.6736987    0.6736987 -6.479913    -6.479913    -6.479913
#> 6 0.5681288    0.5681288    0.5681288 -6.723796    -6.723796    -6.723796
#>   multiplicative_terms multiplicative_terms_lower multiplicative_terms_upper
#> 1                    0                          0                          0
#> 2                    0                          0                          0
#> 3                    0                          0                          0
#> 4                    0                          0                          0
#> 5                    0                          0                          0
#> 6                    0                          0                          0
#>   yhat_lower yhat_upper trend_lower trend_upper     yhat
#> 1   32.36049   39.19215    40.50193    40.50193 35.95404
#> 2   31.12032   38.10306    40.01455    40.01455 34.54730
#> 3   30.70133   37.79524    39.85209    39.85209 34.24282
#> 4   30.54989   37.46622    39.68963    39.68963 33.96464
#> 5   30.13145   36.89207    39.52717    39.52717 33.72096
#> 6   29.46769   36.58290    39.36471    39.36471 33.20905

You can use the generic plot function to plot the forecast, but you must also pass the model in to be plotted:

plot(m, forecast)

plot of chunk unnamed-chunk-6

You can plot the components of the forecast using the prophet_plot_components function:

prophet_plot_components(m, forecast)

plot of chunk unnamed-chunk-7

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.