如何在R中对VAR模型的系数矩阵施加约束。以下是我的一些代码
library(readxl)dat_pc_log_d <- read_excel("C:/Users/Desktop/dat_pc_log_d.xlsx")attach(dat_pc_log_d)dat_pc_log_d$itcrm = NULLdat_pc_log_d$...1 = NULLdata = ts(dat_pc_log_d,start = c(2004,1),end = c(2019,1),frequency = 4)VAR_modelo = VAR(data,p=2) VAR_modelo_restriccion = restrict(VAR_modelo,method = "ser",thresh = 2.0)ir_pib = irf(VAR_modelo_restriccion, impulse = "pbipc_log_d", response = c("pbipc_log_d", "expopc_log_d", "pbiagr_log_d"), boot = TRUE, ci = 0.95)
我需要确保一个变量的外生性,为此我必须在独立变量的一些滞后系数上施加零值。我该如何做?谢谢
回答:
library(readxl)dat_pc_log_d <- read_excel("C:/Users//dat_pc_log_d.xlsx")attach(dat_pc_log_d)dat_pc_log_d$...1 = NULLdata = ts(dat_pc_log_d,start = c(2004,1),end = c(2019,1),frequency = 4)VAR_modelo = VAR(data,p=2) restriccion = matrix(c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1), nrow=8, ncol=17, byrow = TRUE)VAR_modelo_restriccion = restrict(VAR_modelo,method = "man", resmat = restriccion)ir_pib = irf(VAR_modelo_restriccion, impulse = "itcrm", response = c("pbipc_log_d", "expopc_log_d", "inverpc_log_d" , "pbiagr_log_d"), boot = TRUE, nhead=20 ,ci = 0.68)