View source: R/kernel_regression_estimator.R
| adjusted_est | R Documentation |
This function computes the kernel regression estimator of the autocovariance function.
adjusted_est(
X,
x,
t,
b,
kernel_name = c("gaussian", "wave", "rational_quadratic", "bessel_j"),
kernel_params = c(),
pd = TRUE,
type = c("autocovariance", "autocorrelation"),
meanX = mean(X),
custom_kernel = FALSE,
parallel = FALSE,
ncores = parallel::detectCores() - 1,
cl_export = NULL,
cl = NULL
)
X |
A vector representing observed values of the time series. |
x |
A vector of lags. |
t |
The arguments at which the autocovariance function is calculated at. |
b |
Bandwidth parameter, greater than 0. |
kernel_name |
The name of the symmetric kernel (see kernel_symm_ec) function to be used. Possible values are: gaussian, wave, rational_quadratic, and bessel_j. Alternatively, a custom kernel function can be provided, see the examples. |
kernel_params |
A vector of parameters of the kernel function. See kernel_symm_ec for parameters. |
pd |
Whether a positive-definite estimate should be used. Defaults to |
type |
Compute either the 'autocovariance' or 'autocorrelation'. Defaults to 'autocovariance'. |
meanX |
The average value of |
custom_kernel |
If a custom kernel is to be used or not. Defaults to |
parallel |
Whether or not the computations should be done in parallel or not. Defaults to |
ncores |
The number of cores to be used in the parallel computations. Defaults to the number cores - 1 (threads if hyperthreading is available), calculated from |
cl_export |
A vector of any additional functions or variables to export for parallel computations. This may be required if |
cl |
An optional cluster object created by |
The kernel regression estimator of an autocovariance function is defined as
\hat{\rho}(t) = \left( \sum_{i=1}^{N} \sum_{j=1}^{N} \check{X}_{ij} K((t - (t_{i} - t_{j})) / b) \right) \left( \sum_{i=1}^{N} \sum_{j=1}^{N} K((t - (t_{i} - t_{j})) / b) \right)^{-1},
where \check{X}_{ij} = (X(t_{i}) - \bar{X}) (X(t_{j}) - \bar{X}).
If pd is TRUE, the estimator will be made positive-definite through the following procedure
Take the discrete Fourier cosine transform,
\widehat{\mathcal{F}}(\theta), of the estimated autocovariance function
Compute a modified spectrum \widetilde{\mathcal{F}}(\theta) = \max(\widehat{\mathcal{F}}(\theta), 0) for all sample frequencies.
Perform the Fourier inversion to obtain a new estimator.
A CovEsts S3 object (list) with the following values
acfA numeric vector containing the autocovariance/autocorrelation estimates.
lagsA numeric vector containing the lag indices used to compute the estimates on.
est_typeThe type of estimate, namely 'autocorrelation' or 'autocovariance', this depends on the type parameter.
est_usedThe estimator function used, in this case, 'adjusted_est'.
Hall, P. & Patil, P. (1994). Properties of nonparametric estimators of autocovariance for stationary random fields. Probability Theory and Related Fields 99(3), 399-424. https://doi.org/10.1007/bf01199899
Hall, P., Fisher, N. I., & Hoffmann, B. (1994). On the nonparametric estimation of covariance functions. The Annals of Statistics 22(4), 2115-2134. https://doi.org/10.1214/aos/1176325774
X <- c(1, 2, 3, 4)
adjusted_est(X, 1:4, 1:3, 0.1, "gaussian")
my_kernel <- function(x, params) {
stopifnot(params[1] > 0, length(x) >= 1)
return(exp(-((abs(x) / params[1])^params[2])) * (2 * params[1] * gamma(1 + 1/params[2])))
}
adjusted_est(X, 1:4, 1:3, 0.1, my_kernel, c(0.25), custom_kernel = TRUE)
## Not run:
library(parallel)
X <- c(1, 2, 3, 4)
my_cl <- makePSOCKcluster(2)
adjusted_est(X, 1:4, 1:3, 0.1, "gaussian", parallel = TRUE, cl = my_cl)
stopCluster(my_cl)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.