Medyan-tarafsız bir tahminci ortalama mutlak sapmayı en aza indirir mi?


14

Bu bir takip değil, aynı zamanda farklı bir sorudur benim öncekinden .

Wikipedia'da " Medyan-tarafsız bir tahmin edicinin, Laplace'ın gözlemlediği gibi, mutlak sapma kaybı fonksiyonu ile ilgili riski en aza indirdiğini " okudum . Ancak, Monte Carlo simülasyon sonuçlarım bu argümanı desteklemiyor.

Bir günlük normal popülasyon, , burada, ve günlük ortalama ve log-sd,X1,X2,...,XNLN(μ,σ2)μσβ=exp(μ)=50

Geometrik ortalama tahmincisi, medyan popülasyonu için medyan-tarafsız bir tahmin edicidir ,exp(μ)

β^GM=exp(μ^)=exp(log(Xi)N)LN(μ,σ2/N) , ve günlük ortalama ve log-sd, ve ve için MLE'lerdir .μσμ^σ^μσ

Düzeltilmiş bir geometrik ortalama tahmincisi popülasyon medyanı için ortalama bir tarafsız tahmin edicidir.

β^CG=exp(μ^σ^2/2N)

5 boyutlu örnekleri tekrar tekrar LN'den üretiyorum . Çoğaltma numarası 10.000'dir. Aldığım ortalama mutlak sapmalar geometrik ortalama tahmincisi için 25,14 ve düzeltilmiş geometrik ortalama için 22,92'dir. Neden?(log(50),log(1+22))

BTW, tahmini ortalama mutlak sapmalar geometrik ortalama için 18.18 ve düzeltilmiş geometrik ortalama tahmincisi için 18.58'dir.

Kullandığım R betiği burada:

#```{r stackexchange}
#' Calculate the geomean to estimate the lognormal median.
#'
#' This function Calculate the geomean to estimate the lognormal
#' median.
#'
#' @param x a vector.
require(plyr)
GM <- function(x){
    exp(mean(log(x)))
}
#' Calculate the bias corrected geomean to estimate the lognormal
#' median.
#'
#' This function Calculate the bias corrected geomean using the
#' variance of the log of the samples, i.e., $\hat\sigma^2=1/(n-1)
# \Sigma_i(\Log(X_i)-\hat\mu)^2$
#'
#' @param x a vector.
BCGM <- function(x){
y <- log(x)
exp(mean(y)-var(y)/(2*length(y)))
}
#' Calculate the bias corrected geomean to estimate the lognormal
#' median.
#'
#' This function Calculate the bias corrected geomean using
#' $\hat\sigma^2=1/(n)\Sigma_i(\Log(X_i)-\hat\mu)^2$
#'
#' @param x a vector.
CG <- function(x){
y <- log(x)
exp(mean(y)-var(y)/(2*length(y))*(length(y)-1)/length(y))
}

############################

simln <- function(n,mu,sigma,CI=FALSE)
{
    X <- rlnorm(n,mu,sigma)
    Y <- 1/X
    gm <- GM(X)
    cg <- CG(X)
    ##gmk <- log(2)/GM(log(2)*Y) #the same as GM(X)
    ##cgk <- log(2)/CG(log(2)*Y)
    cgk <- 1/CG(Y)
    sm <- median(X)
    if(CI==TRUE) ci <- calCI(X)
    ##bcgm <- BCGM(X)
    ##return(c(gm,cg,bcgm))
    if(CI==FALSE) return(c(GM=gm,CG=cg,CGK=cgk,SM=sm)) else return(c(GM=gm,CG=cg,CGK=cgk,CI=ci[3],SM=sm))
}
cv <-2
mcN <-10000
res <- sapply(1:mcN,function(i){simln(n=5,mu=log(50),sigma=sqrt(log(1+cv^2)), CI=FALSE)})
sumres.mad <- apply(res,1,function(x) mean(abs(x-50)))
sumres.medad <- apply(res,1,function(x) median(abs(x-50)))
sumres.mse <- apply(res,1,function(x) mean((x-50)^2))
#```

#```{r eval=FALSE}
#> sumres.mad
      GM       CG      CGK       SM 
#25.14202 22.91564 29.65724 31.49275 
#> sumres.mse
      GM       CG      CGK       SM 
#1368.209 1031.478 2051.540 2407.218 
#```

1
1.) "10.000" sorunuz için çok küçük - "250.000" (veya daha fazla) deneyin. 2.) Monte Carlo simülasyonu çalıştırırsanız ve garip görünen bir sonuç alırsanız, tohumu değiştirmeyi deneyin set.seed. 3.) Her zaman Wikipedia'ya güvenmeyin - alıntılanan metninizin ("Medyan" makalesinden) bu diğer Wikipedia makalesinden nasıl farklı olduğuna dikkat edin .) R kodunuz tamamen dağınıktır - bazıları için Google'ın R Stil Kılavuzu'na göz atın iyi stil yönergeleri.
Steve S

Yanıtlar:


4

Ölçüt tarafından bir tahminci seçersek , beklenen mutlak hatayı gerçek değerden en aza indirirα+α

E=<|α+α|>=α+(α+α)f(α)dα+α+(αα+)f(α)dα

ihtiyacımız var

dEdα+=α+f(α)dαα+f(α)dα=0

eşdeğerdir . Yani , 1774'te Laplace'ı takip eden medyan olarak gösterilmiştir.P(α>α+)=1/2α+

R ile ilgili sorun yaşıyorsanız, lütfen Stack Overflow ile ilgili başka bir soruda sorun


Teorik olarak, doğru olduğunu düşünüyorum. Ancak, bu ifadeyi beklendiği gibi desteklemeyen R simülasyon sonuçlarıyla karıştırılmam.
Zhenglei

2
Ben bir Veri Bilimcisi / Fizikçiyim, bu yüzden hiç bir R hattı görmedim. Bununla birlikte, medyan-tarafsız bir tahmin ediciyi nasıl genelleştirdiğini açıklamak istemiyorsanız, yukarıdaki cevap doğrudur. Daha fazla ayrıntı için, ET Jaynes kitabının Olasılık teorisi ISBN 978-0-521-59271-0, sayfa 172'ye bakınız.
Keith

Cevabınız için çok teşekkür ederim. Bu bir kodlama sorunu değil. Sadece medyan-tarafsız bir tahmin edicinin beklenen mutlak sapmayı en aza indireceğini göstermek için simülasyonlar yapmak istiyorum. Cevabı kabul etmedim çünkü esas olarak simülasyon adımı hakkında kafam karıştı. R'de uyguladım, ancak simülasyonlar Matlab veya Python veya diğer dillerde yapılabilir.
Zhenglei

2
Sorun, N -> olarak çalışan bir yaklaşımla uğraştığınızdan şüpheleniyorum, ancak her ikisinin de küçük sayıları olan 10.000 ve 5'iniz var. Belki de üç soru sormak daha iyidir. Teoride neden doğrudur, N neredeyse yeterince büyük olduğunda ve R kodunuzda bir sorun varsa. Birincisine cevap verdim, ikincisi büyük ölçüde hesaplayıcıdır, ancak bu özel durum için iyi bir kural olabilir ve üçüncüsü yığın taşmasına aittir.
Keith

@ Zayıf matemim için üzgünüm, ama beklentiyi nasıl elde ettiğiniz hakkında daha fazla ayrıntı gösterebilir misiniz?
AdamO
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.