경험적 CDF 함수는 일반적으로 단계 함수에 의해 추정됩니다. 이것이 선형 보간을 사용하지 않고 이런 식으로 수행되는 이유가 있습니까? step 함수에 흥미로운 이론적 속성이 있습니까?
다음은 두 가지 예입니다.
ecdf2 <- function (x) {
x <- sort(x)
n <- length(x)
if (n < 1)
stop("'x' must have 1 or more non-missing values")
vals <- unique(x)
rval <- approxfun(vals, cumsum(tabulate(match(x, vals)))/n,
method = "linear", yleft = 0, yright = 1, f = 0, ties = "ordered")
class(rval) <- c("ecdf", class(rval))
assign("nobs", n, envir = environment(rval))
attr(rval, "call") <- sys.call()
rval
}
set.seed(2016-08-18)
a <- rnorm(10)
a2 <- ecdf(a)
a3 <- ecdf2(a)
par(mfrow = c(1,2))
curve(a2, -2,2, main = "step function ecdf")
curve(a3, -2,2, main = "linear interpolation function ecdf")
관련 ...................................
"... 단계 함수에 의해 추정 됨"은 미묘한 오해입니다. ECDF는 단순히 단계 함수에 의해 추정 되는 것이 아닙니다 . 그것은 인 정의하여 이러한 함수. 랜덤 변수의 CDF와 동일합니다. 구체적으로, 의 유한 시퀀스가 주어질 경우 확률 공간 을 , 이산 및 유니폼. 가 를 할당하는 랜덤 변수라고 하자 . ECDF는 의 CDF입니다 .이 거대한 개념 단순화는 정의에 대한 설득력있는 주장입니다.
—
whuber