CV Bandwidth Selector Using SIMEX

Share:

Description

This function selects the bandwidth for both the DFC (Delaigle, Fan, and Carroll, 2009) and HZ (Huang and Zhou, 2014+) estimators.

Usage

1
2
3
bwSIMEX(Y, W, method="HZ", sig, error="laplace", k_fold=2, B=10, 
        h1=NULL, h2=NULL,  length.h=10, Wdiff=NULL,
        data=sys.frame(sys.parent()), na.action=na.fail, work.dir=NULL)

Arguments

Y

an n by 1 response vector.

W

an n by 1 predictor vector.

method

the method to be used; method="HZ" uses the estimator proposed by Huang and Zhou (2014+); method="DFC" uses the estimator proposed by Delaigle, Fan, and Carroll (2009).

sig

standard deviation of the measurement error.

error

the distribution assumed for the measurement error; error="laplace" is for Laplace distribution; error="normal" is for Gaussian distribution.

k_fold

gives fold of cross-validation to be used; default is 2.

B

total number of cross-validation criteria to average over; defualt is 10.

h1

bandwidth vector for the first level error contamination; default is NULL, and h1 is chosen automatically. See Huang and Zhou (2014+) for details.

h2

bandwidth vector for the first level error contamination; defualt is NULL, and h2 is chosen automatically. See Huang and Zhou (2014+) for details.

length.h

number of grid points for each of h1 and h2; default is 10.

Wdiff

an n by 1 vector of (W1-W2)/2, where W1, W2 are two replicated measurements; default is NULL, which indicates that the errors are generated from the assumed error distribution, otherwise, the errors are generated from Wdiff with replacement.

data

data frame.

na.action

a function that indicates what should happen when the data contain NAs. The default action (na.fail) causes bwSIMEX to print an error message and terminate if there are any incomplete observations.

work.dir

working directory.

Details

This function selects the bandwidth for both the DFC (Delaigle, Fan, and Carroll, 2009) and HZ (Huang and Zhou, 2014+) estimators.

Value

The results include the bandwidth bw.

Author(s)

Haiming Zhou <zhouh@email.sc.edu> and Xianzheng Huang <huang@stat.sc.edu>

References

Delaigle, A. and Hall, P. (2008). Using SIMEX for smoothing-parameter choice in errors-in-variables problems. Journal of the American Statistical Association, 103, 280-287.

Delaigle, A., Fan, J., and Carroll, R. (2009). A design-adaptive local polynomial estimator for the errors-in-variables problem. Journal of the American Statistical Association 104, 348-359.

Huang, X. and Zhou, H. (2014+). An alternative local polynomial estimator for the errors-in-variable problem. Submitted.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#############################################
## X - True covariates
## W - Observed covariates
## Y - individual response
rm(list=ls())
library(lpme)
## generate laplace
rlap=function (use.n, location = 0, scale = 1) 
{
location <- rep(location, length.out = use.n)
scale <- rep(scale, length.out = use.n)
rrrr <- runif(use.n)
location-sign(rrrr-0.5)*scale*(log(2)+ifelse(rrrr<0.5, log(rrrr), log1p(-rrrr)))
}

## sample size:
n =100;
## Function gofx(x) to estimate
gofx  = function(x){ 2*x*exp(-10*x^4/81) }

## Generate data
sigma_e  = 0.2;
sigma_x = 1; X = rnorm(n, 0, sigma_x); 
## Sample Y
Y  = gofx(X) + rnorm(n, 0, sigma_e);
## reliability ratio
lambda=0.85;
sigma_u  = sqrt(1/lambda-1)*sigma_x;
print( sigma_x^2/(sigma_x^2 + sigma_u^2) );
#W=X+rnorm(n,0,sigma_u);
W=X+rlap(n,0,sigma_u/sqrt(2));
  
#### SIMEX
hwNEW = bwSIMEX(Y, W, method="HZ", sig=sigma_u, error="laplace", k_fold=2, 
                B=1, length.h=1)$bw
ghat_NEW = lpme(Y, W, hwNEW , method="HZ", sig=sigma_u, error="laplace");

## plots
x = ghat_NEW$xgrid;
plot(x, gofx(x), "l", main="Individual", lwd="2")
lines(ghat_NEW$xgrid, ghat_NEW$yhat, lty="dashed", col="2",lwd="3")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.