繁体   English   中英

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()

但是我不知道模拟是否正确完成,在绘制数据点时什么也没显示。 我用

您有y <- 4 + 9*x[t-1])*y[t-1]它的上升像几何级数10^t (“ 9 ”系数)...“ 9”和“ 4”中的问题系数。 您最多将拥有--Inf的Inf ”。 其余的“ y”将是巨大的...

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

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

上面的代码成功生成了3D图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM