5

我正在模拟一维对称随机游走过程:

y[t] = y[t-1] + epsilon[t]

其中白噪声用epsilon[t] ~ N(0,1)时间周期表示t。在这个过程中没有漂移。

此外,RW 是对称的,因为Pr(y[i] = +1) = Pr(y[i] = -1) = 0.5.

这是我在 R 中的代码:

set.seed(1)
t=1000
epsilon=sample(c(-1,1), t, replace = 1)

y<-c()
y[1]<-0
for (i in 2:t) {
  y[i]<-y[i-1]+epsilon[i]
}
par(mfrow=c(1,2))
plot(1:t, y, type="l", main="Random walk")
outcomes <- sapply(1:1000, function(i) cumsum(y[i]))
hist(outcomes)

我想模拟 1000 个不同的y[i,t]系列(i=1,...,1000; t=1,...,1000)。(之后,我将检查在 和 处回到原点 ( )y[1]=0t=3概率。)t=5t=10

y[t]哪个函数可以让我用随机游走时间序列进行这种重复?

4

1 回答 1

6

由于y[t] = y[0] + sum epsilon[i],其中sum取自i=1i=t序列y[t]可以立即计算,例如使用 Rcumsum函数。重复系列 T=10³ 次就很简单了:

N=T=1e3
y=t(apply(matrix(sample(c(-1,1),N*T,rep=TRUE),ncol=T),1,cumsum))

因为每一行y都是一个模拟的随机游走系列。

于 2016-02-21T13:10:35.557 回答