# ══════════════════════════════════════════════════ # T07 · Series Temporales — Modelos VAR # Abre primero mSeriesTemporales.Rproj en RStudio # ══════════════════════════════════════════════════ library(tidyverse) library(vars) pausa <- function(msg = "\n [Pulsa ENTER para continuar...]") { if (interactive()) { cat(msg); invisible(readline()) } } set.seed(2026) # ── 1. SIMULAR UN VAR(1) BIVARIANTE CONOCIDO ────── A <- matrix(c(0.5, 0.3, 0.2, 0.4), nrow = 2, byrow = TRUE) n <- 300 Sigma <- matrix(c(1, 0.6, 0.6, 1), nrow = 2) L <- chol(Sigma) Y <- matrix(0, n, 2) for (t in 2:n) { eps <- as.numeric(t(L) %*% rnorm(2)) Y[t, ] <- A %*% Y[t - 1, ] + eps } colnames(Y) <- c("y1", "y2") plot.ts(Y, main = "VAR(1) simulado") pausa() # ── 2. ESTABILIDAD: RAICES DE LA MATRIZ COMPANION ─ cat("Valores propios de A (deben tener modulo < 1):\n") print(eigen(A)$values) pausa() # ── 3. ESTIMAR EL VAR Y RECUPERAR A ─────────────── m <- VAR(Y, p = 1, type = "none") cat("Coeficientes estimados (verdadero A = 0.5,0.2 / 0.3,0.4):\n") print(sapply(m$varresult, coef)) pausa() # ── 4. CAUSALIDAD DE GRANGER ────────────────────── print(causality(m, cause = "y1")$Granger) pausa() # ── 5. IRF ORTOGONALIZADA (CHOLESKY) ────────────── ir <- irf(m, impulse = "y1", response = "y2", n.ahead = 10, ortho = TRUE, boot = FALSE) plot(ir) cat("El orden de Cholesky (y1 antes que y2) es una hipotesis de identificacion,\n") cat("no un resultado de los datos: invertirlo cambia las IRF/FEVD.\n") pausa() # ── 6. FEVD ──────────────────────────────────────── fv <- fevd(m, n.ahead = 10) print(round(fv$y1, 3)) print(round(fv$y2, 3)) # === FIN Script T07 — Modelos VAR ===