sinusoid | R Documentation |
Function used to define sinusoidal curves in the mean formula of function mvrm
.
The function is used internally to construct design matrices.
sinusoid(..., harmonics = 1, amplitude = 1, period = 0, periodRange = NULL,
breaks = NULL, knots = NULL)
... |
a single covariate that the sinusoid term is a function of. |
harmonics |
an integer value that denotes the number of sins and cosines to be utilized in the representation of a sinusoidal curve. |
amplitude |
a positive integer. If set equal to one, it denotes a fixed amplitude. Otherwise, if set to an integer that is greater than one, it denotes the number of knots to be utilized in the representation of the time-varying amplitude. |
period |
the period of the sinusoidal wave. Values less than or equal to zero signify that the period is unknown. Positive values signify that the period is known and fixed. |
periodRange |
a vector of length two with the range of possible period values. It is required when the period is unknown. |
breaks |
the growth break points. |
knots |
the knots to be utilized in the representation of the time-varying amplitude. Relevant only when |
Use this function within calls to function mvrm
to specify sinusoidal waves in the mean function
of a regression model.
Consider the sinusoidal curve
y_t = \beta_0 + A(t) \sin(2\pi t/\omega+\varphi) + \epsilon_t,
where y_t
is the response at time t
, \beta_0
is an intercept term, A(t)
is a time-varying amplitude, \varphi \in [0,2\pi]
is the phase shift parameter, \omega
is the period taken to be known, and
\epsilon_t
is the error term.
The period \omega
is defined by the argument period
.
The time-varying amplitude is represented using A(t) = \sum_{j=1}^{K} \beta_{Aj} \phi_{Aj}(t)
,
where K
, the number of knots, is defined by argument amplitude
. If amplitude = 1
, then
the amplitude is taken to be fixed: A(t)=A
.
Further, \sin(2\pi t/\omega+\varphi)
is represented utilizing
\sin(2\pi t/\omega+\varphi) = \sum_{k=1}^{L} a_k \sin(2k\pi t/\omega) + b_k \cos(2k\pi t/\omega)
,
where L
, the number of harmonics, is defined by argument harmonics
.
Specifies the design matrices of an mvrm
call
Georgios Papageorgiou gpapageo@gmail.com
mvrm
# Simulate and fit a sinusoidal curve
# First load releveant packages
require(BNSP)
require(ggplot2)
require(gridExtra)
require(Formula)
# Simulate the data
mu <- function(u) {cos(0.5 * u) * sin(2 * pi * u + 1)}
set.seed(1)
n <- 100
u <- sort(runif(n, min = 0, max = 2*pi))
y <- rnorm(n, mu(u), 0.1)
data <- data.frame(y, u)
# Define the model and call function \code{mvrm} that perfomes posterior sampling for the given
# dataset and defined model
model <- y ~ sinusoid(u, harmonics = 2, amplitude = 20, period = 1)
## Not run:
m1 <- mvrm(formula = model, data = data, sweeps = 10000, burn = 5000, thin = 2, seed = 1,
StorageDir = getwd())
# Plot
x1 <- seq(min(u), max(u), length.out = 100)
plotOptionsM <- list(geom_line(aes_string(x = x1, y = mu(x1)), col = 2, alpha = 0.5, lty = 2),
geom_point(data = data, aes(x = u, y = y)))
plot(x = m1, term = 1, plotOptions = plotOptionsM, intercept = TRUE,
quantiles = c(0.005, 0.995), grid = 100, combine = 1)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.