我有一个锻炼做,我必须运行下面的AR(1)模型:非数值参数为二进制运算符,AR(1)模型
xi =c+φxi−1+ηi (i=1,...,T)
我知道NI〜N(0 ,1); x0〜N(c /(1-φ),1 /(1-φ2)); c = 2; φ= 0.6 我正在尝试做一个for循环。我的代码如下:
n <- rnorm(T, 0, 1)
c <- 2
phi <- 0.6
x_0 <- rnorm(1,c/(1-phi), 1/(1-phi**2))
v <- vector("numeric", 0)
#for (i in 2:T){
name <- paste("x", i, sep="_")
v <- c(v,name)
v[1] <- c + phi*x_0 + n[1]
v[i] <- c + phi*v[i-1] + n[i]
}
不过,我不断收到此错误:
Error in phi * v[i - 1] : non-numeric argument to binary operator
我明白这是什么错误,但我无法找到任何解决方案来解决它。有人请赐教吗?我怎样才能给名称向量分配数值?
谢谢!
您正在将'v'定义为一个数字向量,但随后将'name'添加到它,这是字符,所以'v'就变成了字符。这就是为什么你会收到关于对非数字值执行操作的错误 - 'v'不是数字。如果您试图将名称与'v'的每个值相关联,请将'names(v)'设置为等于名称列表。 –