Um estimador isento de mediana minimiza o desvio absoluto médio?

14

Este é um acompanhamento, mas também uma pergunta diferente da minha anterior .

Li na Wikipedia que " um estimador isento de mediana minimiza o risco com relação à função de perda de desvio absoluto, como observado por Laplace ". No entanto, meus resultados da simulação de Monte Carlo não suportam esse argumento.

I assumir uma amostra de uma população de log-normal, X1,X2,...,XNLN(μ,σ2) , onde, μ e σ são a média logarítmica e log-sd, β=exp(μ)=50.

O estimador de média geométrica é um estimador não-mediano para a mediana da população ,exp(μ)

β^GM=exp(μ^)=exp(registro(XEu)N)LN(μ,σ2/N) onde e são a média logarítmica e log-sd, e são os MLEs para e .σ u σ u σμσμ^σ^μσ

Enquanto um estimador de médias geométricas corrigido é um estimador sem vieses médios para a mediana da população.

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

Gero amostras do tamanho 5 repetidamente a partir do LN . O número de replicação é 10.000. Os desvios médios absolutos que obtive são 25,14 para o estimador de média geométrica e 22,92 para a média geométrica corrigida. Por quê?(registro(50.),registro(1+22))

BTW, os desvios absolutos medianos estimados são 18,18 para média geométrica e 18,58 para estimador de média geométrica corrigido.

O script R que usei está aqui:

#```{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 
#```
Zhenglei
fonte
1
1.) "10.000" é muito pequeno para sua pergunta - tente "250.000" (ou mais). 2.) Se você executar uma simulação de Monte Carlo e obter um resultado que pareça estranho, tente alterar a semente com set.seed. 3.) Nem sempre confie na Wikipedia - observe como o texto citado (do artigo "Mediana") difere deste outro artigo da Wikipedia 4.) Seu código R é uma bagunça total - consulte o Guia de estilo R do Google para obter mais informações. boas diretrizes de estilo.
21740 Steve

Respostas:

4

α+α

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

nós exigimos

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

P(α>α+)=1/2α+

Se você está tendo problemas com o R, faça-o em outra pergunta no Stack Overflow

Keith
fonte
Teoricamente, acho que está correto. No entanto, estou confuso com os resultados da simulação R, que não fazem o backup dessa declaração conforme o esperado.
Zhenglei
2
Sou cientista / físico de dados, portanto nunca vi uma linha de R. Como sugeri na pergunta, se for um problema de código, você deve perguntar no Stack Overflow e receberá muito mais atenção. No entanto, a resposta acima está correta, a menos que você queira elaborar como ela se generaliza para um estimador imparcial e mediano. Para obter mais detalhes, consulte a página 172 do livro ET Jaynes, teoria da probabilidade ISBN 978-0-521-59271-0.
21714 Keith
Muito obrigado pela sua resposta. Não é um problema de codificação. Eu só quero fazer simulações para mostrar que um estimador isento de mediana minimizará o desvio absoluto esperado. Não aceitei a resposta porque estou principalmente confuso sobre a etapa da simulação. Eu o implementei em R, mas simulações poderiam ser feitas em Matlab ou Python ou em qualquer outra linguagem.
Zhenglei
2
@ Keith desculpe pela minha matemática fraca, mas você pode mostrar mais detalhes de como derivou a expectativa?
Adamo