library(cycleTrendR)
#> Registered S3 method overwritten by 'quantmod':
#> method from
#> as.zoo.data.frame zoo
set.seed(1)Introduction cycleTrendR provides a unified framework for analyzing time-series that contain both trend and cyclic components. It supports:
LOESS, GAM, and GAMM trend estimation
Automatic Fourier harmonic selection (AICc/BIC)
Bootstrap confidence intervals (IID or MBB)
Change-point detection
Lomb–Scargle periodogram for irregular sampling
Rolling-origin forecasting
Publication-quality ggplot2 visualizations
This vignette demonstrates the main workflows using simulated data.
Simulated Example Data We simulate a noisy cyclic signal with irregular sampling:
dates <- as.Date(“2020-01-01”) + cumsum(sample(1:3, 300, replace = TRUE)) signal <- sin(2pias.numeric(dates)/20) + rnorm(300, 0, 0.3)
LOESS Trend + Automatic Fourier Selection res_loess <- adaptive_cycle_trend_analysis( signal = signal, dates = dates, trendmethod = “loess”, usefourier = TRUE, auto_fourier_select = TRUE, nboot = 50 )
res_loess\(Plot\)Trend
GAM Trend res_gam <- adaptive_cycle_trend_analysis( signal = signal, dates = dates, trendmethod = “gam”, usefourier = TRUE, nboot = 50 )
res_gam\(Plot\)Trend
GAMM Trend with Random Effects group <- rep(letters[1:4], length.out = length(signal))
res_gamm <- adaptive_cycle_trend_analysis( signal = signal, dates = dates, trendmethod = “gam”, use_gamm = TRUE, group_var = “subject”, group_values = group, usefourier = FALSE, nboot = 20 )
res_gamm\(Plot\)Trend
Irregular Sampling + Fourier + Lomb–Scargle
Irregular sampling is detected automatically and the Lomb–Scargle periodogram is used: res_irreg <- adaptive_cycle_trend_analysis( signal = signal, dates = dates, trendmethod = “loess”, usefourier = TRUE, auto_fourier_select = TRUE, nboot = 50 )
res_irreg\(Plot\)Spectrum
Change-Point Detection res_loess$ChangePoints
Bootstrap Confidence Intervals head(res_loess\(CI_lower) head(res_loess\)CI_upper)
Conclusion cycleTrendR provides a flexible and robust toolkit for analyzing complex time-series with trend and cyclic components, especially when sampling is irregular or noise levels are high. It is suitable for biomedical assay monitoring, environmental signals, and forecasting tasks.