# sim.gum: Simulate Generalised Exponential Smoothing In config-i1/smooth: Forecasting Using State Space Models

## Description

Function generates data using GUM with Single Source of Error as a data generating process.

## Usage

 ```1 2 3 4``` ```sim.gum(orders = c(1), lags = c(1), obs = 10, nsim = 1, frequency = 1, measurement = NULL, transition = NULL, persistence = NULL, initial = NULL, randomizer = c("rnorm", "rt", "rlaplace", "rs"), probability = 1, ...) ```

## Arguments

 `orders` Order of the model. Specified as vector of number of states with different lags. For example, `orders=c(1,1)` means that there are two states: one of the first lag type, the second of the second type. `lags` Defines lags for the corresponding orders. If, for example, `orders=c(1,1)` and lags are defined as `lags=c(1,12)`, then the model will have two states: the first will have lag 1 and the second will have lag 12. The length of `lags` must correspond to the length of `orders`. `obs` Number of observations in each generated time series. `nsim` Number of series to generate (number of simulations to do). `frequency` Frequency of generated data. In cases of seasonal models must be greater than 1. `measurement` Measurement vector w. If `NULL`, then estimated. `transition` Transition matrix F. Can be provided as a vector. Matrix will be formed using the default `matrix(transition,nc,nc)`, where `nc` is the number of components in state vector. If `NULL`, then estimated. `persistence` Persistence vector g, containing smoothing parameters. If `NULL`, then estimated. `initial` Vector of initial values for state matrix. If `NULL`, then generated using advanced, sophisticated technique - uniform distribution. `randomizer` Type of random number generator function used for error term. Defaults are: `rnorm`, `rt`, `rlaplace` and `rs`. `rlnorm` should be used for multiplicative models (e.g. ETS(M,N,N)). But any function from Distributions will do the trick if the appropriate parameters are passed. For example `rpois` with `lambda=2` can be used as well, but might result in weird values. `probability` Probability of occurrence, used for intermittent data generation. This can be a vector, implying that probability varies in time (in TSB or Croston style). `...` Additional parameters passed to the chosen randomizer. All the parameters should be passed in the order they are used in chosen randomizer. For example, passing just `sd=0.5` to `rnorm` function will lead to the call `rnorm(obs, mean=0.5, sd=1)`.

## Details

For the information about the function, see the vignette: `vignette("simulate","smooth")`

## Value

List of the following values is returned:

• `model` - Name of GUM model.

• `measurement` - Matrix w.

• `transition` - Matrix F.

• `persistence` - Persistence vector. This is the place, where smoothing parameters live.

• `initial` - Initial values of GUM in a form of matrix. If `nsim>1`, then this is an array.

• `data` - Time series vector (or matrix if `nsim>1`) of the generated series.

• `states` - Matrix (or array if `nsim>1`) of states. States are in columns, time is in rows.

• `residuals` - Error terms used in the simulation. Either vector or matrix, depending on `nsim`.

• `occurrence` - Values of occurrence variable. Once again, can be either a vector or a matrix...

• `logLik` - Log-likelihood of the constructed model.

## Author(s)

Ivan Svetunkov, ivan@svetunkov.ru

## References

• Svetunkov I. (2015 - Inf) "smooth" package for R - series of posts about the underlying models and how to use them: https://forecasting.svetunkov.ru/en/tag/smooth/.

• Svetunkov I. (2017). Statistical models underlying functions of 'smooth' package for R. Working Paper of Department of Management Science, Lancaster University 2017:1, 1-52.

## See Also

```sim.es, sim.ssarima, sim.ces, gum, Distributions```

## Examples

 ```1 2 3 4 5 6 7 8 9``` ```# Create 120 observations from GUM(1). Generate 100 time series of this kind. x <- sim.gum(orders=c(1),lags=c(1),obs=120,nsim=100) # Generate similar thing for seasonal series of GUM(1,1]) x <- sim.gum(orders=c(1,1),lags=c(1,4),frequency=4,obs=80,nsim=100,transition=c(1,0,0.9,0.9)) # Estimate model and then generate 10 time series from it ourModel <- gum(rnorm(100,100,5)) simulate(ourModel,nsim=10) ```

config-i1/smooth documentation built on June 16, 2021, 2:13 p.m.