경험적 분포 있습니다. 다음과 같이 계산합니다
x <- seq(0, 1000, 0.1)
g <- ecdf(var1)
G <- g(x)
나는 나타내며 , 즉 h 는 pdf이고 G 는 cdf입니다.
이제 x 의 예상 값 이 약 k 가 되도록 적분의 상한 (예 : )에 대한 방정식을 풀고 싶습니다 .
즉, 에서 b로 적분하면 ∫ x h ( x ) d x = k 가 있어야합니다 . b 를 풀고 싶습니다 .
부품으로 통합하면 방정식을 다음과 같이 다시 작성할 수 있습니다.
이며, 여기서 적분은 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))
fun이 eq (1) 인 경우 다음과 같은 오류가 발생합니다.
Error in seq.default(0, b, by = 0.01) : 'to' must be of length 1
문제는 내 함수 intgrl
가 숫자 값으로 평가되는 동안 uniroot.All
간격을 지나가는 것입니다.c(0,1000)
R 에서이 상황에서 를 어떻게 해결해야 합니까?