在 OLS 中使用一阶自回归过程创建 x
create x with first order autoregressive process in an OLS
我有一个简单的回归:yt=β1+β2xi+ei,n=27,"x" AR(1):
xi = c + ∅x(i-1) + ηi ,其中 ηi~N(0,1) , x0~N(c/(1-∅),1/(1-∅^2) , c=2 , ∅=0.6
我需要创建 "x",为此我设置了所有内容,包括 "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)
}
我应该如何创建"x"?
您计算的 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]
}
或使用生成更通用的 AR 模拟的 R 函数
mu <- c/(1-phi)
x <- arima.sim(model=list(ar=c(phi,0), sd=1), n=27) + mu
更新
要让 x[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]
好吧,我想出了一个解决办法:
设置后
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]
}
然后就成功了!!!!
我有一个简单的回归:yt=β1+β2xi+ei,n=27,"x" AR(1):
xi = c + ∅x(i-1) + ηi ,其中 ηi~N(0,1) , x0~N(c/(1-∅),1/(1-∅^2) , c=2 , ∅=0.6
我需要创建 "x",为此我设置了所有内容,包括 "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)
}
我应该如何创建"x"?
您计算的 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]
}
或使用生成更通用的 AR 模拟的 R 函数
mu <- c/(1-phi)
x <- arima.sim(model=list(ar=c(phi,0), sd=1), n=27) + mu
更新
要让 x[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]
好吧,我想出了一个解决办法:
设置后
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]
}
然后就成功了!!!!