| pcf.kern {denpro} | R Documentation |
Calculates a multivariate kernel estimate and gives the output as a piecewise constant function object.
pcf.kern(dendat, h, N, kernel = "gauss", weights = NULL, support = NULL, lowest = 0)
dendat |
n*d matrix of real numbers; the data matrix |
h |
positive real; smoothing parameter |
N |
vector of d positive dyadic integers; the dimension of the grid where the kernel estimate will be evaluated; we evaluate the estimate on a regular grid which contains the support of the kernel estimate |
kernel |
"gauss", "epane", "bart", or "uniform"; the kernel is either the standard Gaussian, Epanechnikov product kernel, Bartlett kernel, or uniform kernel |
weights |
n vector of nonnegative weights, where n is the sample size; sum of the elements of "weights" should be one; these are the weights of a time localized kernel estimator |
support |
2*d vector of reals gives the d intervals of a rectangular support in the form c(low1,upp1,...,lowd,uppd) |
lowest |
a real value; the density estimate will be truncated to take value zero, if the value of the estimate is less or equal to "lowest" |
a piecewise constant function object, see the web site
Jussi Klemela
http://www.rni.helsinki.fi/~jsk/denpro/
n<-100
dendat<-sim.data(n=n,type="mulmod")
h<-1
pcf<-pcf.kern(dendat,h=h,N=c(32,32))
dp<-draw.pcf(pcf)
contour(dp$x,dp$y,dp$z,drawlabels=FALSE)
# we use now nonuniform weighting of kernels
weights<-matrix(0,n,1)
threshold<-4
for (i in 1:n){
eta<-(n-i)
if (eta/h>threshold) result<-0 else result<-exp(-eta^2/(2*h^2))
weights[i]<-result
}
weights<-weights/sum(weights)
pcf<-pcf.kern(dendat,h=1,N=c(32,32),weights=weights)
dp<-draw.pcf(pcf)
contour(dp$x,dp$y,dp$z,drawlabels=FALSE)