ecdfが線形補間ではなくステップ関数を使用するのはなぜですか?


12

経験的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")

ここに画像の説明を入力してください


関連 ...................................

8
「...ステップ関数によって推定される」は微妙な誤解に反します。ECDFは単にステップ関数によって推定されるのではありません。それはある定義によると、このような機能。これは、ランダム変数のCDFと同じです。具体的には、数字の任意の有限のシーケンス所与、確率空間定義Ω SPΩ = { 1 2 ... N }Sディスクリート、及びPをx1,x2,,xn(Ω,S,P)Ω={1,2,,n}SPユニフォーム。ましょ割り当てる確率変数xをECDFはXのCDFですこの巨大な概念の単純化は、定義の説得力のある議論です。XxiiX
whuber

回答:


21

定義によります。

観察のセットの経験分布関数によって定義されます。(Xn)

Fe(t)=#{XnXnt}n

どこ #

また、少なくとも2つの分布の場合P(X=x)0x

FX(x)=pχx0+(1p)χx1
χx0(p+(1p)min(x,1))(0,p)(1,1)

ありがとう、アレックス。私が書いた関数には別の名前がありますか?(実際のCDFにも収束すると推測されるため)
タルガリリ

5
@TalGaliliありません。ベルヌーイ分布を考えます。この場合、ecdf2は収束しません。これを平滑化されたecdfと呼ぶことができます。実際のCDFには、極端なポイント(平滑化しない)以外の確率がゼロ以外のポイントがない場合、実際のCDFに収束すると思われます
AlexR

@AlexRでは、離散分布がそのような明確な理由あるため、回答を編集してこのコメントを追加できます。したがって、「なぜ」の質問に答えます。
ティム

1
@ティム完了。
AlexR

ありがとう。ステップ関数に収束するが、完全に単調である連続的な経験関数を定義する方法はありますか(つまり、鋭い「ジャンプ」なし)。
タルガリリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.