0

そのため、この問題についてスレッドを投稿しましたが、保留になりました。それで、プログラミングの質問になるように言い換えました。これは以下の私のコードです。ブートストラップを使用して、サンプルの刺激された信頼水準を見つけようとしています。

# ステップ 1: 対数正規分布からデータを生成する

MC <-1000; # Number of samples to simulate
xbar = c(1:MC);
mu = 1;
sigma= 1.5;
the_mean <- exp(mu+sigma^2/2);
n= 10;

for(i in 1:MC)
 {
mySample <- rlnorm(n=n meanlog=mu, sdlog=sigma);
xbar [i] <- the_mean(mySample);
 }

# ステップ 2: B=1000 で 95% Bootstrap CI を計算する

B = 1000
xbar_star = c(1:B)
for(b in 1:B)
{ 
 x_star = sample(n,n, replace=TRUE)
 xbar_star[b] = mean(x_star)
 }

quantile(xbar, p=c(0.025, 0.975))

このコードを実装すると、実際には 0.90 になるはずの出力が 975.025 になっていることがわかります。出力が間違っている理由がわかりません。


信頼区間を見つけようとしているのではなく、刺激された信頼レベルを見つけようとしています。実際のカバレッジ パーセンテージ (シミュレーションで取得) は、名目上の信頼水準 (95%) とどのように比較されますか? これは私のサンプルが練習問題で与えられたときの私のコードです...


library(boot)
x = c(0.22, 0.23, 0.26, 0.27, 0.28, 0.28, 0.29,
  0.33, 0.34, 0.35, 0.38, 0.39, 0.39, 0.42, 0.42,
  0.43, 0.45, 0.46, 0.48, 0.5, 0.5, 0.51, 0.52,
  0.54, 0.56, 0.56, 0.57, 0.57, 0.6, 0.62, 0.63,
  0.67, 0.69, 0.72, 0.74, 0.76, 0.79, 0.81, 0.82,
  0.84, 0.89, 1.11, 1.13, 1.14, 1.14, 1.2, 1.33)

B = 10000
xbar = mean(x)
n = length(x)
xbar_star = c(1:B)
for(b in 1:B)
{
x_star = sample(x=x, size=n, replace=TRUE)
xbar_star[b] = mean(x_star)
}

# empirical percentile method

 quantile(xbar_star, p=c(0.025, 0.975))

> quantile(xbar_star, p=c(0.025, 0.975))
  2.5%     97.5% 
0.5221277 0.6797926 
4

0 に答える 0