2015-10-20 1043 views
0

我對R中的編碼(一般編碼)非常陌生。我創建使用下面的代碼中隨機遊走分佈:R中的隨機遊走和高斯(正態)分佈

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

現在我想創建使用上述分配正步驟的功能。該函數根據從中心向左或向右移動n步的概率計算預期值。我不知道從哪裏開始。

任何方向將不勝感激。

由於

+1

你應該在你的文章中確實有一個明確的,具體的編程問題。如果你對像隨機散步這樣的統計模型有疑問,或許你的問題更好地屬於[stats.se]。否則,你需要更清楚地描述你想如何將這些值從一個隨機正態分佈轉化爲步驟和方向。目前還不清楚你到底想要什麼。 – MrFlick

回答

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和邏輯運算,可以模擬任意數量的約隨機遊走不同的問題。例如「什麼概率不隨機遊走的值超過第一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次。