ฉันมีการกระจายเชิงประจักษ์ ) ฉันคำนวณมันดังนี้
x <- seq(0, 1000, 0.1)
g <- ecdf(var1)
G <- g(x)
ฉันแสดงว่าคือhคือ pdf ในขณะที่Gคือ cdf
ตอนนี้ฉันต้องการแก้สมการสำหรับการรวมสูงสุด (พูด, ), ดังนั้นค่าคาดหวังของxคือkบางอัน
นั่นคือการบูรณาการจากไปขผมควรจะมี∫ x H ( x ) d x = k ฉันต้องการที่จะแก้ปัญหาสำหรับข
เมื่อรวมส่วนต่าง ๆ ฉันสามารถเขียนสมการใหม่เป็น
ซึ่งอินทิกรัลมาจาก 0ถึง b ------- (1)
ฉันคิดว่าฉันสามารถคำนวณอินทิกรัลได้ดังนี้
intgrl <- function(b) {
z <- seq(0, b, 0.01)
G <- g(z)
return(mean(G))
}
แต่เมื่อลองใช้ฟังก์ชั่นนี้ด้วย
library(rootSolve)
root <- uniroot.All(fun, c(0, 1000))
เมื่อความสนุกคือ eq (1) ฉันได้รับข้อผิดพลาดต่อไปนี้
Error in seq.default(0, b, by = 0.01) : 'to' must be of length 1
ฉันคิดว่าปัญหาคือฟังก์ชั่นของฉันintgrl
ถูกประเมินที่ค่าตัวเลขขณะที่uniroot.All
ผ่านช่วงเวลาc(0,1000)
ฉันจะแก้ปัญหาในสถานการณ์นี้ใน R ได้อย่างไร?