0

我正在尝试模拟假设的股票收益。这是使用以下方法完成的:

set.seed(1)

simulate_returns <- function(T) {
  sim_return <- MASS::mvrnorm(n = T, mu = mu, Sigma = sigma)
  sim_return <- as_tibble(sim_return)
  
  return(sim_return)
}

我现在有兴趣重复这个模拟 250 次,并找到 250 个数据帧中的每一个的均值和方差,这必须用 ggplot 写出来。

我做了这个循环,但它似乎不起作用:

simulate_loop[i] <- for (i in 1:250) {
  
  sigma[i] <- simulate_returns(100) %>%
    cov(use = "pairwise.complete.obs") # Compute return sample covariance matrix %>% 
  
  mu[i] <- simulate_returns(100) %>% 
    colMeans() %>% 
    as.matrix() 

  simu_loop[i] <- compute_efficient_frontier(mu[i], sigma[i])

}  
4

1 回答 1

0

我认为你所追求的是这样的,simu_loop <- c()初始化simu_loop外部for循环。

simu_loop <- c()

for (i in 1:250) {
  x <- simulate_returns(100)

  sigma[i] <- x %>%
    cov(use = "pairwise.complete.obs") # Compute return sample covariance matrix %>%

  mu[i] <- x %>%
    colMeans() %>%
    as.matrix()

  simu_loop[i] <- compute_efficient_frontier(mu[i], sigma[i])

}
于 2021-03-04T12:28:21.683 回答