4.2 Time Domain TSA
- Prophet
- Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly, and daily seasonality, plus holiday effects. It works best with time series that have strong seasonal effects and several seasons of historical data.
- Prophet is robust to missing data and shifts in the trend, and typically handles outliers well.
- Forecasting: Principles and Practice, V3
- Machine Learning with R, the tidyverse, and mlr
- Some R Time Series Issues, TSA2
4.2.1 tsibbles, feasts, fable
- Time series graphics using feasts
- Tidy time series data using tsibbles
- Electricity demand data in tsibble format
- Reintroducing tsibble: data tools that melt the clock
The fable ARIMA() function uses an alternate parameterisation of constants to stats::arima() and forecast::Arima(). While the parameterisations are equivalent, the coefficients for the constant/mean will differ.
In fable, the parameterisation used is:
\[ (1-φ_1B - \cdots - φ_p B^p)(1-B)^d y_t = c + (1 + θ_1 B + \cdots + θ_q B^q)\varepsilon_t \]
In stats and forecast, an ARIMA model is parameterised as:
\[ (1-φ_1B - \cdots - φ_p B^p)(y_t' - μ) = (1 + θ_1 B + \cdots + θ_q B^q)\varepsilon_t \]
where μ is the mean of \((1-B)^d y_t\) and \(c = μ(1-φ_1 - \cdots - φ_p)\).
4.2.2 Interpretation
4.2.3 Autoregressions (AR)
For example 4.1, it can be visualised:

When using other functions in feasts, the univaraite time series must be specified.


4.2.3.1 Models
| .model | sigma2 | log_lik | AIC | AICc | BIC | ar_roots | ma_roots |
|---|---|---|---|---|---|---|---|
| fable::ARIMA(p.log ~ 1 + pdq(1, 0, 0)) | 0.06436 | -4.67 | 15.34 | 15.56 | 23.47 | 1.31917441155036+0i | complex(0) |
| .model | term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|---|
| fable::ARIMA(p.log ~ 1 + pdq(1, 0, 0)) | ar1 | 0.75805 | 0.06287 | 12.058 | 6.601e-22 |
| fable::ARIMA(p.log ~ 1 + pdq(1, 0, 0)) | constant | -0.04351 | 0.02324 | -1.872 | 6.379e-02 |

The model residuals can be analysed using function gg_tsresiduals().

and function qqPlot().

#> [1] 6 47
4.2.4 Inference
Log Likelihood Ratio Test
| whi | stat | df1 | df2 | p_value | prob | if_reject |
|---|---|---|---|---|---|---|
| logLik | 90.98 | 1 | 110 | 0 | 0.05 | TRUE |
4.2.5 Mis-Specification Analysis (MSA)
#> Registered S3 method overwritten by 'propagate':
#> method from
#> print.interval tsibble
| whi | stat | df1 | df2 | p_value | prob | if_reject |
|---|---|---|---|---|---|---|
| Jarque-Bera | 0.3879 | 2 | 109 | 0.8237 | 0.05 | FALSE |
| .model | lb_stat | lb_pvalue |
|---|---|---|
| fable::ARIMA(p.log ~ 1 + pdq(1, 0, 0)) | 2.381 | 0.1228 |