.Purpose

Simulate 5000 sample paths , 4 times and report the stats

> set.seed(1977)
> n <- 5000
> realizations <- matrix(data = NA, ncol = 4, nrow = n)
> outcomes <- matrix(data = rnorm(4 * n), nrow = n, ncol = 4)
> for (i in 1:4) realizations[, i] <- cumsum(outcomes[, i])
> f1 <- function(x) {
+     length(which(x > 0))/length(x)
+ }
> f2 <- function(x) {
+     length(which(x < 0))/length(x)
+ }
> f3 <- function(x) {
+     length(which(x == 0))/length(x)
+ }
> f4 <- function(x) {
+     length(which(x[1:(n - 1)] * x[2:n] < 0))/length(x)
+ }
> f5 <- function(x) {
+     y <- ifelse(sign(x) < 0, 0, sign(x))
+     zeroes <- which(y == 0)
+     zeroes <- c(head(zeroes, 1) - 1, zeroes, 25 - tail(zeroes,
+         1))
+     max(diff(zeroes))/length(x)
+ }
> res <- function(x, y) {
+     a <- f1(x)
+     b <- f2(x)
+     c <- f1(y)
+     d <- f3(y)
+     e <- f2(y)
+     f <- f4(y)
+     g <- f5(y)
+     c(a, b, c, d, e, f, g) * 100
+ }
> results <- data.frame(sim1 = res(outcomes[, 1], realizations[,
+     1]), sim2 = res(outcomes[, 2], realizations[, 2]), sim3 = res(outcomes[,
+     3], realizations[, 3]), sim4 = res(outcomes[, 4], realizations[,
+     4]))
> rownames(results) <- c("Prop(+)perct", "Prop(-)perct", "Prop(St>0)perct",
+     "Prop(St=0)perct", "Prop(St<0)perct", "Prop(ChangeSign)perct",
+     "Prop(MaxSeq)perct")

Results are not really intuitive. After all random might not be really random.

> par(mfrow = c(2, 2))
> plot(realizations[, 1])
> plot(realizations[, 2])
> plot(realizations[, 3])
> plot(realizations[, 4])

RWalks-002.jpg

> print(results)
                       sim1  sim2  sim3  sim4
Prop(+)perct          50.34 50.64 50.44 50.80
Prop(-)perct          49.66 49.36 49.56 49.20
Prop(St>0)perct        1.40 99.14 29.42 88.20
Prop(St=0)perct        0.00  0.00  0.00  0.00
Prop(St<0)perct       98.60  0.86 70.58 11.80
Prop(ChangeSign)perct  0.56  0.12  0.76  1.44
Prop(MaxSeq)perct      0.40  0.20 25.32 75.74