nscosinor | R Documentation |
Decompose a time series using a non-stationary cosinor for the seasonal pattern.
nscosinor( data, response, cycles, niters = 1000, burnin = 500, tau, lambda = 1/12, div = 50, monthly = TRUE, alpha = 0.05 )
data |
a data frame. |
response |
response variable. |
cycles |
vector of cycles in units of time, e.g., for a six and twelve
month pattern |
niters |
total number of MCMC samples (default=1000). |
burnin |
number of MCMC samples discarded as a burn-in (default=500). |
tau |
vector of smoothing parameters, tau[1] for trend, tau[2] for 1st seasonal parameter, tau[3] for 2nd seasonal parameter, etc. Larger values of tau allow more change between observations and hence a greater potential flexibility in the trend and season. |
lambda |
distance between observations (lambda=1/12 for monthly data, default). |
div |
divisor at which MCMC sample progress is reported (default=50). |
monthly |
TRUE for monthly data. |
alpha |
Statistical significance level used by the confidence intervals. |
This model is designed to decompose an equally spaced time series into a trend, season(s) and noise. A seasonal estimate is estimated as s_t=A_t\cos(ω_t-P_t), where t is time, A_t is the non-stationary amplitude, P_t is the non-stationary phase and ω_t is the frequency.
A non-stationary seasonal pattern is one that changes over time, hence this model gives potentially very flexible seasonal estimates.
The frequency of the seasonal estimate(s) are controlled by cycle
.
The cycles should be specified in units of time. If the data is monthly,
then setting lambda=1/12
and cycles=12
will fit an annual
seasonal pattern. If the data is daily, then setting lambda=
1/365.25
and cycles=365.25
will fit an annual seasonal
pattern. Specifying cycles=
c(182.6,365.25)
will fit two
seasonal patterns, one with a twice-annual cycle, and one with an annual
cycle.
The estimates are made using a forward and backward sweep of the Kalman
filter. Repeated estimates are made using Markov chain Monte Carlo (MCMC).
For this reason the model can take a long time to run. To give stable
estimates a reasonably long sample should be used (niters
), and the
possibly poor initial estimates should be discarded (burnin
).
Returns an object of class “nsCosinor” with the following parts:
call |
the original call to the nscosinor function. |
time |
the year and month for monthly data. |
trend |
mean trend and 95% confidence interval. |
season |
mean season(s) and 95% confidence interval(s). |
oseason |
overall season(s) and 95%
confidence interval(s). This will be the same as |
fitted |
fitted values and 95% confidence interval, based on trend + season(s). |
residuals |
residuals based on mean trend and season(s). |
n |
the length of the series. |
chains |
MCMC chains (of class mcmc) of variance estimates: standard error for overall noise (std.error), standard error for season(s) (std.season), phase(s) and amplitude(s) |
cycles |
vector of cycles in units of time. |
Adrian Barnett a.barnett@qut.edu.au
Barnett, A.G., Dobson, A.J. (2010) Analysing Seasonal Health Data. Springer.
Barnett, A.G., Dobson, A.J. (2004) Estimating trends and seasonality in coronary heart disease Statistics in Medicine. 23(22) 3505–23.
plot.nsCosinor
, summary.nsCosinor
data(CVD) # model to fit an annual pattern to the monthly cardiovascular disease data f = c(12) tau = c(10,50) ## Not run: res12 = nscosinor(data=CVD, response='adj', cycles=f, niters=5000, burnin=1000, tau=tau) summary(res12) plot(res12) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.