У меня есть упражнение делать, где я должен выполнить следующую AR (1) модель:нечисловой аргумент бинарного оператора, AR (1) модель
xi =c+φxi−1+ηi (i=1,...,T)
Я знаю, что п ~ 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' как числовой вектор, но затем добавляете к нему' имя', которое является символом, поэтому 'v' становится символом. Вот почему вы получаете сообщение об ошибке выполнения операций над нечисловым значением - 'v' не является числовым. Если вы пытаетесь связать имена с каждым значением 'v', установите' names (v) 'равным списку имен. –