Learn R Programming

kader (version 0.0.8)

mse_hat: MSE Estimator

Description

Vectorized (in \(\sigma\)) function of the MSE estimator in eq. (2.3) of Srihera & Stute (2011), and of the analogous estimator in the paragraph after eq. (6) in Eichner & Stute (2013).

Usage

mse_hat(sigma, Ai, Bj, h, K, fnx, ticker = FALSE)

Arguments

sigma

Numeric vector \((\sigma_1, \ldots, \sigma_s)\) with \(s \ge 1\).

Ai

Numeric vector expecting \((x_0 - X_1, \ldots, x_0 - X_n) / h\), where (usually) \(x_0\) is the point at which the density is to be estimated for the data \(X_1, \ldots, X_n\) with \(h = n^{-1/5}\).

Bj

Numeric vector expecting \((-J(1/n), \ldots, -J(n/n))\) in case of the rank transformation method, but \((\hat{\theta} - X_1, \ldots, \hat{\theta} - X_n)\) in case of the non-robust Srihera-Stute-method. (Note that this the same as argument Bj of adaptive_fnhat!)

h

Numeric scalar, where (usually) \(h = n^{-1/5}\).

K

Kernel function with vectorized in- & output.

fnx

\(f_n(x_0) =\) mean(K(Ai))/h, where here typically \(h = n^{-1/5}\).

ticker

Logical; determines if a 'ticker' documents the iteration progress through sigma. Defaults to FALSE.

Value

A vector with corresponding MSE values for the values in sigma.

See Also

For details see bias_AND_scaledvar.

Examples

Run this code
# NOT RUN {
require(stats)

set.seed(2017);     n <- 100;     Xdata <- sort(rnorm(n))
x0 <- 1;      Sigma <- seq(0.01, 10, length = 11)

h <- n^(-1/5)
Ai <- (x0 - Xdata)/h
fnx0 <- mean(dnorm(Ai)) / h   # Parzen-Rosenblatt estimator at x0.

 # non-robust method:
theta.X <- mean(Xdata) - Xdata
kader:::mse_hat(sigma = Sigma, Ai = Ai, Bj = theta.X,
  h = h, K = dnorm, fnx = fnx0, ticker = TRUE)

 # rank transformation-based method (requires sorted data):
negJ <- -J_admissible(1:n / n)   # rank trafo
kader:::mse_hat(sigma = Sigma, Ai = Ai, Bj = negJ,
  h = h, K = dnorm, fnx = fnx0, ticker = TRUE)

# }

Run the code above in your browser using DataLab