Ich versuche, Übung 3.9.10 auf S. 22 zu lösen . 66 von Ubbo F. Wiersemas "Brownian Motion Calculus" (John Wiley & Sons, 2008) , in dem das stochastische Integral simuliert werden soll
Ich habe eine Simulation in R geschrieben, wie unten gezeigt. Die aus dieser Simulation resultierenden Abweichungen sind jedoch
> v_sim
8 9 10 11
0.4771895 0.4304475 0.5260542 0.4664552
die nicht auf den erwarteten Wert zu konvergieren scheinen . Das gleiche Phänomen wird beobachtet, wenn der Keim auf und geändert wird und wenn die Anzahl der Unterintervalle auf auf erhöht wird . Was mache ich falsch?
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
anstelle der i
Schleife. Matrix / Apply könnte hier auch dem Datenrahmen / Sapply usw. vorgezogen werden. Dies ist eine sehr gute Übung. Tipps: Geben Sie klar an, was Sie erwarten und warum, finden Sie die gemeinsame Verteilung der summierte Variablen sagen .