## 【例3.6】
set.seed(1)
n <- 1000
Y <- rexp(n)
X <- rnorm(n, Y, 2)
n1 <- sum(X > 1)
theta.e <- n1 / n
I <- X > 1
sigma2.e <- sum((I - theta.e) ^ 2) / (n * (n - 1))
theta.e
sigma2.e
# > theta.e
# [1] 0.489
# > sigma2.e
# [1] 0.0002501291
## 条件期望法
set.seed(1)
n <- 1000
Y <- rexp(n)
theta.ce <- sum(1 - pnorm((1 - Y) / 2)) / n
sigma2.ce <- sum(((1 - pnorm((1 - Y) / 2)) - theta.ce) ^ 2) / (n * (n - 1))
theta.ce
sigma2.ce
(sigma2.e - sigma2.ce) / sigma2.e
# > theta.ce
# [1] 0.4962184
# > sigma2.ce
# [1] 2.632377e-05
# > (sigma2.e - sigma2.ce) / sigma2.e
# [1] 0.8947593
# 【例3.7】
set.seed(1)
n <- 1000
U <- rexp(n)
V <- rexp(n, 1 / 2)
W <- (U + V) > 4
n1 <- sum(W)
theta.e <- n1 / n
sigma2.e <- sum((W - theta.e) ^ 2) / (n * (n - 1))
theta.e
sigma2.e
# > theta.e
# [1] 0.266
# > sigma2.e
# [1] 0.0001954394
EI.V = c()
for (i in 1:n) {
if(V[i] > 4){
EI.V[i] = 1
}else{
EI.V[i] = exp(V[i] - 4)
}
}
theta.ce <- mean(EI.V)
sigma2.ce <- sum((EI.V - theta.ce) ^ 2) / (n * (n - 1))
theta.ce
sigma2.ce
(sigma2.e - sigma2.ce) / sigma2.e
# > theta.ce
# [1] 0.2505037
# > sigma2.ce
# [1] 0.0001152125
# > (sigma2.e - sigma2.ce) / sigma2.e
# [1] 0.4104951
alpha <- 0.05
CLL.e <- theta.e - qnorm(1 - alpha / 2) * sqrt(sigma2.e)
CUL.e <- theta.e + qnorm(1 - alpha / 2) * sqrt(sigma2.e)
CLL.ce <- theta.ce - qnorm(1 - alpha / 2) * sqrt(sigma2.ce)
CUL.ce <- theta.ce + qnorm(1 - alpha / 2) * sqrt(sigma2.ce)
UL <- CUL.e - CLL.e
UL.ce <- CUL.ce - CLL.ce
Re <- data.frame('置信下限' = c(CLL.e, CLL.ce),
'置信上限' = c(CUL.e, CUL.ce),
'区间宽带' = c(UL, UL.ce))
rownames(Re) <- c('一般方法', '条件期望法')
Re
# > Re
# 置信下限 置信上限 区间宽带
# 一般方法 0.2386 0.2934 0.05480
# 条件期望法 0.2295 0.2715 0.04208