我在R中编码非常新(一般编码)。我在以下代码中使用随机漫步创建了一个分发:
set.seed(124)
norm <- rnorm(1000)
mean(norm)
mean(norm)^2
sd(norm)
d <- density(norm)
plot(d)
现在我想使用上面的发行版创建一个n步的函数。该函数根据从中心向左或向右移动n步的概率计算预期值。我不知道从哪里开始。
任何方向都会受到高度赞赏。
由于
答案 0 :(得分:1)
如果每个正态分布的变量是您的步长(正向右移动和向左移动),则随机抽取的累积总和代表您当前的位置。您可以使用R中的cumsum
函数计算它:
set.seed(144)
pos <- cumsum(rnorm(1000))
plot(seq_along(pos), pos, xlab="Step Number", ylab="Current Position")
使用replicate
和逻辑操作,您可以模拟有关随机漫步的任意数量的不同问题。例如&#34;在前1000个步骤中,随机游走的值超过100的概率是多少?可以模拟:
set.seed(144)
exceed.100 <- replicate(100000, any(cumsum(rnorm(1000)) >= 100))
mean(exceed.100)
# [1] 0.00173
从这100k重复中,看起来概率大约为0.17%,随机游走在前1000步中将超过100。