当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ecdf 经验累积分布函数


R语言 ecdf 位于 stats 包(package)。

说明

使用 “ecdf” 对象的多种绘图、打印和计算方法来计算经验累积分布函数。

用法

ecdf(x)

## S3 method for class 'ecdf'
plot(x, ..., ylab="Fn(x)", verticals = FALSE,
     col.01line = "gray70", pch = 19)

## S3 method for class 'ecdf'
print(x, digits= getOption("digits") - 2, ...)

## S3 method for class 'ecdf'
summary(object, ...)
## S3 method for class 'ecdf'
quantile(x, ...)

参数

x, object

ecdf 的观测值的数值向量;对于方法,从类 "ecdf" 继承的对象。

...

要传递给后续方法的参数,例如 plot.stepfun 用于 plot 方法。

ylab

y 轴的标签。

verticals

请参阅plot.stepfun

col.01line

指定 y = 0 和 1 处水平线颜色的数字或字符,请参阅 colors

pch

情节人物。

digits

要使用的有效位数,请参阅print

细节

e.c.d.f. (经验累积分布函数) 是一个阶跃函数,在观测值处具有跳跃 ,其中 是该值处绑定观测值的数量。缺失值将被忽略。

对于观测值 x , ... , 是小于或等于 的观测值的分数,即

函数 plot.ecdfecdf 对象实现 plot 方法,是通过调用 plot.stepfun 来实现的;请参阅其文档。

对于 ecdf ,类 "ecdf" 的函数,继承自 "stepfun" 类,因此继承了 knots() 方法。

对于summary 方法,带有"header" 属性的object 结的摘要。

quantile(obj, ...) 方法计算与 quantile(x, ...) 相同的分位数,其中 x 是原始样本。

注意

类的对象"ecdf"不打算用于永久存储,并且可能会改变版本之间的结构R(并在R3.0.0)。它们通常可以通过以下方式重新创建

    eval(attr(old_obj, "call"), environment(old_obj))

因为所使用的数据被存储为对象环境的一部分。

例子

##-- Simple didactical  ecdf  example :
x <- rnorm(12)
Fn <- ecdf(x)
Fn     # a *function*
Fn(x)  # returns the percentiles for x
tt <- seq(-2, 2, by = 0.1)
12 * Fn(tt) # Fn is a 'simple' function {with values k/12}
summary(Fn)
##--> see below for graphics
knots(Fn)  # the unique data values {12 of them if there were no ties}

y <- round(rnorm(12), 1); y[3] <- y[1]
Fn12 <- ecdf(y)
Fn12
knots(Fn12) # unique values (always less than 12!)
summary(Fn12)
summary.stepfun(Fn12)

## Advanced: What's inside the function closure?
ls(environment(Fn12))
## "f"     "method" "na.rm"  "nobs"   "x"     "y"    "yleft"  "yright"
utils::ls.str(environment(Fn12))
stopifnot(all.equal(quantile(Fn12), quantile(y)))

###----------------- Plotting --------------------------
require(graphics)

op <- par(mfrow = c(3, 1), mgp = c(1.5, 0.8, 0), mar =  .1+c(3,3,2,1))

F10 <- ecdf(rnorm(10))
summary(F10)

plot(F10)
plot(F10, verticals = TRUE, do.points = FALSE)

plot(Fn12 , lwd = 2) ; mtext("lwd = 2", adj = 1)
xx <- unique(sort(c(seq(-3, 2, length.out = 201), knots(Fn12))))
lines(xx, Fn12(xx), col = "blue")
abline(v = knots(Fn12), lty = 2, col = "gray70")

plot(xx, Fn12(xx), type = "o", cex = .1)  #- plot.default {ugly}
plot(Fn12, col.hor = "red", add =  TRUE)  #- plot method
abline(v = knots(Fn12), lty = 2, col = "gray70")
## luxury plot
plot(Fn12, verticals = TRUE, col.points = "blue",
     col.hor = "red", col.vert = "bisque")

##-- this works too (automatic call to  ecdf(.)):
plot.ecdf(rnorm(24))
title("via  simple  plot.ecdf(x)", adj = 1)

par(op)

作者

Martin Maechler; fixes and new features by other R-core members.

也可以看看

stepfun ,更通用的阶跃函数类, approxfunsplinefun

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Empirical Cumulative Distribution Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。