経験的CDF関数は通常、ステップ関数によって推定されます。これが線形補間を使用するのではなく、そのような方法で行われる理由はありますか?ステップ関数には、それを好む興味深い理論上の特性がありますか?
次に2つの例を示します。
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と同じです。具体的には、数字の任意の有限のシーケンス所与、確率空間定義(Ω 、S、P)とΩ = { 1 、2 、... 、N }、Sディスクリート、及びPをユニフォーム。ましょ割り当てる確率変数xを私に私。ECDFはXのCDFです。この巨大な概念の単純化は、定義の説得力のある議論です。
—
whuber