这是一个很好的问题,我正在学习,所以请耐心等待。
在 VECM 中不回到 0 的脉冲响应的正确解释是什么?
重复醉酒行走的主题,假设一个醉汉在一个卑鄙的少年推他时随意行走。这一推使该男子跌跌撞撞,但他在一小段距离后重新站稳了脚跟。他耸耸肩继续走,但他已经错位了几英尺,继续他醉酒的步行,可能永远不会回到原来的位置。
在这种情况下,如何解释累积的脉冲响应,然后它会无限增长(或减少)?
由于 VECM 是 delta 的模型,只要其中一个变量的“脉冲”导致未来的 delta 最终变为零,那么累积响应就不会无限增长!(请记住,没有噪音来推动它。)但是位移也不会恢复到参考值。
如果变量是协整的,它们不应该保持“接近”彼此,由一些随时间不变的值分开吗?在这种情况下,当另一个变量发生固定量的变化时,一个变量不能无限增长。
他们会这样做,而这正是纠错机制所强制执行的,粉碎了任何“外生”冲击的希望。在我即将向您展示的模拟中,单位“冲击”是发生在平衡状态还是发生在远离平衡状态的地方也很重要……很多。据我所知,urca/vars R 包组合为您带来的脉冲响应是当恰好一个变量增加一个单位并且起始位置处于平衡状态时每个变量会发生什么(恰好在协整向量)。一旦冲击发生,系统就会失去平衡,冲击的滞后效应和纠错机制都会发挥作用。它根本不干净。
我有一个模拟试图从:
(ΔytΔxt)=(.3.4)(1−1.3)(yt−1xt−1)+(.50.4.8)(Δyt−1Δxt−1)+ϵt,
我试图做的通知xt尽可能外生yt之前的 delta 没有输入xt的当前期间增量。但这似乎没有多大作用。
这是我从 x 输入单位脉冲的方式:
T <- 50
x0 <- 100
shock <- 1
offset <- 0
beta <- 1.3 # y_t - beta * x_t is stationary
Alpha <- matrix(c(.3, .4), ncol=1)
Beta_T <- matrix(c(1, -beta), ncol=2)
Gamma <- matrix(c(.5, .4, 0, .8), ncol=2, byrow=T)
# Shock x and run Generate Data block
x_t1 <- c(offset + beta * x0, x0) # start at equilibrium
x_t2 <- c(offset + beta * x0, x0 + shock) # shock in x only
# Generate data
X <- matrix(NA, nrow=T, ncol=2)
X[1, ] <- x_t1
X[2, ] <- x_t2
for (t in 3:T) {
x_lag1 <- X[t - 1, ]
del_x_lag1 <- X[t - 1, ] - X[t - 2, ]
del_x <- Alpha %*% Beta_T %*% x_lag1 + Gamma %*% del_x_lag1
X[t, ] <- x_lag1 + del_x
}
df <- as.data.frame(X)
names(df) <- c('y', 'x')
plot(df$y, main="Effect on y_t of x's impulse at t=2")
plot(df$x, main="Effect on x_t of x's impulse at t=2")

所以单位冲量在xt离开两者xt+30和yt+30降低约 10 个单位,没有任何噪音。注意从x1至x2导致更高的价值x3,但之后两个形状看起来相似。来自 vars 包函数的脉冲响应图irf如下所示(显示单位脉冲在x上y):

如果您更改偏移量以使 y 和 x 从非平衡位置开始,则脉冲响应的比例会显着不同。