Емпіричні функції CDF зазвичай оцінюються за допомогою крокової функції. Чи є причина, чому це робиться таким чином, а не за допомогою лінійної інтерполяції? Чи має ступінчаста функція цікавих теоретичних властивостей, які змушують нас віддавати перевагу цьому?
Ось приклад двох:
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 з . ( Ω , S , P ) Ω = { 1 , 2 , … , n } S P X x i i XЦе величезне концептуальне спрощення є переконливим аргументом для визначення.
—
whuber