Calculate periodogram for a time-course using Lomb-Scargle, fast Fourier
transform, or selected version of chi-square. The spectr function is a
wrapper for the various methods. lspgram is in turn a wrapper for
lomb::lsp(), and fftpgram a wrapper for stats::spec.pgram(). Among the
versions of chi-square, it is highly recommended to use greedy, which has
lower bias than standard and lower variance than conservative.
cspgram( x, deltat, periodRange = c(18, 32), method = c("greedy", "conservative", "standard"), na.action = imputeTS::na_ma, dopar = FALSE ) fftpgram( x, deltat, periodRange = c(18, 32), pad = 50, na.action = imputeTS::na_ma, ... ) lspgram(x, deltat, time, periodRange = c(18, 32), ofac = 50) spectr( x, deltat, time, periodRange = c(18, 32), method = c("greedy_chisq", "conservative_chisq", "standard_chisq", "lombscargle", "fft"), ofac = 50, pad = 50, na.action = imputeTS::na_ma, dopar = FALSE, ... )
| x | Numeric vector of measurements. |
|---|---|
| deltat | Numeric value of the interval between time-points. |
| periodRange | Numeric vector of the minimum and maximum values of the
period to consider, in the same units as |
| method | Character indicating which method to use. Can be an unambiguous substring of the full name. |
| na.action | Function specifying how to handle |
| dopar | Logical indicating whether to run calculations in parallel if
a parallel backend is already set up, e.g., using
|
| pad | Numeric value of the proportion of the length of |
| ... | Other arguments passed to |
| time | Numeric vector of time-points. Can be specified instead of
|
| ofac | Integer value of the oversampling factor. Must be >= 1. Only used for Lomb-Scargle. |
A data.table with various columns depending on the method. For any
version of chi-square, columns will be period, chisq, df, and
log_pval. The log p-value is more reliable than the p-value, since R has
finite precision, so p-values less than about 5e-324 would be set to 0. For
Lomb-Scargle and FFT, columns will be period and power.
library('data.table') set.seed(1789) deltat = 0.1 tau = 25 tt = seq(0, 24 * 3, deltat) x = 3 * sin(tt / tau * 2 * pi) + rnorm(length(tt)) specCsp = spectr(x, deltat, method = 'greedy')#> #> #>