Sto cercando di usare la funzione ' densità ' in R per fare stime sulla densità del kernel. Ho qualche difficoltà a interpretare i risultati e confrontare vari set di dati in quanto sembra che l'area sotto la curva non sia necessariamente 1. Per qualsiasi funzione di densità di probabilità (pdf) , dobbiamo avere l'area . Suppongo che la stima della densità del kernel riporti il pdf. Sto usando integrate.xy da sfsmisc per stimare l'area sotto la curva.
> # generate some data
> xx<-rnorm(10000)
> # get density
> xy <- density(xx)
> # plot it
> plot(xy)
> # load the library
> library(sfsmisc)
> integrate.xy(xy$x,xy$y)
[1] 1.000978
> # fair enough, area close to 1
> # use another bw
> xy <- density(xx,bw=.001)
> plot(xy)
> integrate.xy(xy$x,xy$y)
[1] 6.518703
> xy <- density(xx,bw=1)
> integrate.xy(xy$x,xy$y)
[1] 1.000977
> plot(xy)
> xy <- density(xx,bw=1e-6)
> integrate.xy(xy$x,xy$y)
[1] 6507.451
> plot(xy)
L'area sotto la curva non dovrebbe essere sempre 1? Sembra che le piccole larghezze di banda siano un problema, ma a volte si desidera mostrare i dettagli ecc. Nelle code e sono necessarie piccole larghezze di banda.
Aggiornamento / Risposta:
Sembra che la risposta di seguito sulla sopravvalutazione nelle regioni convesse sia corretta in quanto l'aumento del numero di punti di integrazione sembra ridurre il problema (non ho provato a usare più di punti).
> xy <- density(xx,n=2^15,bw=.001)
> plot(xy)
> integrate.xy(xy$x,xy$y)
[1] 1.000015
> xy <- density(xx,n=2^20,bw=1e-6)
> integrate.xy(xy$x,xy$y)
[1] 2.812398