私はp。運動3.9.10を解決しようとしています。Ubbo F. Wiersemaの「ブラウン運動微積分」(ジョン・ワイリー・アンド・サンズ、2008年)の66確率論的積分をシミュレートするように求め、
以下に示すように、Rでシミュレーションを作成しました。ただし、このシミュレーションから得られる分散は
> v_sim
8 9 10 11
0.4771895 0.4304475 0.5260542 0.4664552
期待値に収束していないように見える 。シードを次のように変更すると、同じ現象が観察されます そして 同様に、サブインターバルの数が に 。何が悪いのですか?
NSIMS <- 1000L # number of simulations of the integral for every "level"
LEVELS <- 8L:11L # level n corresponds to 2^n sample points between 0 and 1
SEED <- 1
set.seed(SEED)
sims <- data.frame(simid = 1L:NSIMS) # sims contains one colum per every level.
# The column simid is a dummy column
# intended to avoid an error message
# when columns are added to sims
# on the fly inside the following loop.
# This column is deleted after the loop
# ends.
for (n in LEVELS)
{
nticks <- 2^n # nticks is the number of sample points between 0 and 1
delta <- 1/nticks
ticks <- seq(from = 0, to = 1, by = delta)
std <- sqrt(delta)
sim <- vector(mode = "numeric", length = NSIMS)
for (j in 1L:NSIMS)
{
b <- cumsum(c(0, rnorm(nticks, sd = std))) # b is a simulated
# Brownian motion path
# sampled at the tick
# marks.
integral <- 0
for (i in 1L:(length(b) - 1L))
{
integral <- integral + b[i]*(b[i + 1] - b[i])
}
sim[j] <- integral
}
sims[, as.character(n)] <- sim
}
sims$simid <- NULL
m_sim <- sapply(sims, mean)
v_sim <- sapply(sims, var)
cumsum
代わりにa を使用してi
ください。ここでは、マトリックス/適用がデータフレーム/適用などよりも優先される場合があります。これは非常に良い演習です。ヒント:何を見つけたいのか、なぜそうするのかを明確に述べてください。 合計された変数は言う 。