如何在R中重复1000次随机行走模拟?

如何在R中重复1000次随机行走模拟?,r,time-series,sampling,random-walk,R,Time Series,Sampling,Random Walk,我正在模拟一个一维对称随机游动过程: y[t] = y[t-1] + epsilon[t] 其中,白噪声由时间段t中的epsilon[t]~N(0,1)表示。在这个过程中没有漂移 另外,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[t] = y[t-1] + epsilon[t]
其中,白噪声由时间段
t
中的
epsilon[t]~N(0,1)
表示。在这个过程中没有漂移

另外,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)
set.seed(1)
t=1000
ε=样本(c(-1,1),t,替换=1)

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

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

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

我同意@Tim-但我认为这是一个关于堆栈溢出的好问题。我们能把问题转到那里吗?