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^t
(9”系数)...
“9”和“4”系数中的问题。
您将拥有“-Inf”中的“Inf”。剩下的 'y' 会很大...
我需要在 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^t
(9”系数)...
“9”和“4”系数中的问题。
您将拥有“-Inf”中的“Inf”。剩下的 'y' 会很大...