Сводит ли средне-объективная оценка к минимуму среднего абсолютного отклонения?


14

Это продолжение, но также другой вопрос моего предыдущего .

Я читал в Википедии, что « Средне-несмещенный оценщик минимизирует риск по отношению к функции потери абсолютного отклонения, как это наблюдал Лаплас ». Тем не менее, мои результаты моделирования Монте-Карло не поддерживают этот аргумент.

Я предполагаю выборку из логарифмически нормального населения, , где, и \ sigma - это среднее значение логарифма и log-sd, \ beta = \ exp (\ mu) = 50μ σ β = exp ( μ ) = 50Икс1,Икс2,,,,,ИксN~Л.Н.(μ,σ2)μσβзнак равноехр(μ)знак равно50

Среднегеометрическая оценка - это несмещенная по медиане оценка для медианы населения ехр(μ) ,

β^GMзнак равноехр(μ^)знак равноехр(Σжурнал(Икся)N)~Л.Н.(μ,σ2/N) где μ и σ - среднее значение log, а log-sd, μ^ и σ^ - MLE для μ и σ .

В то время как исправленная средняя геометрическая оценка является средней несмещенной оценкой для медианы населения.

β^CGзнак равноехр(μ^-σ^2/2N)

Я генерирую образцы размера 5 повторно из LN (журнал(50),журнал(1+22)) . Номер репликации составляет 10000. Среднее абсолютное отклонение, которое я получил, составляет 25,14 для среднего геометрического и 22,92 для исправленного среднего геометрического. Почему?

Кстати, оцененные средние абсолютные отклонения составляют 18,18 для среднего геометрического и 18,58 для скорректированного среднего геометрического.

Я использовал скрипт R здесь:

#```{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» слишком мало для вашего вопроса - попробуйте «250 000» (или больше). 2.) Если вы запустите симуляцию Монте-Карло и получите результат, который кажется странным, попробуйте изменить начальное значение с помощью set.seed. 3.) Не всегда доверяйте Википедии - обратите внимание, чем ваш цитируемый текст (из статьи «Медиана») отличается от этой другой статьи 4. Википедия . Ваш код R - полный беспорядок - посмотрите руководство по стилю Google R для некоторых хороший стиль руководства.
Стив С

Ответы:


4

Если мы выберем оценщик по критерию, который минимизирует ожидаемую абсолютную ошибку от истинного значения αα+α

Е= <|α+-α|> =-α+(α+-α)е(α)dα+α+(α-α+)е(α)dα

мы требуем

dЕdα+знак равно-α+е(α)dα-α+е(α)dαзнак равно0

что эквивалентно . Таким образом, является медианой, следующей за Лапласом в 1774 году.п(α>α+)знак равно1/2α+

Если у вас возникли проблемы с R, задайте их в другом вопросе о переполнении стека.


Теоретически я считаю это правильным. Однако меня смущают результаты моделирования R, которые не подтверждают это утверждение, как ожидалось.
Zhenglei

2
Я Data Scientist / Physicist, поэтому никогда не видел строки R. Как я и предполагал в этом вопросе, если это проблема кода, вы должны задать ее в переполнении стека, и вы получите гораздо больше внимания. Тем не менее, приведенный выше ответ является правильным, если вы не хотите подробно останавливаться на том, как он обобщается на средне-объективную оценку. Более подробную информацию см. На стр. 172 книги Э. Т. Джейнса «Теория вероятностей» ISBN 978-0-521-59271-0.
Кит

Большое спасибо за ваш ответ. Это не проблема кодирования. Я просто хочу провести симуляции, чтобы показать, что средне-объективная оценка минимизирует ожидаемое абсолютное отклонение. Я не принял ответ, потому что я в основном запутался в шаге симуляции. Я реализовал это в R, но симуляции могли быть сделаны в Matlab или Python или любых других языках.
Zhenglei

2
Я подозреваю, что проблема в том, что вы имеете дело с приближением, которое работает как N -> но у вас есть 10 000 и 5, которые оба являются небольшими числами. Возможно, вам лучше задать три вопроса. Почему это верно в теории, когда N практически достаточно велико и если с вашим R-кодом что-то не так. Я ответил на первое, второе в значительной степени расчетное, но для этого конкретного случая может быть хорошее практическое правило, а третье относится к переполнению стека.
Кит

@ Прошу прощения за мою слабую математику, но не могли бы вы рассказать подробнее о том, как вы получили ожидание?
AdamO
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.