Các chức năng CDF theo kinh nghiệm thường được ước tính bởi một chức năng bước. Có một lý do tại sao điều này được thực hiện theo cách như vậy mà không phải bằng cách sử dụng phép nội suy tuyến tính? Hàm bước có bất kỳ tính chất lý thuyết thú vị nào khiến chúng ta thích nó không?
Đây là một ví dụ về hai:
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")