Learn R Programming

OSCV (version 1.0)

OSCV_reg: The OSCV function in the regression context.

Description

Computing \(OSCV(b)\), the value of the OSCV function in the regression context, defined by expression (9) of Savchuk and Hart (2017).

Usage

OSCV_reg(b, desx, y, ktype)

Arguments

b
numerical vector of bandwidth values,
desx
numerical vecror of design points,
y
numerical vecror of data points corresponding to the design points \(desx\),
ktype
making choice between two cross-validation kernels: (\(ktype=0\)) corresponds to the Gaussian kernel; (\(ktype=1\)) corresponds to the robust kernel H_I with \((\alpha,\sigma)=(16.8954588,1.01)\).

Value

The vector of values of \(OSCV(b)\) for the correponsing vector of \(b\) values.

Details

Computation of \(OSCV(b)\) for given \(b\) (bandwidth vector) and the data values \(y\) corresponding to the design points \(desx\). No preliminary sorting of the data (according to the \(desx\) variable) is needed. The value of \(m=4\) is used. Two choices of the two-sided cross-validation kernel are available:
  • (\(ktype=1\)) robust kernel H_I defined by expression (15) of Savchuk and Hart (2017) with \((\alpha,\sigma)=(16.8954588,1.01)\).

References

  • Savchuk, O.Y., Hart, J.D. (2017). Fully robust one-sided cross-validation for regression functions. Computational Statistics, doi:10.1007/s00180-017-0713-7.
  • Hart, J.D. and Yi, S. (1998) One-sided cross-validation. Journal of the American Statistical Association, 93(442), 620-631.

See Also

h_OSCV_reg, H_I, loclin, C_smooth.

Examples

Run this code
## Not run: ------------------------------------
# # The Old Faithful geyser data set "faithful" is used. The sample size n=272.
# # The OSCV curves based on the Gaussian kernel and the robust kernel H_I (with 
# # alpha=16.8954588 and sigma=1.01) are plotted. The horizontal scales of the curves
# # are changed such that their global minimizers are to be used in computing the
# # Gaussian local linear estimates of the regression function.
# xdat=faithful[[2]] #waiting time
# ydat=faithful[[1]] #eruption duration
# barray=seq(0.5,10,len=250)
# C_gauss=C_smooth(1,1)
# OSCV_gauss=OSCV_reg(barray/C_gauss,xdat,ydat,0)
# h_gauss=round(h_OSCV_reg(xdat,ydat,0),digits=4)
# dev.new()
# plot(barray,OSCV_gauss,'l',lwd=3,cex.lab=1.7,cex.axis=1.7,xlab="h",ylab="OSCV criterion")
# title(main="OSCV based on the Gaussian kernel",cex.main=1.7)
# legend(2.5,0.25,legend=paste("h_min=",h_gauss),cex=2,bty="n")
# C_H_I=C_smooth(16.8954588,1.01)
# OSCV_H_I=OSCV_reg(barray/C_H_I,xdat,ydat,1)
# h_H_I=round(barray[which.min(OSCV_H_I)],digits=4)
# dev.new()
# plot(barray,OSCV_H_I,'l',lwd=3,cex.lab=1.7,cex.axis=1.7,xlab="h",ylab="OSCV criterion",
# ylim=c(0.15,0.5))
# title(main="OSCV based on the robust kernel H_I",cex.main=1.7)
# legend(2.5,0.4,legend=paste("h_min=",h_H_I),cex=2,bty="n")
## ---------------------------------------------

Run the code above in your browser using DataLab