R 中的随机游走和高斯(正态)分布

Random Walks and Gaussian (Normal) Distribution in R

我对 R 编码(一般编码)还很陌生。我在以下代码中使用随机游走创建了一个分布:

    set.seed(124)
    norm <- rnorm(1000)
    mean(norm)
    mean(norm)^2
    sd(norm)
    d <- density(norm)
    plot(d)

现在我想使用上述分布创建一个 n 步函数。该函数根据从中心向左或向右移动 n 步的概率计算期望值。我不知道从哪里开始。

任何方向将不胜感激。

谢谢

如果每个正态分布变量都是您的步长(正向右移动,负向左移动),那么您随机抽取的累积总和代表您当前的位置。您可以使用 R:

中的 cumsum 函数计算它
set.seed(144)
pos <- cumsum(rnorm(1000))
plot(seq_along(pos), pos, xlab="Step Number", ylab="Current Position")

使用replicate和逻辑运算,您可以模拟任意数量的关于随机游走的不同问题。例如 "with what probability does the value of the random walk exceed 100 within the first 1000 steps" 可以模拟为:

set.seed(144)
exceed.100 <- replicate(100000, any(cumsum(rnorm(1000)) >= 100))
mean(exceed.100)
# [1] 0.00173

从这 100k 次重复中,看起来随机游走在前 1000 步中超过 100 的概率约为 0.17%。