すべての可能なペアを使用して正規混合分布を作成する密度推定法の名前は何ですか?


12

私はちょうど一次元の密度推定値を作成するきちんとした(必ずしも良いとは限りません)方法を考えました、私の質問は:

この密度推定方法には名前がありますか?そうでない場合、それは文献の他の方法の特殊なケースですか?

ここでの方法である:我々は、ベクターが有するX=[x1,x2,...,xn]は、推定したい未知の分布から引き出されたと仮定します。これを行う方法は、すべての可能な値のペアを取得し、各ペアに対してを最尤法を使用して正規分布に適合させることです。結果の密度推定値は、結果のすべての法線で構成される混合分布になり、各法線には同じ重みが与えられます。X[xi,xj]ij

次の図は、ベクトルこのメソッドを使用する方法を示しています。ここで、円はデータポイント、色付きの法線は可能な各ペアを使用して推定された最尤分布、太い黒線は結果の密度推定(混合分布)を示しています。[1.3,0.15,0.73,1.4]

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

ところで、結果の混合分布からサンプルを引き出すRのメソッドを実装するのは本当に簡単です。

# Generating some "data"
x <- rnorm(30)

# Drawing from the density estimate using the method described above.
density_estimate_sample <- replicate(9999, {
  pair <- sample(x, size = 2)
  rnorm(1, mean(pair), sd(pair))
})

# Plotting the density estimate compared with 
# the "data" and the "true" density.
hist(x ,xlim=c(-5, 5), main='The "data"')
hist(density_estimate_sample, xlim=c(-5, 5), main='Estimated density')
hist(rnorm(9999), xlim=c(-5, 5), main='The "true" density')

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


5
メソッドを使用して試してくださいx <- c(rnorm(30), rnorm(30, 10))
-Dason

2
@Dason Yep、その場合、メソッドはまったく機能しません!:)また、大きなnで収束しません。
ラスマスバース

4
これは、相互検証によって帯域幅が推定されるカーネル密度推定の破損バージョンのように聞こえます!
西安

X=[x1,x2,,xn]n

回答:


6

標準偏差の推定量は、通常の二乗平均平方根アプローチよりも外れ値の影響を受けにくいため、これは興味深いアイデアです。ただし、この推定量が公開されているとは思えません。 理由は3つあります。計算が非効率的であり、バイアスがかかっています。バイアスが修正されても、統計的に非効率的です(ただし、ほんのわずかです)。これらは少し予備的な分析で見ることができるので、まずそれを行ってから結論を導きましょう。

分析

μσ(xi,xj)

μ^(xi,xj)=xi+xj2

そして

σ^(xi,xj)=|xixj|2.

したがって、質問で説明されている方法は

μ^(x1,x2,,xn)=2n(n1)i>jxi+xj2=1ni=1nxi,

これは平均の通常の推定量であり、

σ^(x1,x2,,xn)=2n(n1)i>j|xixj|2=1n(n1)i,j|xixj|.

E=E(|xixj|)ij

E(σ^(x1,x2,,xn))=1n(n1)i,jE(|xixj|)=E.

xixj2σ22σχ(1)2/π

E=2πσ.

2/π1.128

σ^

結論

  1. σ^n=20,000

    図

  2. i,j|xixj|O(n2)O(n)n10,000R。(他のプラットフォームでは、おそらく計算時間にわずかなコストがかかりますが、RAM要件ははるかに小さくなります。)

  3. 統計的に非効率的です。 それに最高の上映を与えるために、聞かせてのは、公平なバージョンを検討し、それを比較する公平な最小二乗法や最尤推定量のいずれかのバージョン

    σ^OLS=(1n1i=1n(xiμ^)2)(n1)Γ((n1)/2)2Γ(n/2).

    Rn=3n=300σ^OLSσ

その後

σ^


コード

sigma <- function(x) sum(abs(outer(x, x, '-'))) / (2*choose(length(x), 2))
#
# sigma is biased.
#
y <- rnorm(1e3) # Don't exceed 2E4 or so!
mu.hat <- mean(y)
sigma.hat <- sigma(y)

hist(y, freq=FALSE,
     main="Biased (dotted red) and Unbiased (solid blue) Versions of the Estimator",
     xlab=paste("Sample size of", length(y)))
curve(dnorm(x, mu.hat, sigma.hat), col="Red", lwd=2, lty=3, add=TRUE)
curve(dnorm(x, mu.hat, sqrt(pi/4)*sigma.hat), col="Blue", lwd=2, add=TRUE)
#
# The variance of sigma is too large.
#
N <- 1e4
n <- 10
y <- matrix(rnorm(n*N), nrow=n)
sigma.hat <- apply(y, 2, sigma) * sqrt(pi/4)
sigma.ols <- apply(y, 2, sd) / (sqrt(2/(n-1)) * exp(lgamma(n/2)-lgamma((n-1)/2)))

message("Mean of unbiased estimator is ", format(mean(sigma.hat), digits=4))
message("Mean of unbiased OLS estimator is ", format(mean(sigma.ols), digits=4))
message("Variance of unbiased estimator is ", format(var(sigma.hat), digits=4))
message("Variance of unbiased OLS estimator is ", format(var(sigma.ols), digits=4))
message("Efficiency is ", format(var(sigma.ols) / var(sigma.hat), digits=4))

関連する文献は少し前に遡ります。例えば、Downton、F. 1966多項式係数による線形推定。Biometrika 53:129-141 doi:10.1093 / biomet / 53.1-2.129
ニックコックス

うわー、私は思っていたよりも多くを得ました!:)
ラスマスバース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.