Prepares a prophet model specification for use within the fable package.
prophet(formula,...)
Arguments
formula: A symbolic description of the model to be fitted of class formula.
...: Additional arguments passed to the optimizing or sampling functions in Stan.
Details
The prophet modelling interface uses a formula based model specification (y ~ x), where the left of the formula specifies the response variable, and the right specifies the model's predictive terms. Like any model in the fable framework, it is possible to specify transformations on the response.
A prophet model supports piecewise linear or exponential growth (trend), additive or multiplicative seasonality, holiday effects and exogenous regressors. These can be specified using the 'specials' functions detailed below. The introduction vignette provides more details on how to model data using this interface to prophet: vignette("intro", package="fable.prophet").
Specials
growth
The growth special is used to specify the trend parameters.
The carrying capacity for when type is "logistic".
floor
The saturating minimum for when type is "logistic".
changepoints
A vector of dates/times for changepoints. If NULL , changepoints are automatically selected.
n_changepoints
The total number of changepoints to be selected if changepoints is NULL
changepoint_range
Proportion of the start of the time series where changepoints are automatically selected.
changepoint_prior_scale
Controls the flexibility of the trend.
season
The season special is used to specify a seasonal component. This special can be used multiple times for different seasonalities.
Warning: The inputs controlling the seasonal ‘period’ is specified isdifferent than ‘prophet::prophet()’. Numeric inputs are treated as thenumber of observations in each seasonal period, not the number of days.
season(period = NULL, order = NULL, prior_scale = 10,
type = c("additive", "multiplicative"), name = NULL)
period
The periodic nature of the seasonality. If a number is given, it will specify the number of observations in each seasonal period. If a character is given, it will be parsed using lubridate::as.period , allowing seasonal periods such as "2 years".
order
The number of terms in the partial Fourier sum. The higher the order , the more flexible the seasonality can be.
prior_scale
Used to control the amount of regularisation applied. Reducing this will dampen the seasonal effect.
type
The nature of the seasonality. If "additive", the variability in the seasonal pattern is fixed. If "multiplicative", the seasonal pattern varies proportionally to the level of the series.
name
The name of the seasonal term (allowing you to name an annual pattern as 'annual' instead of 'year' or 365.25 for example).
holiday
The holiday special is used to specify a tsibble containing holidays for the model.
holiday(holidays = NULL, prior_scale = 10L)
holidays
A list("tsibble") containing a set of holiday events. The event name is given in the 'holiday' column, and the event date is given via the index. Additionally, "lower_window" and "upper_window" columns can be used to include days before and after the holiday.
prior_scale
Used to control the amount of regularisation applied. Reducing this will dampen the holiday effect.
xreg
The xreg special is used to include exogenous regressors in the model. This special can be used multiple times for different regressors with different arguments. Exogenous regressors can also be used in the formula without explicitly using the xreg() special, which will then use the default arguments.
xreg(..., prior_scale = NULL, standardize = "auto", type = NULL)
...
A set of bare expressions that are evaluated as exogenous regressors
prior_scale
Used to control the amount of regularisation applied. Reducing this will dampen the regressor effect.
standardize
Should the regressor be standardised before fitting? If "auto", it will standardise if the regressor is not binary.
type
Does the effect of the regressor vary proportionally to the level of the series? If so, "multiplicative" is best. Otherwise, use "additive"
Examples
library(tsibble)as_tsibble(USAccDeaths)%>% model( prophet = prophet(value ~ season("year",4, type ="multiplicative")))