R

时间:2015-10-20 19:03:48

标签: r function normal-distribution

我在R中编码非常新(一般编码)。我在以下代码中使用随机漫步创建了一个分发:

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

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

任何方向都会受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:1)

如果每个正态分布的变量是您的步长(正向右移动和向左移动),则随机抽取的累积总和代表您当前的位置。您可以使用R中的cumsum函数计算它:

set.seed(144)
pos <- cumsum(rnorm(1000))
plot(seq_along(pos), pos, xlab="Step Number", ylab="Current Position")

enter image description here

使用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。