在R包“vars”中绘制并排的脉冲响应

时间:2015-03-05 04:40:53

标签: r plot ggplot2 time-series

library(vars)
data(Canada)
var_fit <- VAR(Canada, p = 1)
var_irf <- irf(var_fit, impulse = c("U", "rw"), response = "prod")

如何在图中并排绘制两个脉冲响应

通常情况下,我会使用par(mfrow = c(1,2)),但它并没有按预期工作。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我发现了同样的问题。我解决了“手动”问题,这里是一个带有两个变量的模型VAR(1)的例子。

    impulse<-irf(model)
    irf1<-data.frame(impulse$irf$y1[,1],impulse$Lower$y1[,1],
                     impulse$Upper$y1[,1])
    irf2<-data.frame(impulse$irf$y1[,2],impulse$Lower$y1[,2],
                     impulse$Upper$y1[,2])
    par(mfrow=c(1,2), bg="azure2")
    matplot(irf1, type="l", lwd=2, col="blue2", 
            ylab=expression(y[1]), lty=c(1,2,2))
    matplot(irf2, type="l", lwd=2, col="red2", 
            ylab=expression(y[1]), lty=c(1,2,2))