R 如何构建具有非负值的随机游动?
我想建立一个具有一定数量创新(例如10000)和非负值的随机游走 我试过:R 如何构建具有非负值的随机游动?,r,R,我想建立一个具有一定数量创新(例如10000)和非负值的随机游走 我试过: Value <- c(100) #initial Value n <- 10000 #number of innovations for(i in 1:(n-1)){ Value[i+1] <- Value[i] + rnorm(1) if(Value[i+1] < 0){ repeat{ Value[i+1] <- Value[i] + rnorm
Value <- c(100) #initial Value
n <- 10000 #number of innovations
for(i in 1:(n-1)){
Value[i+1] <- Value[i] + rnorm(1)
if(Value[i+1] < 0){
repeat{
Value[i+1] <- Value[i] + rnorm(1)
}
if(Value[i+1] >0){
break
}
}
}
Value您可以
for(i in 1:(n-1)){
Value[i+1] <- Value[i] + abs(rnorm(1))}
for(i在1中:(n-1)){
值[i+1]您可以
for(i in 1:(n-1)){
Value[i+1] <- Value[i] + abs(rnorm(1))}
for(i在1中:(n-1)){
值[i+1]我认为有几种选择。一种是将重复循环替换为while
循环。如下所示:
Value <- c(100) #initial Value
n <- 10000 #number of innovations
for(i in 1:(n-1)){
Value[i+1] <- Value[i] + rnorm(1)
while(Value[i+1] < 0){
Value[i+1] <- Value[i] + rnorm(1)
}
}
我认为有几种选择。一种是用while
循环替换repeat
循环。如下所示:
Value <- c(100) #initial Value
n <- 10000 #number of innovations
for(i in 1:(n-1)){
Value[i+1] <- Value[i] + rnorm(1)
while(Value[i+1] < 0){
Value[i+1] <- Value[i] + rnorm(1)
}
}
不太详细的解决方案与最初的循环意图不一样。您好@Dason,您能详细谈谈您的意见吗?我检查了,唯一的区别是,更详细的答案是执行rnorm
,直到它达到非负值,而不太详细的答案将rnorm
的任何结果都转换为正值非负数的随机序列。原始值可以先增大后减小。不太详细的版本将始终增大,并且不可能减小。感谢@Dason的更正。我已删除了不太详细的解决方案!不太详细的解决方案与原始循环的意图不一样。嗨@Dason,你愿意尝试一下吗关于你的评论?我检查过了,唯一的区别是,更详细的答案是做rnorm
,直到它达到一个非负值,而不太详细的转换为正值rnorm
的任何结果都会得到一个随机的非负数序列。原始的可以增加,然后减少。不太详细的版本将始终增加,并且不可能减少。感谢@Dason的更正。我已删除了不太详细的解决方案!