Uno stimatore imparziale mediano minimizza la devianza assoluta?


14

Questo è un seguito ma anche una domanda diversa dalla mia precedente .

Ho letto su Wikipedia che " Uno stimatore imparziale mediano minimizza il rischio rispetto alla funzione di perdita di deviazione assoluta, come osservato da Laplace ". Tuttavia, i risultati della mia simulazione Monte Carlo non supportano questo argomento.

Presumo un campione da una popolazione log-normale, , dove e sono la media log e log-sd,X1,X2,...,XNLN(μ,σ2)σ β = exp ( μ ) = 50μσβ=exp(μ)=50

Lo stimatore della media geometrica è uno stimatore imparziale mediano per la mediana della popolazione ,exp(μ)

β^GM=exp(μ^)=exp(log(Xi)N)LN(μ,σ2/N) dove, e sono la media log e log-sd, \ hat \ mu e \ hat \ sigma sono gli MLE per \ mu e \ sigma .σ u σ u σμσμ^σ^μσ

Mentre uno stimatore della media geometrica corretto è uno stimatore medio-imparziale per la mediana della popolazione.

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

Genero ripetutamente campioni di dimensione 5 da LN (log(50),log(1+22)) . Il numero di replica è 10.000. Le deviazioni assolute medie ottenute sono 25,14 per lo stimatore della media geometrica e 22,92 per la media geometrica corretta. Perché?

A proposito, le deviazioni assolute mediane stimate sono 18.18 per la media geometrica e 18.58 per lo stimatore della media geometrica corretta.

Lo script R che ho usato sono qui:

#```{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" è troppo piccolo per la tua domanda: prova "250.000" (o più). 2.) Se esegui una simulazione Monte Carlo e ottieni un risultato che sembra strano, prova a cambiare il seme con set.seed. 3.) Non fidarti sempre di Wikipedia - nota come il tuo testo citato (dall'articolo "Mediano") differisce da questo altro articolo di Wikipedia 4.) Il tuo codice R è un casino totale - controlla la Guida allo stile R di Google per alcuni linee guida di buon stile.
Steve S

Risposte:


4

α+α

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

noi richiediamo

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

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

In caso di problemi con R, chiederlo in un'altra domanda su StackTranslate.it


Teoricamente, penso che sia corretto. Tuttavia, sono confuso dai risultati della simulazione R che non supportano questa affermazione come previsto.
Zhenglei,

2
Sono uno scienziato / fisico dei dati, quindi non ho mai visto una riga di R. Come ho suggerito nella domanda, se si tratta di un problema di codice, dovresti chiederlo in Stack Overflow e otterrai molta più attenzione. Tuttavia, la risposta di cui sopra è corretta a meno che non si desideri approfondire il modo in cui si generalizza a uno stimatore imparziale mediano. Per maggiori dettagli vedi pagina 172 del libro ET Jaynes Teoria della probabilità ISBN 978-0-521-59271-0.
Keith,

Grazie mille per la tua risposta Non è un problema di codifica. Voglio solo fare simulazioni per dimostrare che uno stimatore imparziale mediano minimizzerà la deviazione assoluta prevista. Non ho accettato la risposta perché sono principalmente confuso riguardo al passaggio di simulazione. L'ho implementato in R ma le simulazioni potevano essere fatte in Matlab o Python o in qualsiasi altra lingua.
Zhenglei,

2

@Keith mi dispiace per la mia debole matematica, ma puoi mostrare maggiori dettagli su come hai derivato le aspettative?
AdamO,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.