R 蒙特卡洛停止标准
R Monte-Carlo stopping criteria
能否请您帮助我了解均值 (sem) 值的标准误差:sem 或 semm 中的哪一个更适合估计蒙特卡洛模拟与真实均值的接近程度。
我的意思是我必须使用观察值计算 sem,还是每次观察后使用平均值计算 semm?
#some data
x <- c(10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,1)
x_means <- c()
sem <- c()
semm <- c()
for(i in 1:length(x))
{
x_means <- c(x_means, mean(x[1:i]))
sem <- c(sem, sd(x)/sqrt(i))
semm <- c(semm, sd(x_means)/sqrt(i))
}
我想使用 sem 值作为蒙特卡洛模拟的停止标准,但了解我应该从样本还是样本均值计算 sem?
代码中的 sem 使用了所有模拟值,因此停止决策甚至不可行。我想你对 sem 的意思是
sd(x[1:i])/sqrt(i)
如果是这样,sem 是正确的选择。
对于 i.i.d 的重复随机观察。 Y_k的,我们对E[Y_k]感兴趣。每个增量的明显估计量是 X_k = (1/k)(Y_1+...+Y_k),我们想要评估每个 k 的 X_k 的精度.一个明显的选择是 X_k 的样本标准偏差,即 sqrt(1/(k-1)*sum(Y_i-X_k)^2)。我们可以按如下方式实现。
y <- NULL
precision <- 1
while (precision > 0.01){
y <- c(y,rnorm(1)) # your own Monte-Carlo here, for this example, I chose trivial one
precision <- sd(y)/sqrt(length(y)-1)
if (is.na(precision)) precision <- 1
}
能否请您帮助我了解均值 (sem) 值的标准误差:sem 或 semm 中的哪一个更适合估计蒙特卡洛模拟与真实均值的接近程度。
我的意思是我必须使用观察值计算 sem,还是每次观察后使用平均值计算 semm?
#some data
x <- c(10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,1)
x_means <- c()
sem <- c()
semm <- c()
for(i in 1:length(x))
{
x_means <- c(x_means, mean(x[1:i]))
sem <- c(sem, sd(x)/sqrt(i))
semm <- c(semm, sd(x_means)/sqrt(i))
}
我想使用 sem 值作为蒙特卡洛模拟的停止标准,但了解我应该从样本还是样本均值计算 sem?
代码中的 sem 使用了所有模拟值,因此停止决策甚至不可行。我想你对 sem 的意思是
sd(x[1:i])/sqrt(i)
如果是这样,sem 是正确的选择。
对于 i.i.d 的重复随机观察。 Y_k的,我们对E[Y_k]感兴趣。每个增量的明显估计量是 X_k = (1/k)(Y_1+...+Y_k),我们想要评估每个 k 的 X_k 的精度.一个明显的选择是 X_k 的样本标准偏差,即 sqrt(1/(k-1)*sum(Y_i-X_k)^2)。我们可以按如下方式实现。
y <- NULL
precision <- 1
while (precision > 0.01){
y <- c(y,rnorm(1)) # your own Monte-Carlo here, for this example, I chose trivial one
precision <- sd(y)/sqrt(length(y)-1)
if (is.na(precision)) precision <- 1
}