Я намагаюся використовувати функцію ' щільності ' в R, щоб робити оцінки щільності ядра. У мене виникають труднощі з інтерпретацією результатів та порівнянням різних наборів даних, оскільки, здається, площа під кривою не обов'язково 1. Для будь-якої функції щільності ймовірностей (pdf) нам потрібно мати область . Я припускаю, що оцінка щільності ядра звітує про pdf. Я використовую integrate.xy від sfsmisc для оцінки площі під кривою.
> # 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