Les fonctions CDF empiriques sont généralement estimées par une fonction de pas. Y a-t-il une raison pour laquelle cela se fait de cette manière et non en utilisant une interpolation linéaire? La fonction pas a-t-elle des propriétés théoriques intéressantes qui nous font la préférer?
Voici un exemple des deux:
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")
r
distributions
ecdf
Tal Galili
la source
la source
Réponses:
C'est par définition.
La fonction de distribution empirique d'un ensemble d'observations est définie par(Xn)
Où est la cardinalité définie. Il s'agit, par nature, d'une fonction échelonnée. Il converge vers le CDF réel presque sûrement .#
Notez également que pour toute distribution avec pour au moins deux (en particulier les distributions discrètes non dégénérées), votre variante d'ECDF ne converge pas vers le CDF réel. Par exemple, considérons une distribution de Bernoulli avec CDFP(X=x)≠0 x
la source