# ══════════════════════════════════════════════════ # T08 · Caso práctico Macro — Sistema PIB-Consumo (INE), en NIVELES # Abre primero mSeriesTemporales.Rproj en RStudio # Datos: data/pib_trimestral_espana.RData, data/consumo_trimestral_espana.RData # ══════════════════════════════════════════════════ library(tidyverse) library(urca) library(tsDyn) library(tseries) pausa <- function(msg = "\n [Pulsa ENTER para continuar...]") { if (interactive()) { cat(msg); invisible(readline()) } } # ── 1. CARGA Y PREPARACION ──────────────────────── load("data/pib_trimestral_espana.RData") load("data/consumo_trimestral_espana.RData") pib <- pib_trimestral_espana con <- consumo_trimestral_espana lpib <- log(pib$pib_indice) lcon <- log(con$consumo_indice) pausa("\n [Datos cargados. Pulsa ENTER...]") # ── 2. REGRESION DE LARGO PLAZO Y ENGLE-GRANGER ─── reg_lp <- lm(lcon ~ lpib) cat(sprintf("Elasticidad consumo-renta estimada: %.3f\n", coef(reg_lp)["lpib"])) po <- po.test(cbind(lcon, lpib)) cat(sprintf("Phillips-Ouliaris: stat=%.3f p=%.3f -> %s\n", po$statistic, po$p.value, ifelse(po$p.value < 0.05, "se rechaza H0 (cointegrados)", "NO se rechaza H0 (sin evidencia)"))) pausa() # ── 3. CONTRASTE DE JOHANSEN ────────────────────── Y <- cbind(lpib = lpib, lcon = lcon) jo_trace <- ca.jo(Y, type = "trace", ecdet = "const", K = 2, spec = "transitory") print(summary(jo_trace)) pausa() # ── 4. SENSIBILIDAD: ecdet = "none" ─────────────── jo_none <- ca.jo(Y, type = "trace", ecdet = "none", K = 2, spec = "transitory") cat(sprintf("Traza r=0 con ecdet='const': %.2f (cv 5%%=%.2f)\n", jo_trace@teststat[2], jo_trace@cval[2, "5pct"])) cat(sprintf("Traza r=0 con ecdet='none' : %.2f (cv 5%%=%.2f)\n", jo_none@teststat[2], jo_none@cval[2, "5pct"])) cat("La conclusion sobre el rango de cointegracion depende de la especificacion determinista.\n") pausa() # ── 5. VECM (r=1) Y SIGNO DE LOS COEFICIENTES ───── m_vecm <- VECM(Y, lag = 1, r = 1, estim = "ML", LRinclude = "const") s <- summary(m_vecm) cat("Vector de cointegracion (beta):\n") print(m_vecm$model.specific$beta) cat("\nCoeficientes de ajuste (ECT):\n") print(s$coefficients[, "ECT"]) cat("\nAmbos positivos -> mecanismo NO estabilizador: evidencia fragil de cointegracion.\n") # === FIN Caso Práctico Macro — Tema 08 (sistema PIB-Consumo, cointegración) ===