模拟变量的递归计算

标签 r time-series

我正在尝试模拟一个变量,它应该是这样工作的:

v[t] = Q * v[t-1] + e[t]
e是我使用 rnorm(156,0,0.001) 生成的随机错误; v是我的目标是模拟; Q是一个系数(我使用的是 0.5)。

第一个值 v[1]将等于 e[1] .然后
v[2] = Q * v[1] + e[2]
v[3] = Q * v[2] + e[3]
. . . 

我是 R 新手,我正在尝试使用 for循环,但我很挣扎(我打算在这里发布我的代码,但它不起作用,所以我想我不会浪费人们的时间)。提前致谢!

最佳答案

这是一个典型的自回归过程,可以使用 filter 生成。用“递归”方法。

e <- rnorm(156, 0, 0.001)
filter(x = c(0, e), filter = 0.5, method = "recursive")[-1]

让我们考虑一个只有长度为 5 的小例子:
set.seed(0)

e <- rnorm(5, 0, 0.1)
# [1]  0.12629543 -0.03262334  0.13297993  0.12724293  0.04146414

x <- filter(x = c(0, e), filter = 0.5, method = "recursive")

x[-1]
# [1] 0.12629543 0.03052438 0.14824212 0.20136399 0.14214614
filterarima.sim的主力然而,它只是一个用 C 代码编写的计算例程,不需要过程是平稳的。感兴趣的读者arima.sim可以继续阅读:
  • Simulate a time series
  • Simulate an AR(1) process with uniform innovations
  • 关于模拟变量的递归计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41089445/

    相关文章:

    python - R 选取经济衰退期的开始日期和结束日期

    用于添加向量元素的 Rcpp 函数

    r - R 中数据帧列的动态变异,无法弄清楚如何使用函数或循环

    python - 计算时间序列中连续二进制指标的数量

    python - pandas:如何生成新列以获取另一列的最后日期时间值

    python - 如何按 NAN 值拆分 Pandas 时间序列

    r - 检查时间序列数据的频率

    Rscript 找不到函数

    r - 从 mlogit 对象中提取自变量列表

    r - R 中的关联规则 RAM 不足