我正在尝试在 R 中运行向量自回归 (VAR) 模型。具体来说,我有两个内生的连续时间序列、一个外生时间序列以及一个外生因子变量。我想运行这些模型并了解在使用 IRF 函数控制外生变量时内生变量相互之间的影响。然而,虽然当我有外生时间序列变量时这有效,但当我尝试用因子变量进行控制时它不起作用。这是为什么?
data(iris)
#this works:
endogen <- iris[,c(1,2)]
exogen <- iris[,3]
exogen <- as.matrix(model.matrix(~Petal.Length+Species,data=iris))
model <- VAR(y=endogen,
p=3,
exogen=exogen)
irf_res <- irf(model,n.ahead=5,cumulative=T)
#this does not work
endogen <- iris[,c(1,2)]
exogen <- as.matrix(model.matrix(~Petal.Length+Species,data=iris))
model <- VAR(y=endogen,
p=3,
exogen=exogen)
irf_res <- irf(model,n.ahead=5,cumulative=T)
该问题很可能是由于 VAR 模型中因子变量处理不当造成的。您应该将因子变量转换为一组虚拟变量。
data(iris)
exogen <- model.matrix(~Petal.Length + Species - 1, data=iris)
model <- VAR(y=endogen, p=3, exogen=exogen)
irf_res <- irf(model, n.ahead=5, cumulative=TRUE)
希望有效,请告诉我。