|
这个问题有点复杂,个人理解是:
BTMedian <- function(x,size,nloop,type=c("Par","NP"),math="SANN") {
type <- match.arg(type)
require(gmm)
require(foreach)
if(type=="NP") {
g <- function(tet,x) matrix(tet-x,ncol=1)
Prob <- gel(g,x,0,type="ETEL",method=math,maxiterlam=1000)$pt
res <- foreach(a=icount(nloop),.combine="c") %do% median(sample(x,size,prob=Prob,replace=TRUE))
cat("非参数自举\n")
res <- quantile(res)
} else {
res <- foreach(a=icount(nloop),.combine="c") %do% median(sample(x,size,replace=TRUE))
res <- quantile(res)
cat("参数自举\n")
}
return(res)
}
size <- 10
x <- rnorm(size,1,sqrt(2))
BTMedian(x,size,nloop=50)
BTMedian(x,size,nloop=50,"NP")
> BTMedian(x,size,nloop=50)
参数自举
0% 25% 50% 75% 100%
-1.2347455 0.9208364 2.1002413 2.5450035 3.4979314
> BTMedian(x,size,nloop=50,"NP")
非参数自举
0% 25% 50% 75% 100%
-1.561235 1.682804 2.217604 2.497654 3.497931
|