Hi all,
  I want to use the npudens() function in the np package (multivariate
kernel density estimation), but was confused by the several functions in the
following codes,expand.grid(),array(),image() and npudensbw().
  This confusion will only be generated in >=3 dimensions. I marked the four
places with confusion1-4. I think there should be some kind
of correspondence in those four places,but cannot figure them out.Thanks
very much for chewing on this.
#simulated dataset: d
x1<-c(runif(100,0,1),runif(50,0.67,1));y1<-c(runif(100,0,1),runif(50,0.67,1));d1<-data.frame(x1,y1);colnames(d1)<-c("x","y")
x2<-c(runif(100,0,1),runif(50,0.33,0.67));y2<-c(runif(100,0,1),runif(50,0.33,0.67));d2<-data.frame(x2,y2);colnames(d2)<-c("x","y")
x3<-c(runif(100,0,1),runif(50,0,0.33));y3<-c(runif(100,0,1),runif(50,0,0.33));d3<-data.frame(x3,y3);colnames(d3)<-c("x","y")
d<-rbind(d1,d2,d3)
d$tf<-c(rep(1,150),rep(2,150),rep(3,150))
plot(d1);points(d2,col="red");points(d3,col="green")
attach(d)

#Confusion1:how to specify the formula in the npudensbw() correctly? I find
the sequence of ordered(tf)+x+y is important and here i may have a wrong
specification

bw <- npudensbw(formula=~ordered(tf)+x+y, bwmethod="cv.ml")  #confusion1

year.seq <- sort(unique(d$tf))  #length is 3
x.seq <- seq(0,1,0.02)  #length is 51
y.seq <- seq(0,1,0.02)  #length is 51

#Confusion2:what is the correct sequence for the three variables
(year.seq,x.seq and y.seq) in expand.grid()

data.eval <- expand.grid(tf=year.seq,x=x.seq,y=y.seq)  #confusion2

fhat <- fitted(npudens(bws=bw, newdata=data.eval))

#Confusion3:what is the correct sequence for the three variables in the c()
options of array()

f <- array(fhat, c(51,51,3))  #number of year.seq is 3, and number of x.seq
and y.seq are 51,confusion3

brks <- quantile(f, seq(0,1,0.05));cols <-
heat.colors(length(brks)-1);oldpar <- par(mfrow=c(1,3))

#Confusion4:what is the correct sequence for the three variables(tf,x and y)
in the image()

for (i in 1:3) image(x.seq, y.seq, f[,,i],asp=1, xlab="", ylab="", main=i,
breaks=brks, col=cols)  #confusion4

par(oldpar)

#This was also confused in 4 ,5 and more dimensions.
  Any help or suggestions are greatly appreciated.
-- 
-----------------
Jane Chang
Queen's

	[[alternative HTML version deleted]]


