Я не знаю точно, почему cdf имеет разные значения, когда я изменяю пропускную способность в оценке плотности ядра. В приведенном ниже коде я генерирую случайные числа из гауссовского распределения и оцениваю плотность ядра данных при выборе различных полос пропускания (h). Когда я интегрирую pdf, я получаю разные значения, более или менее далекие от 1. Таким образом, кажется, что CDF зависит от полосы пропускания, используемой при оценке плотности ядра. Тем не менее, я полагал, что коэффициент 1 / nh в оценке плотности ядра гарантирует, что PDF-файл интегрируется до 1. Если пропускная способность является проблемой, как я могу определить его, чтобы гарантировать, что результирующий PDF-файл интегрируется до 1?
g<-1
n<-1000
set.seed(g)
df <- data.frame(x=sort(rnorm(n,0,1)))
library(functional)
gaussianKernel <- function(u) exp(-u^2/2)/(2*pi)^.5
densityFunction <- function(x, df, ker, h){
difference = t(t(df) - x)/h
W = sum(apply(difference, 1, ker)) / (nrow(df)*h)
}
myDensityFunction <- Curry(densityFunction, df=df, ker=gaussianKernel, h=2)
vect<-vector()
for (i in 1:length(df$x)){
f<-myDensityFunction(df$x[i])
vect<-c(vect,f)
}
f <- approxfun(df$x, vect, yleft = 0, yright = 0)
integrate(f, -Inf, Inf)