cosinor {LaMa} | R Documentation |
Evaluate trigonometric basis expansion
Description
This function can be used to evaluate a trigonometric basis expansion for a given periodic variable and period.
It can also be used in formulas passed to make_matrices
.
Usage
cosinor(x = 1:24, period = 24, eval = TRUE)
Arguments
x |
vector of periodic variable values |
period |
vector of period length. For example for time of day |
eval |
logical, should not be changed. If |
Details
The returned basis can be used for linear predictors of the form
\eta^{(t)} = \beta_0 + \sum_{k} \bigl( \beta_{1k} \sin(\frac{2 \pi t}{period_k}) + \beta_{2k} \cos(\frac{2 \pi t}{period_k}) \bigr).
This is relevant for modeling e.g. diurnal variation and the flexibility can be increased by adding smaller frequencies (i.e. increasing the length of period
).
Value
either a desing matrix with the evaluated cosinor terms (eval = TRUE
) or a character vector with the terms as strings (eval = FALSE
).
Examples
## Evaluate cosinor terms
# builds design matrix
X = cosinor(1:24, period = 24)
X = cosinor(1:24, period = c(24, 12, 6))
## Usage in model formulas
# e.g. frequencies of 24 and 12 hours + interaction with temperature
form = ~ x + temp * cosinor(hour, c(24, 12))
data = data.frame(x = runif(24), temp = rnorm(24,20), hour = 1:24)
modmat = make_matrices(form, data = data)