왜 ecdf는 선형 보간법이 아닌 스텝 함수를 사용합니까?


13

경험적 CDF 함수는 일반적으로 단계 함수에 의해 추정됩니다. 이것이 선형 보간을 사용하지 않고 이런 식으로 수행되는 이유가 있습니까? step 함수에 흥미로운 이론적 속성이 있습니까?

다음은 두 가지 예입니다.

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")

여기에 이미지 설명을 입력하십시오


관련 ...................................

8
"... 단계 함수에 의해 추정 됨"은 미묘한 오해입니다. ECDF는 단순히 단계 함수에 의해 추정 되는 것이 아닙니다 . 그것은 정의하여 이러한 함수. 랜덤 변수의 CDF와 동일합니다. 구체적으로, 의 유한 시퀀스가 ​​주어질 경우 확률 공간 을 , 이산 및 유니폼. 가 를 할당하는 랜덤 변수라고 하자 . ECDF는 의 CDF입니다 .x1,x2,,xn(Ω,S,P)Ω={1,2,,n}SPXxiiX이 거대한 개념 단순화는 정의에 대한 설득력있는 주장입니다.
whuber

답변:


22

그것은 정의에 의한 것입니다.

관측치 세트 의 경험적 분포 함수는 다음과 같이 정의됩니다.(Xn)

Fe(t)=#{XnXnt}n

여기서 는 설정된 카디널리티입니다. 이것은 본질적으로 스텝 기능입니다. 거의 확실하게 실제 CDF로 수렴합니다 .#

또한 두 개 이상의 (특히 비 변형 이산 형 분포)에 대해 을 사용한 분포의 경우 ECDF 변형은 실제 CDF로 수렴 되지 않습니다 . 예를 들어 CDF가 포함 된 Bernoulli 배포판을 고려하십시오.P(X=x)0x

FX(x)=pχx0+(1p)χx1
이것은 단계 함수이지만 ecdf2는 ( 와 연결하는 부분 선형 함수 .χx0(p+(1p)min(x,1))(0,p)(1,1)

고마워 알렉스. 내가 쓴 기능에 대한 또 다른 이름이 있습니까? (실제 CDF에도 수렴한다고 생각하기 때문에)
Tal Galili

5
@TalGalili 그렇지 않습니다. Bernoulli 분포를 고려하십시오. 이 경우 ecdf2가 수렴되지 않습니다. 부드럽게 ecdf라고 부를 수 있습니다. 나는 실제 CDF가 극단적 인 점을 제외하고 0이 아닌 확률을 가진 점이 없다면 (실제로 부드럽 지 않은) 실제 CDF로 수렴 할 것이라고 생각합니다
AlexR

@AlexR 당신은 이산 분포가 명확한 이유 이기 때문에이 주석을 추가하기 위해 답을 편집 할 수 있습니다. 그래서 "왜"질문에 대답합니다.
Tim

1
@Tim Done.
AlexR

감사. 단계 함수로 수렴하지만 완전히 모노톤이되는 연속적인 경험적 함수를 정의 할 수있는 방법이 있습니까 (예 : 날카로운 "점프"가 없음)?
탈 Galili
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.