Hello,

I have a data set over five years of 24 different products.

I would like to create a time series forecasting plot to look at the purchase history of these 24 products.

Can I produce an out-put plot for each product?

Thanks!

Hello,

I have a data set over five years of 24 different products.

I would like to create a time series forecasting plot to look at the purchase history of these 24 products.

Can I produce an out-put plot for each product?

Thanks!

Yep â€“ I'm not sure what exactly you mean by out-plot plot, but you can certainly plot all of them together using `facet_wrap()`

(or grid),

https://www.r-graph-gallery.com/280-use-faceting-for-time-series-with-ggplot2/

or make many plots by writing a function and passing in the product variable with quasiquotation:

Many other ways too, I imagine. But, to answer your question: yes.

2 Likes

Mara:

That is exactly what I need.

I will post more follow-up questions on this topic later.

You guys have been helpful.

Thanks, team!

There is a new package called TSstudio. It can do some really cool plots for time series and might serve your purpose well. Check the package intro

https://cran.r-project.org/web/packages/TSstudio/vignettes/TSstudio_Intro.html

(I fee the questions itself and the used tags are not matching well with the intended question)

3 Likes

rahmed:

Thank you, sir!

I corrected my post's title.

if you're doing time series forecasting then you should likely look at the `forecast`

package from RJ Hyndman.

His book, *Forecasting Principles and Practice* is freely available online: Forecasting: Principles and Practice (2nd ed)

Here's an example of building an example time series model and associated plots:

```
library(forecast)
library(fpp2)
#> Loading required package: ggplot2
#> Loading required package: fma
#> Loading required package: expsmooth
a10 %>%
BoxCox.lambda() ->
lambda
a10 %>%
BoxCox(lambda) %>%
auto.arima() ->
fit
print(fit)
#> Series: .
#> ARIMA(3,0,3)(0,1,1)[12] with drift
#>
#> Coefficients:
#> ar1 ar2 ar3 ma1 ma2 ma3 sma1 drift
#> -0.0607 -0.0007 0.7459 0.0751 0.2973 -0.4682 -0.8276 0.0126
#> s.e. 0.1207 0.1087 0.0966 0.1440 0.1246 0.1357 0.0663 0.0003
#>
#> sigma^2 estimated as 0.006168: log likelihood=213.52
#> AIC=-409.03 AICc=-408.04 BIC=-379.72
checkresiduals(fit, plot=TRUE)
```

```
#>
#> Ljung-Box test
#>
#> data: Residuals from ARIMA(3,0,3)(0,1,1)[12] with drift
#> Q* = 20.172, df = 16, p-value = 0.2126
#>
#> Model df: 8. Total lags used: 24
fit %>% forecast() %>% autoplot()
```

Created on 2018-06-26 by the reprex package (v0.2.0).

5 Likes

I am not sure about the question from the beginning as it is apparently a plotting problem with mix of forecasting requirement. Also the accepted solution for the question is based on plotting type solution.

As @jdlong suggested `forecast`

package can be used for uni-variate forecasting and plotting. If 24 products are related and co-variance are important to consider in forecasting possibly one need to go beyond. Yet again the solution come from the research group led by Prof. Rob Hyndman. His `hts`

package can be used for such purpose. Package intro can be found in this link.

awesome package, interactive too. but I didn't see any candlecharts there and any rolling funtions like Dygraph does.

But it's awesome. and could be huge going forward.

great point about `hts`

, @rahmed. Here's a few possibly helpful links:

Chapter 10 "Forecasting hierarchical or grouped time series" from *Forecasting Principles and Practice*

Hyndman's lecture slides on the same topic: https://robjhyndman.com/nyc2018/3-3-Hierarchical.pdf

1 Like