[R] Is R the right choice for simulating first passage times of random walks?
Paul Menzel
paulepanter at users.sourceforge.net
Thu Jul 28 01:36:11 CEST 2011
Dear R folks,
I need to simulate first passage times for iterated partial sums. The
related papers are for example [1][2].
As a start I want to simulate how long a simple random walk stays
negative, which should result that it behaves like n^(-½). My code looks
like this.
-------- 8< -------- code -------- >8 --------
n = 100000 # number of simulations
length = 100000 # length of iterated sum
z = rep(0, times=length + 1)
for (i in 1:n) {
x = c(0, sign(rnorm(length)))
s = cumsum(x)
for (i in 1:length) {
if (s[i] < 0 && s[i + 1] >= 0) {
z[i] = z[i] + 1
}
}
}
plot(1:length(z), z/n)
curve(x**(-0.5), add = TRUE)
-------- 8< -------- code -------- >8 --------
This code already runs for over half an hour on my system¹.
Reading about the for loop [3] it says to try to avoid loops and I
probably should use a matrix where every row is a sample.
Now my first problem is that there is no matrix equivalent for
`cumsum()`. Can I use matrices to avoid the for loop?
My second question is, is R the right choice for such simulations? It
would be great when R can also give me a confidence interval(?) and also
try to fit a curve through the result and give me the rule of
correspondence(?) [4]. Do you have pointers for those?
I glanced at simFrame [5] and read `?simulate` but could not understand
it right away and think that this might be overkill.
Do you have any suggestions?
Thanks,
Paul
¹ AMD Athlon(tm) X2 Dual Core Processor BE-2350, 2,1 GHz
[1] http://www-stat.stanford.edu/~amir/preprints/irw.ps
[2] http://arxiv.org/abs/0911.5456
[3] http://cran.r-project.org/doc/manuals/R-intro.html#Repetitive-execution
[4] https://secure.wikimedia.org/wikipedia/en/wiki/Function_(mathematics)
[5] http://finzi.psych.upenn.edu/R/library/simFrame/html/runSimulation.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110728/693bcad9/attachment.bin>
More information about the R-help
mailing list