我尝试在R中建立VAR模型,外生变量为:
vndata <- read.csv("vndata.txt", sep="")
names(vndata)
da <- data.frame(vndata[2:dim(vndata),])
# STOCK PRICE MODEL
y <- da[, c("irate", "stockp", "mrate", "frate")]
x <- data.frame(da[, c("cdi")])
library("vars")
VARselect(y, lag.max = 8,exogen = x)
var1 <- restrict(VAR(y, p = 2,exogen = x),method = c("ser"),thresh = 1.56)
然后,绘制脉冲响应函数:
plot(irf(var1, impulse = c("irate"), response = c("frate"), boot = T,
cumulative = FALSE,n.ahead = 20))
但是,它会生成警告:
Error in VAR(y = ysampled, p = 2, exogen = x) :
Different row size of y and exogen.
我不知道发生了什么。我使用dim()
来确保y
和x
具有相同的行大小。
1条答案
按热度按时间j0pj023g1#
试试这个,对我很有效: