【发布时间】:2022-01-03 15:13:43
【问题描述】:
我在下面生成了一大段 R 代码,用于使用指定的数据生成过程模拟两个变量的数据序列。每个变量的每个模拟中有 1006 个观察值 - 每个变量有 1000 个观察值,每个变量有 3 个滞后。该代码确实为两个变量生成了一个数据系列,但每个系列在第 14 次左右观察后都有 NaN,并且随着观察次数的增加,变量的值增加得非常快。我想使用生成的数据系列进行进一步分析,因此不希望模拟数据中出现 NaN。任何有助于改进此代码以避免 NaN 的帮助将不胜感激。
N <- 100
A1_sequence <- seq(from=0.5,to=1.5,length.out = N)
A1 <- array(data = A1_sequence, dim=c(2,2,100))
A2 <- matrix(c(0.2,1.1,-0.6,0.2), nrow=2, ncol=2)
A2
#> [,1] [,2]
#> [1,] 0.2 -0.6
#> [2,] 1.1 0.2
A3 <- matrix(c(-0.8,1.2,-0.4,0.4), nrow=2, ncol=2)
A4 <- matrix(c(-0.01, 0.02,-0.03,0.05), nrow=2, ncol=2)
p <- 3 # Number of lags
N1 <- 1000+2*p # Number of observations in each simulation
k <- 2 #Number of endogenous variables
x <- matrix(0, k, N1)
myeps1 <- 0.25*rnorm(k)
for( i in (p+1):N1){
for (j in 1:N){
x[,i] <- A1[,,j]%*%x[,i-1] - A2%*%x[,i-2] - A3%*%x[,i-3] - A4%*%((x[,i-1])^3) + myeps1
}
}
【问题讨论】: