OSCV_LI_dens {OSCV} | R Documentation |
The OSCV function based on the kernel L_I
in the density estimation (KDE) context.
Description
Computing the values of the L_I
-based OSCV function in the density estimation context. See Savchuk (2017).
Usage
OSCV_LI_dens(h, dat, alpha, sigma)
Arguments
h |
numerical vector of bandwidth values, |
dat |
numerical vecror of data values, |
alpha |
first parameter of the kernel |
sigma |
second parameter of the kernel |
Details
Computing the OSCV function for the given vector of bandwidth values h
and the data vector dat
. The function is based on the one-sided kernel L_I
that depends on the parameters \alpha
and \sigma
. The kernel L_I
is robust in the special case of \alpha=16.8954588
and \sigma=1.01
. The other special case is obtained when either of the following holds:
-
\alpha=0
for any\sigma>0
; -
\sigma=1
for any-\infty<\alpha<\infty
.
In the above cases the kernel L_I
reduces to the one-sided Gaussian kernel L_G
. The function's minimizer is to be used without additional rescaling to compute the ultimate Gaussian density estimate under the assumption that the underlying density is smooth.
Value
The vector of values of the OSCV function for the correponsing vector of h
values.
References
Savchuk, O.Y. (2017). One-sided cross-validation for nonsmooth density functions, arXiv:1703.05157.
See Also
OSCV_Gauss_dens
, OSCV_Epan_dens
, C_smooth
, L_I
, H_I
.
Examples
## Not run:
# Example 1 (Old Faithful geyser data)
dev.new()
data=faithful[,1] # Data on n=272 eruption duration of the Old Faithful geyser.
harray=seq(0.025,0.6,len=50)
alp=16.8954588
sig=1.01
plot(harray,OSCV_LI_dens(harray,data,alpha=alp,sigma=sig),lwd=3,'l',xlab="h",
ylab="L_I-based OSCV",main="OSCV_LI(h) for eruption duration",cex.main=1.5,cex.lab=1.7,
cex.axis=1.7)
h_OSCV_LI=round(optimize(OSCV_LI_dens,c(0.001,0.5),tol=0.001,dat=data,alpha=16.8954588,
sigma=1.01)$minimum,digits=4)
legend(0.01,-0.2,legend=c("n=272",paste("h_OSCV_LI=",h_OSCV_LI)),cex=1.8,bty="n")
legend(0.25,-0.33,legend=c("Parameters of L_I:", paste("alpha=",alp),
paste("sigma=",sig)),cex=1.7,bty="n")
# Example 2 (Simulated example)
dat_norm=rnorm(100) #generating a random sample of size n=100 from the N(0,1) density
harray=seq(0.05,1.5,len=100)
OSCVarray=OSCV_LI_dens(harray,dat=dat_norm,16.8954588,1.01)
dev.new()
plot(harray,OSCVarray,lwd=3,'l',xlab="h",ylab="L_I-based OSCV",
main="OSCV_LI(h) for data generated from N(0,1)",cex.main=1.5,cex.lab=1.7,cex.axis=1.7)
h_OSCV_LI_norm=round(optimize(OSCV_LI_dens,c(0.001,1),tol=0.001,
dat=dat_norm,16.8954588,1.01)$minimum,digits=4)
legend(0,OSCVarray[1],legend=c("n=100",paste("h_OSCV_LI=",h_OSCV_LI_norm),
"Parameters of the robust kernel L_I:","alpha=16.8954588", "sigma=1.01"),cex=1.5,bty="n")
## End(Not run)