Function, vectorized in its first argument sigma, to compute the ``updated'' weights Wni in eq. (2.1) of Eichner & Stute (2012) for the kernel adjusted regression estimator.
weights_ES2012(sigma, xXh, thetaXh, K, h)
Arguments
sigma: Numeric vector (σ1,…,σs) with s≥1 with values of the scale parameter σ.
xXh: Numeric vector expecting the pre-computed h-scaled differences (x−X1)/h, , (x−Xn)/h where x is the single (!) location for which the weights are to be computed, the Xi's are the data values, and h is the numeric bandwidth scalar.
thetaXh: Numeric vector expecting the pre-computed h-scaled differences (θ−X1)/h, , (θ−Xn)/h where θ is the numeric scalar location parameter, and the Xi's and h are as in xXh.
K: A kernel function (with vectorized in- & output) to be used for the estimator.
h: Numeric scalar for bandwidth h (as ``contained'' in thetaXh and xXh).
Returns
If length(sigma) > 1 a numeric matrix of the dimension length(sigma) by length(xXh) with elements (Wni(x;h,θ,σr)) for r=1,…,
length(sigma) and i=1,…,length(xXh); otherwise a numeric vector of the same length as xXh.
Details
Note that it is not immediately obvious that Wni in eq. (2.1) of Eichner & Stute (2012) is a function of σ. In fact, c("Wni\n", "=Wni(x;h,theta,sigma)") as can be seen on p. 2542 ibid. The computational version implemented here, however, is given in (15.19) of Eichner (2017). Pre-computed (x−Xi)/h and (θ−Xi)/h, i=1,…,n are expected for efficiency reasons (and are currently prepared in function kare).
Examples
require(stats)# Regression function:m <-function(x, x1 =0, x2 =8, a =0.01, b =0){ a *(x - x1)*(x - x2)^3+ b
}# Note: For a few details on m() see examples in ?nadwat.n <-100# Sample size.set.seed(42)# To guarantee reproducibility.X <- runif(n, min =-3, max =15)# X_1, ..., X_n # Design.Y <- m(X)+ rnorm(length(X), sd =5)# Y_1, ..., Y_n # Response.h <- n^(-1/5)Sigma <- seq(0.01,10, length =51)# sigma-grid for minimization.x0 <-5# Location at which the estimator of m should be computed.# Weights (W_{ni}(x; \sigma_r))_{1<=r<=length(Sigma), 1<=i<=n} for# Var_n(sigma) and Bias_n(sigma) each at x0 on the sigma-grid:weights_ES2012(sigma = Sigma, xXh =(x0 - X)/ h, thetaXh =(mean(X)- X)/ h, K = dnorm, h = h)
References
Eichner & Stute (2012) and Eichner (2017): see kader.
See Also
bias_ES2012 and var_ES2012 which both call this function, and kare which currently does the pre-computing.