Изолированной Регрессии
Итак, я новичок в R, но я запускаю некоторый код, который имитирует 100 наблюдений переменной y, которая следует формуле y_t=1+.5 * y (t-1)+u. затем я хочу запустить регрессию y на y(t-1) и y_(t-2) и константу. Когда я запускаю регрессию с помощью пакета dyn, он показывает коэффициент на y_ (t-2) как NA. У кого какие мысли по этому поводу?
Вот мой код:
y<-numeric(100)
for (i in 2:100){
u <- rnorm(1, mean= 0, sd = 1)
y[1]<-2
y[i]<-1+.5*y[i-1]+u
}
model<-dyn$lm(y ~ lag(y, -1)+lag(y,-2))
Вот результат:
Call:
lm(formula = dyn(y ~ lag(y, -1) + lag(y, -2)))
**Coefficients: (1 not defined because of singularities)**
Residual standard error: 2.147e-16 on 98 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 2.344e+33 on 1 and 98 DF, p-value: < 2.2e-16
1 ответ:
Dyn работает с объектами временных рядов-обычно zoo:
library(dyn) set.seed(123) y <- numeric(100) y[1] <- 2 for (i in 2:100) { u <- rnorm(1, mean = 0, sd = 1) y[i] <- 1 + 0.5 * y[i-1] + u } z <- zoo(y) model <- dyn$lm(z ~ lag(z, -1) + lag(z, -2))
Дача:
> model Call: lm(formula = dyn(z ~ lag(z, -1) + lag(z, -2))) Coefficients: (Intercept) lag(z, -1) lag(z, -2) 1.20011 0.46826 -0.01038
Это также будет работать:
model <- dyn$lm(z ~ lag(z, -1:-2))