當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。