2016-02-21 5 views
0

Я имитируя одномерную и симметричную процедуру случайного блуждания:Как повторить 1000 раз это случайное моделирование прогулок в R?

$$y_t=y_{t-1}+\varepsilon_t$$ 

, где белый шум обозначается $\varepsilon_t \sim 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_{it}$ series (i=1,...,1000;t=1,...,1000). (После этого, я буду проверять вероятность возвращения к происхождению ($y_1=0$) на $t=3$, $t=5$ and $t=10$.

Какая функция не позволит мне сделать такого рода повторение с $y_t$ случайных блужданий временных рядов

+0

Попробуйте "для петли" – duffymo

ответ

1

Попробуйте следующее:

length_of_time_series <- 1000 
num_replications <- 1000 

errors <- matrix(rnorm(length_of_time_series*num_replications),ncol=num_replications) 
rw <- apply(errors, 2, cumsum) 

Это создает 1000 случайных блуждания одновременно первый определяющую матрицу, наполненную белыми шум условий ошибок, взятые из стандартного нормального распределения, а на втором этапе рассчитать совокупные суммы, которые должны соответствовать вашему блужданию, предполагая что y_0=0.

Обратите внимание, что я проигнорировал, что ваши ошибки равны -1 или 1, так как я не уверен, что это то, что вы намеревались. Сказав это, вы можете настроить код выше легко с помощью следующей строки, чтобы создать ошибки, которые либо 1 или -1:

errors2 <- ifelse(errors > 0, 1, -1) 

Если вы действительно хотите идти способ сделать это несколько раз, а не делать это одновременно вы можете определить функцию, которая возвращает случайное блуждание, и использовать replicate. Обратите внимание, что вы не должны жестко кодировать семя внутри функции, чтобы избежать повторного воспроизведения одного и того же случайного блуждания.