2016-02-21 16 views
5

bir tek boyutlu ve simetrik rasgele yürüyüş prosedürü taklit ediyorum:R'de bu rasgele yürüyüş simülasyonunun 1000 katı nasıl tekrarlanır?

beyaz gürültü süre t içinde epsilon[t] ~ N(0,1) ile gösterilmektedir
y[t] = y[t-1] + epsilon[t] 

. Bu prosedürde bir sapma yoktur. Ayrıca, Pr(y[i] = +1) = Pr(y[i] = -1) = 0.5, RW simetriktir. Ben 1000 farklı y[i,t] serisi (i=1,...,1000; t=1,...,1000) simüle etmek istiyorum

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) 

:

İşte R benim kod. (Bundan sonra, t=3, t=5 ve t=10 de kökenli (y[1]=0) geri alma olasılığını kontrol edecektir.)

hangi işlevi beni y[t] rastgele yürüyüş zaman serisi ile tekrar bu tür yapmayı sağlayacak?

+1

@Tim ile aynı fikirdeyim - ama bence taşma istemek iyi bir soru. Soruyu oraya aktarabilir miyiz? –

cevap

6

sumi=t için i=1 alınır y[t] = y[0] + sum epsilon[i] yana, sekans y[t] örneğin R cumsum fonksiyonu kullanılarak, aynı anda hesaplanabilir. dizisi, T = 10³ kez tekrarlanması sonra basittir:

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

y her sırası için simüle edilmiş bir rasgele yürüyüş dizi olduğu için.

İlgili konular