How do I simulate a sequence of random variables Xn with probability distribution P(Xn=1)=1/2, P(Xn=-1)=1/2 in R? (To be used to simulate a random walk).
Asked
Active
Viewed 397 times
1
-
You could use `ifelse` like `ifelse(runif(1000) < 0.5,-1,1)` – John Coleman Feb 19 '22 at 14:14
-
1relevant: https://stackoverflow.com/questions/21991130/simulating-a-random-walk – user20650 Feb 19 '22 at 14:34
1 Answers
2
You could simply sample the desired number of elements:
n_decisions <- 100
set.seed(1)
random_walk <- sample(c(1, -1), size = n_decisions, replace = TRUE)
table(random_walk)
random_walk
-1 1
51 49
cumsum(random_walk)
[1] 1 0 1 2 1 2 3 4 3 2 3 4 5 6 7 6 5 4 3 4 5 6 7 8 9
[26] 10 9 10 11 10 9 8 9 8 9 10 9 10 9 8 7 6 7 6 5 4 3 2 3 4
[51] 3 4 3 2 3 4 3 2 1 2 3 2 1 0 -1 -2 -3 -2 -3 -4 -5 -6 -5 -4 -3
[76] -4 -5 -4 -3 -4 -5 -6 -5 -4 -3 -4 -3 -4 -3 -4 -3 -2 -3 -4 -3 -2 -1 -2 -3 -2
Plot with N = 150.000

deschen
- 10,012
- 3
- 27
- 50