यह एक अनुवर्ती है, लेकिन मेरे पिछले एक प्रश्न का भी एक अलग सवाल है ।
मैंने विकिपीडिया पर पढ़ा कि " एक औसत-निष्पक्ष अनुमानक पूर्ण-विचलन हानि के संबंध में जोखिम को कम करता है, जैसा कि लाप्लास द्वारा देखा गया है ।" हालाँकि, मेरे मोंटे कार्लो सिमुलेशन परिणाम इस तर्क का समर्थन नहीं करते हैं।
मैं एक लॉग-सामान्य आबादी, से एक नमूना मान लेता हूं । । । , एक्स एन ~ एल.एन. ( μ , σ 2 ) है, जहां, μ और σ लॉग-मतलब और लॉग-एसडी, कर रहे हैं β = exp ( μ ) = 50
ज्यामितीय-मतलब आकलनकर्ता आबादी मंझला के लिए एक मंझला-निष्पक्ष आकलनकर्ता है ,
जहां,μऔरσलॉग-मतलब और लॉग-एसडी, कर रहे हैं μ और σ के लिए MLEs हैंμऔरσ।
जबकि एक सही ज्यामितीय-माध्य अनुमानक जनसंख्या माध्यिका के लिए माध्य-निष्पक्ष अनुमानक है।
मैं बार-बार एल.एन. से आकार 5 के नमूने उत्पन्न । प्रतिकृति संख्या 10,000 है। मुझे मिली औसत निरपेक्षता ज्यामितीय-माध्य अनुमानक के लिए 25.14 और सही ज्यामितीय-माध्य के लिए 22.92 है। क्यों?
BTW, अनुमानित औसत निरपेक्ष विचलन ज्यामितीय-माध्य के लिए 18.18 और सही ज्यामितीय-माध्य अनुमानक के लिए 18.58 हैं।
मेरे द्वारा उपयोग की गई आर स्क्रिप्ट यहाँ हैं:
#```{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
#```
set.seed
। 3.) विकिपीडिया पर हमेशा भरोसा न करें - ध्यान दें कि आपका उद्धृत पाठ ("मेडियन" लेख से) इस अन्य विकिपीडिया लेख से अलग है। 4.) आपका आर कोड कुल गड़बड़ है - कुछ के लिए Google की R स्टाइल गाइड देखें। अच्छी शैली के दिशा निर्देश।