Normal karışım dağılımı oluşturmak için tüm olası çiftlerin kullanıldığı yoğunluk tahmin yönteminin adı nedir?


12

Sadece bir boyutlu yoğunluk tahminleri oluşturmanın düzgün (mutlaka iyi değil) bir yolunu düşündüm ve sorum şu:

Bu yoğunluk tahmin yönteminin bir adı var mı? Değilse, literatürde başka bir yöntemin özel bir örneği midir?

İşte yöntem: Tahmin etmek istediğimiz bilinmeyen bir dağılımdan alındığını düşündüğümüz bir vektörünüz var . Bunu yapmanın bir yolu, tüm olası değer çiftlerini almaktır ve her bir çift için maksimum olasılık kullanarak bir Normal dağılıma . Sonuçta elde edilen yoğunluk tahmini, sonuçta elde edilen Normallerden oluşan karışım dağılımıdır, burada her Normal'e eşit ağırlık verilir.X [ x i , x j ] i jX=[x1,x2,...,xn]X[xi,xj]ij

Aşağıdaki şekilde bu yöntemin vektör üzerinde kullanılması gösterilmektedir . Burada daireler veri noktalarıdır, renkli Normaller olası her çift kullanılarak tahmin edilen maksimum olasılık dağılımlarıdır ve kalın siyah çizgi, sonuçtaki yoğunluk tahminini (yani karışım dağılımı) gösterir.[1.3,0.15,0.73,1.4]

resim açıklamasını buraya girin

Bu arada, sonuçta ortaya çıkan karışım dağılımından bir örnek alan R'de bir yöntem uygulamak gerçekten kolaydı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')

resim açıklamasını buraya girin


5
Yönteminizi kullanarak deneyinx <- c(rnorm(30), rnorm(30, 10))
Dason

2
@ Donan Yep, bu durumda yöntem hiç çalışmıyor! :) Ayrıca büyük n ile yakınsama yok.
Rasmus Bååth

4
Bu, bant genişliğinin çapraz doğrulamayla tahmin edildiği çekirdek yoğunluk tahmininin bozuk bir sürümü gibi görünüyor!
Xi'an

' Tahmin etmek istediğimiz bilinmeyen bir dağılımdan alındığını varsaydığımız vektörümüz var' ifadesi, belki de (bana göre) soru gibi göründüğü için açıklığa kavuşturulmalıdır. bir gözlem temelinde bir genel boyutlu çok değişkenli dağılımın kestirilmesi hakkında . X=[x1,x2,,xn]n
Juho Kokkala

Yanıtlar:


6

Bu ilginç bir fikirdir, çünkü standart sapmanın tahmincisi, sıradan kök ortalama kare yaklaşımlarından daha az aykırı değerlere daha az duyarlı görünmektedir. Ancak, bu tahmincinin yayınlandığından şüpheliyim. Bunun üç nedeni vardır: hesaplama açısından verimsizdir, önyargılıdır ve önyargı düzeltildiğinde bile istatistiksel olarak verimsizdir (ancak sadece biraz). Bunlar küçük bir ön analiz ile görülebilir, bu yüzden önce bunu yapalım ve sonra sonuçları çizelim.

analiz

Ortalama ML tahmin ve standart sapma verilerine dayanarak olanμσ(xi,xj)

μ^(xi,xj)=xi+xj2

ve

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

Bu nedenle, soruda açıklanan yöntem

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

ortalamanın olağan tahmincisi olan ve

σ^(x1,x2,...,xn)=2n(n-1)Σben>j|xben-xj|2=1n(n-1)Σben,j|xben-xj|.

Bu tahmin edicinin beklenen değeri, nın ve bağımsız olduğu anlamına gelen verilerin değişebilirliğinden faydalanılarak kolayca bulunabilir . NeredenE=E(|xben-xj|)benj

E(σ^(x1,x2,...,xn))=1n(n-1)Σben,jE(|xben-xj|)=E.

Ancak ve bağımsız olduğu için Normal değişkenler, farkları sıfır ortalama Normal varyansıdır . Bu nedenle mutlak değeri , olan çarpı bir dağılımıdır . sonuç olarakxbenxj2σ22σχ(1)2/π

E=2πσ.

katsayısı bu tahmincideki sapmadır.2/π1,128

Aynı şekilde, ancak çok daha fazla çalışma ile, varyansını hesaplayabilir , ancak - göreceğimiz gibi - buna çok fazla ilgi duyma olasılığı düşüktür, bu yüzden hızlı bir simülasyonla tahmin edeceğim .σ^

Sonuçlar

  1. Tahminci önyargılıdır. yaklaşık% + 13'lük önemli bir önyargısı vardır. Bu düzeltilebilir. Örneklem büyüklüğü olan bu örnekte, hem eğimli hem de önyargı düzeltmeli tahmin ediciler histogram üzerinde çizilir. % 13 hatası belirgindir.σ^n=20,000

    şekil

  2. Hesaplama açısından verimsizdir. Çünkü mutlak değerlerin toplamı,herhangi bir cebirsel sadeleştirmeye sahip değildir, hesaplanması hemen hemen tüm diğer tahminciler için çabası yerine çabası gerektirir . Bu kötü bir şekilde ölçeklendirilir ve aştığında onu oldukça pahalı hale getirir . Örneğin, önceki rakamın hesaplanması için 45 saniye CPU süresi ve 8 GB RAM girişi gerekiyordu . (Diğer platformlarda RAM gereksinimleri, hesaplama süresinde belki de küçük bir maliyetle çok daha küçük olacaktır.)Σben,j|xben-xj|Ö(n2)Ö(n)n10,000R

  3. İstatistiksel olarak verimsizdir. En iyi gösterimi vermek için, tarafsız sürümü düşünelim ve en küçük karelerin veya maksimum olabilirlik tahmincisinin tarafsız sürümüyle karşılaştıralım.

    σ^ÖLS=(1n-1Σben=1n(xben-μ^)2)(n-1)Γ((n-1)/2)2Γ(n/2).

    Aşağıdaki Rkod, söz konusu tahmin edicinin tarafsız sürümünün şaşırtıcı derecede verimli olduğunu göstermektedir: ila arasında değişen bir dizi örnek boyutu için varyansı genellikle varyansından yaklaşık% 1 ila% 2 daha fazladır. . Bu, tahmininde herhangi bir hassasiyet seviyesine ulaşmak için numuneler için fazladan% 1 ila% 2 daha fazla ödemeyi planlamanız gerektiği anlamına gelir ., n = 300 σ O L S σn=3n=300σ^ÖLSσ

Sonrasında

formu sağlam ve dayanıklı Theil-Sen tahmincisini anımsatır - ama mutlak farklılıkların medyanlarını kullanmak yerine araçlarını kullanır. Amaç, dış değerlere dayanıklı veya Normallik varsayımından ayrılmaya karşı sağlam bir tahmin ediciye sahip olmaksa, medyan kullanmak daha tavsiye edilir. σ^


kod

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

İlgili literatür bir süre geriye gider, örneğin Downton, F. 1966 Polinom katsayıları ile doğrusal tahminler. Biometrika 53: 129-141 doi: 10.1093 / biyometri / 53.1-2.129
Nick Cox

Wow, pazarlık ettiğimden daha fazlasını aldım! :)
Rasmus Bååth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.