ฉันพยายามใช้ฟังก์ชัน ' ความหนาแน่น ' ใน R เพื่อทำการประมาณความหนาแน่นของเคอร์เนล ฉันมีความยากลำบากการตีความผลและเปรียบเทียบชุดข้อมูลต่างๆที่ดูเหมือนว่าพื้นที่ใต้เส้นโค้งไม่จำเป็นต้อง 1. สำหรับใด ๆฟังก์ชั่นความหนาแน่นของความน่าจะเป็น (PDF) , เราจำเป็นต้องมีพื้นที่∫ ∞ - ∞ φ ( x ) d x = 1 ฉันสมมติว่าการประมาณความหนาแน่นของเคอร์เนลรายงาน 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 หรือไม่? ดูเหมือนว่าแบนด์วิดท์ขนาดเล็กเป็นปัญหา แต่บางครั้งคุณต้องการแสดงรายละเอียดอื่น ๆ ในส่วนท้ายและแบนด์วิดท์ขนาดเล็กเป็นสิ่งจำเป็น
Update / คำตอบ:
> 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