R中时间序列的模拟

Simulation of timeseries in R

我需要在 R 中模拟以下函数:

y[t] = 4 + (9*x[t-1])*y[y-1]+r[t]

我还需要做一个3D图。我是 R 的新手,因此我觉得它非常困难,希望这里的人能帮助我。

这是我目前尝试过的方法:

library(rgl)
n <- 3000
x <- runif(n,-1,1)
r <- rnorm(n)
y <- rep(NA,n)
y[1] <- r[1]
for(t in 2:n){
y[t] <- 4 + (9*x[t-1])*y[t-1]+r[t]
}
D <- data.frame(y=y[-1], x1=x[-n],y1=y[-n])
open3d()
points3d(D$x1, D$y1, D$y, size=3, col="red")
aspect3d()
axes3d()

但是我不知道模拟是否正确,绘制数据点时没有任何显示。我使用

您的模拟工作正常,只是值变得太大太快了。我删除了无限值并记录了大值:

D <- D[!is.infinite(D$y) & !is.infinite(D$y1),]
D$y <- log(D$y)
D$y1 <- log(D$y1)
plot3d(D)

以上代码成功生成了 3D 图。

你有y <- 4 + 9*x[t-1])*y[t-1]它的几何级数上升10^t9”系数)... “9”和“4”系数中的问题。 您将拥有“-Inf”中的“Inf”。剩下的 'y' 会很大...