Я пытаюсь использовать функцию плотности в R для оценки плотности ядра. У меня возникли некоторые трудности при интерпретации результатов и сравнении различных наборов данных, так как кажется, что площадь под кривой не обязательно равна 1. Для любой функции плотности вероятности (pdf) нам нужно иметь площадь . Я предполагаю, что оценка плотности ядра сообщает PDF. Я использую integrate.xy из sfsmisc, чтобы оценить площадь под кривой.∫ ∞ - ∞ ϕ ( x ) d x = 1
> # 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)
Разве площадь под кривой не должна всегда быть 1? Кажется, небольшая пропускная способность является проблемой, но иногда вы хотите показать детали и т. Д. В хвостах, и требуются небольшие пропускные способности.
Обновление / ответ:
Кажется, что ответ ниже о переоценке в выпуклых областях является правильным, так как увеличение количества точек интегрирования, кажется, уменьшает проблему (я не пытался использовать более точек.)
> 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