Liệu một công cụ ước lượng trung bình không thiên vị giảm thiểu có nghĩa là sai lệch tuyệt đối?


14

Đây là một câu hỏi tiếp theo nhưng cũng là một câu hỏi khác nhau của câu hỏi trước của tôi .

Tôi đọc trên Wikipedia rằng " Một người ước lượng trung bình không thiên vị giảm thiểu rủi ro đối với hàm mất độ lệch tuyệt đối, như Laplace quan sát ." Tuy nhiên, kết quả mô phỏng Monte Carlo của tôi không hỗ trợ lập luận này.

Tôi giả sử một mẫu từ dân số log-normal, , ở đâu, μσ là log-bình và log-sd, β = exp ( μ ) = 50X1,X2,...,XNLN(μ,σ2)μσβ=exp(μ)=50

Công cụ ước tính trung bình hình học là công cụ ước tính trung bình không thiên vị cho trung bình dân số ( μ ) ,exp(μ)

ở đâu,μσlà log-bình và log-sd, μ σ là MLEs choμσ.β^GM=exp(μ^)=exp(log(Xi)N)LN(μ,σ2/N)μσμ^σ^μσ

Trong khi một công cụ ước tính trung bình hình học chính xác là một công cụ ước tính không thiên vị cho trung bình dân số.

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

Tôi tạo ra các mẫu kích thước 5 lần từ LN . Số lượng nhân rộng là 10.000. Độ lệch tuyệt đối trung bình tôi nhận được là 25,14 cho công cụ ước tính trung bình hình học và 22,92 cho trung bình hình học đã hiệu chỉnh. Tại sao?(log(50),log(1+22))

BTW, độ lệch tuyệt đối trung bình ước tính là 18,18 đối với trung bình hình học và 18,58 đối với ước lượng trung bình hình học chính xác.

Kịch bản R tôi đã sử dụng ở đây:

#```{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" quá nhỏ so với câu hỏi của bạn - hãy thử "250.000" (hoặc hơn). 2.) Nếu bạn chạy mô phỏng Monte Carlo và nhận được kết quả có vẻ lạ, hãy thử thay đổi hạt giống bằng set.seed. 3.) Đừng luôn tin tưởng Wikipedia - lưu ý cách văn bản được trích dẫn của bạn (từ bài viết "Trung bình") khác với bài viết Wikipedia khác 4.) Mã R của bạn là một mớ hỗn độn - hãy xem Hướng dẫn về Phong cách R của Google để biết một số hướng dẫn phong cách tốt.
Steve S

Câu trả lời:


4

Nếu chúng ta chọn một công cụ ước tính α+ theo tiêu chí rằng nó giảm thiểu lỗi tuyệt đối dự kiến ​​từ giá trị thực α

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

chúng tôi yêu cầu

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

tương đương với P(α>α+)= =1/2. Vì thếα+ được thể hiện là trung vị như sau Laplace năm 1774.

Nếu bạn gặp sự cố với R, vui lòng hỏi nó trong một câu hỏi khác về Stack Overflow


Theoretically, I think it is correct. However, I am confused by the R simulation results which does not back up this statement as expected.
Zhenglei

2
I am a Data Scientist/Physicist so have never seen a line of R. As I suggested in the question, if it is a code issue you should ask it in Stack Overflow and you will get much more attention. However, the above answer is correct unless you would like to elaborate on how it generalizes to a median-unbiased estimator. For more details see page 172 of E.T. Jaynes book Probability theory ISBN 978-0-521-59271-0.
Keith

Thank you a lot for your answer. It is not a coding issue. I just want to do simulations to show that a median-unbiased estimator will minimize the expected absolute deviation. I haven't accepted the answer because I am mainly confused about the simulation step. I implemented it in R but simulations could be done in Matlab or Python or any other languages.
Zhenglei

2
I suspect the issue is that you are dealing with an approximation which works as N -> nhưng bạn có 10.000 và 5 whcih đều là những con số nhỏ. Có lẽ bạn tốt hơn hết là hỏi ba câu hỏi. Tại sao nó đúng trong lý thuyết, khi N thực tế đủ lớn và nếu có gì đó không đúng với mã R của bạn. Tôi đã trả lời đầu tiên, thứ hai chủ yếu là tính toán nhưng có thể có một quy tắc tốt cho trường hợp cụ thể này và thứ ba thuộc về chồng tràn.
Keith

@Keith xin lỗi vì môn toán yếu của tôi, nhưng bạn có thể trình bày chi tiết hơn về cách bạn đạt được kỳ vọng không?
AdamO
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.