サンプルサイズが増加しているかのように、平均ベクトルの「実行中の」標準偏差を計算する必要があります。つまり、mean_y[1]、mean_y[1] と mean_y[2]、mean_y[1]、mean_y[2]、mean_y[3] などの sd を計算する必要があります。
どこ:
y <- rnorm(10000, mean=5, sd=2)
i <- seq(1 : length(y))
mean_y <- cumsum(y)/i
同じ基準を適用しようとして (したがって、明示的にループを使用しません)、実行平均のベクトルの標準偏差に対して次のコードを作成しました。
se <- sqrt(1/i^2*cumsum(y^2) - 1/i*mean_y^2)
これは、var(mean(x)) = 1/n*var(x) であるためです。私には、コードは問題ないようです。しかし、i (増加するサンプル サイズ) に対する信頼区間を使用して移動平均をプロットすると、95% のバンドが平均と完全に一致します。
コードは次のとおりです。
error <- qnorm(0.975)*se/sqrt(i)
lower <- mean_y - error
upper <- mean_y + error
# plotting means and ci's against sample size (= up to 10000)
plot(x=i, y=mean_y, xlab="Number of iterations (sample size)",
ylab="E[y] estimates and 95% CI's", cex=0.4, ylim=c(4.6, 5.4))
lines(lower, col="gold")
lines(upper, col="gold")
理論的根拠は、サンプル サイズが増加し続けるにつれて、推定量 "mean_y" の収束を示すグラフを作成することです。
誰でも私を助けることができますか?se
おそらく、式またはlower
とのいずれかに、ある種の基本的なエラーがありupper
ます。ありがとう!!ステファノ