#---- Función Naive
naive<-function(x,muestra,h){
    nx=length(x)
    fx=numeric(nx)
    for (i in 1:nx){
    fx[i]=mean((x[i]-h<muestra)&(muestra<x[i]+h))/(2*h)
    }
return(fx)
}

nucleo_uni<-function(x,muestra,h){
    apply(dunif(outer(x,muestra,"-")/h,-1,1),1,"mean")/h
    }


#---- Muestra
n<-100
muestra<-rnorm(n)
h<-0.2

#-- Para un valor
x<-0
a<-naive(x,muestra,h)

#-- Para una secuencia
x<-seq(-3,3,by=0.01)
va1<-naive(x,muestra,h)
va2<-nucleo_uni(x,muestra,h)



#---- Pintamos el resultado
windows()
plot(va1~x,type="l",col=4,lwd=2,main="Naive")
lines(dnorm(x)~x,col=2)

windows()
plot(va2~x,type="l",col=4,lwd=2,main="Naive")
lines(dnorm(x)~x,col=2)

#--- Ejemplo Exponencial (vemos el sesgo)
muestraE<-rexp(n)
y<-seq(0,5,by=0.01)
vb1<-naive(y,muestraE,h) # h=0.2
plot(vb~y,type="l",col=4,lwd=2,main="Naive")
lines(dexp(y)~y,col=2)

muestraE<-rexp(n)
y<-seq(0,5,by=0.01)
vb2<-nucleo_uni(y,muestraE,h) # h=0.2
plot(vb2~y,type="l",col=4,lwd=2,main="Naive")
lines(dexp(y)~y,col=2)
