我想生成一个序列:
X_n= |X_{n-1} - epsilon_n|,
其中epsilon_n
具有指数分布。
例如
epsilon <- rexp(100, rate = 0.3)
答案 0 :(得分:4)
使用Reduce
:
X0 <- 10
set.seed(42)
epsilon<-rexp(100, rate = 0.3)
eps <- c(X0, epsilon)
X <- Reduce(function(x, y) abs(x-y), eps, accumulate = TRUE)
plot(X)
答案 1 :(得分:1)
## n is length of the sequence, X0 is initial value,
## default exponential rate is 0.3
xSeq <- function(n,X0,rate=0.3){
vOut <- rep(0,n)
vOut[1] <- X0
eSeq <- rexp(n-1,rate)
for(i in 2:n){
vOut[i] <- abs(vOut[i-1]-eSeq[i-1])
vOut
}
return(vOut)
}