0

我在计算 R 中的某些变量时遇到问题。

这是关于波动率模型(GARCH)的。

我需要应用的公式是这样的:

在此处输入图像描述

对于第一个 sigma,我使用了一些我之前计算的默认值。从第二个开始,我需要引用前一个并添加另一列的值。

小标题是这样的: 在此处输入图像描述

我想创建一个名为 sigma_forecast 的新列。

sigma_forecast 1 = sigma2

sigma_forecast 2 = 0.96 * sigma_forecast 1 + 0.04 * r2_lag_1

sigma_forecast 3 = 0.96 * sigma_forecast 2 + 0.04 * r2_lag_1

4

1 回答 1

0
r2 <- 1:10
sigma_init <- 10
lambda <- 0.5

Reduce(function(x, y) lambda*x + (1 - lambda)*y, r2, sigma_init,
       accumulate = TRUE)
#>  [1] 10.000000  5.500000  3.750000  3.375000  3.687500  4.343750  5.171875
#>  [8]  6.085938  7.042969  8.021484  9.010742

library(purrr)
accumulate(r2, ~ lambda*.y + (1 - lambda)*.x, .init = sigma_init)
#>  [1] 10.000000  5.500000  3.750000  3.375000  3.687500  4.343750  5.171875
#>  [8]  6.085938  7.042969  8.021484  9.010742

reprex 包于 2021-10-27 创建(v2.0.1)

于 2021-10-28T02:08:34.040 回答