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μσ(xben,xj)
μ^(xben,xj) = xben+xj2
ve
σ^(xben,xj) = |xben- xj|2.
Bu nedenle, soruda açıklanan yöntem
μ^( x1, x2, … , Xn) = 2n ( n - 1 )Σi > jxben+ xj2= 1nΣi = 1nxben,
ortalamanın olağan tahmincisi olan ve
σ^( x1, x2, … , Xn) = 2n ( n - 1 )Σi > j| xben- xj|2= 1n ( n - 1 )Σi , 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 )Σi , j,E ( | 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 / π--√12 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
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
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.)Σi , j,| xben- xj|O ( n2)O ( n )n10 , 000R
İ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.
σ^O L S= ( 1n - 1Σi = 1n( xben- μ^)2)------------------⎷( n - 1 ) Γ ( ( n - 1 ) / 2 )2 Γ ( n / 2 ).
Aşağıdaki R
kod, 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σ^O L Sσ
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))
x <- c(rnorm(30), rnorm(30, 10))