This function helps to construct a formula object that can be used in a call to hhh4 to model seasonal variation via a sum of sine and cosine terms.

addSeason2formula(f = ~1, S = 1, period = 52, timevar = "t")

## Arguments

f

formula that the seasonal terms should be added to, defaults to an intercept ~1.

S

number of sine and cosine terms. If S is a vector, unit-specific seasonal terms are created.

period

period of the season, defaults to 52 for weekly data.

timevar

the time variable in the model. Defaults to "t".

## Details

The function adds the seasonal terms $$\sum_{s=1}^\code{S} \gamma_s \sin(\frac{2\pi s}{\code{period}} t) +\delta_s \cos(\frac{2\pi s}{\code{period}} t),$$ where $$\gamma_s$$ and $$\delta_s$$ are the unknown parameters and $$t$$, $$t = 1, 2, \ldots$$ denotes the time variable timevar, to an existing formula f.

Note that the seasonal terms can also be expressed as $$\gamma_{s} \sin(\frac{2\pi s}{\code{period}} t) + \delta_{s} \cos(\frac{2\pi s}{\code{period}} t) = A_s \sin(\frac{2\pi s}{\code{period}} t + \epsilon_s)$$ with amplitude $$A_s=\sqrt{\gamma_s^2 +\delta_s^2}$$ and phase shift $$\tan(\epsilon_s) = \delta_s / \gamma_s$$. The amplitude and phase shift can be obtained from a fitted hhh4 model via coef(..., amplitudeShift = TRUE), see coef.hhh4.

## Value

Returns a formula with the seasonal terms added and its environment set to .GlobalEnv. Note that to use the resulting formula in hhh4, a time variable named as specified by the argument timevar must be available.

## Author

M. Paul, with contributions by S. Meyer

hhh4, fe, ri

## Examples

# add 2 sine/cosine terms to a model with intercept and linear trend
addSeason2formula(f = ~ 1 + t, S = 2)

# the same for monthly data
addSeason2formula(f = ~ 1 + t, S = 2, period = 12)

# different number of seasons for a bivariate time series
addSeason2formula(f = ~ 1, S = c(3, 1), period = 52)