2015-04-21 4 views
2

У меня есть простая регрессия: уг = β1 + β2xi + е, с п = 27, а «х» просветляющий (1):создать й с процессом авторегрессии первого порядка в МНКЕ

х = с + ∅x (i-1) + ηi, где ηi ~ N (0,1), x0 ~ N (c/(1-∅), 1/(1-∅^2), c = 2, ∅ = 0,6

Мне нужно создать «х», для этого я поставил все, включая «x0», однако я застрял:

phi <- 0.6 
c <- 2 
ni <- rnorm(27) 
x0 <- rnorm(1,(c/(1-phi)),(1/(1-(phi)^2))) 

с for я не мог заставить его работать:

xa<- vector(mode="numeric",length=0) 
x<- rep(0,27) 
for(i in 1:27){ 
    w<-c+phi*x[i-1]+ni[i] 
    xa <- c(xa,w) 
} 

Как создать «х»?

ответ

0

хорошо, мне удалось придумать решение:

после набора

phi <- 0.6 
c <- 2 
e <- as.vector(rnorm(27)) 
ni<- as.vector(rnorm(27)) 
x0 <- rnorm(1,(c/(1-phi)),(1/(1-(phi)^2))) 

мы должны сделать for так:

x<- rep(0,27) 
x[1]<- c+phi*x0+ni[1] 
for(i in 2:27){ 
    x[i]<-c+phi*x[i-1]+ni[i] 
} 

, а затем он работает !!!!

1

Похоже, что вычисленный x [i-1] не используется для вычисления x [i]. Если я правильно понимаю вашу модель AR, вы можете попробовать

x <- rep(0,27) 
x[1] <- x0 
for(i in 2:27){ 
    x[i] <-c + phi*x[i-1] + ni[i] 
} 

или используя функцию R, который генерирует более общие AR моделирования

mu <- c/(1-phi) 
x <- arima.sim(model=list(ar=c(phi,0), sd=1), n=27) + mu 

UPDATE

Чтобы иметь х [1] содержат первое вычисленное значение после x0, попробуйте

x <- rep(0,28) 
x[1] <- x0 
for(i in 2:28){ 
    x[i] <-c + phi*x[i-1] + ni[i-1] 
} 
# to change indexing so x[1] is not x0 but is first computed value 
for(i in 1:27) { x[i] <- x[i+1] } 
x <- x[-28] 
+0

оба не соответствуют ручному результату .. когда мы делаем c + phi * x0 + ni [1] отличается от x [1], и они должны быть одинаковыми ... –