← Catálogo · Capítulo 18

T18_mST_Script_ValoresExtremos.R

Ver crudo
# ══════════════════════════════════════════════════
# T18 · Series Temporales — Teoría de Valores Extremos (EVT)
# Abre primero mSeriesTemporales.Rproj en RStudio
# ══════════════════════════════════════════════════

library(tidyverse)
library(evd)
library(ismev)
library(POT)

pausa <- function(msg = "\n  [Pulsa ENTER para continuar...]") {
  if (interactive()) { cat(msg); invisible(readline()) }
}

set.seed(2026)

# ── 1. SIMULAR MAXIMOS DE UNA t DE STUDENT (COLA PESADA) ─
# Los maximos de una t deberian converger a una GEV con xi>0 (Frechet)
n_bloques <- 500
tam_bloque <- 22
maximos <- replicate(n_bloques, max(rt(tam_bloque, df = 4)))
cat(sprintf("Maximo medio de %d bloques de %d obs. de una t(4): %.3f\n",
            n_bloques, tam_bloque, mean(maximos)))
pausa()

# ── 2. AJUSTE GEV Y DOMINIO DE ATRACCION ──────────
fit_gev <- gev.fit(maximos, show = FALSE)
cat(sprintf("GEV: mu=%.3f sigma=%.3f xi=%.3f (se=%.3f)\n",
            fit_gev$mle[1], fit_gev$mle[2], fit_gev$mle[3], fit_gev$se[3]))
cat(ifelse(fit_gev$mle[3] > 2 * fit_gev$se[3],
           "-> xi significativamente positivo: dominio de Frechet (cola pesada), como se esperaba de una t.\n",
           "-> xi no claramente positivo: revise el tamano de la simulacion.\n"))
pausa()

# ── 3. PEAKS-OVER-THRESHOLD SOBRE LA MISMA SIMULACION ─
x <- rt(20000, df = 4)
u <- quantile(x, 0.95)
fit_gpd <- fitgpd(x, threshold = u, est = "mle")
cat(sprintf("GPD (POT): umbral=%.3f xi=%.3f (se=%.3f)\n",
            u, fit_gpd$fitted.values["shape"], fit_gpd$std.err["shape"]))
cat("El xi de la GPD deberia ser similar al de la GEV: son dos caras del mismo teorema.\n")
pausa()

# ── 4. VaR EXTREMO CON LA FORMULA DE LA GPD ───────
alpha <- 0.001
n <- length(x); Nu <- sum(x > u)
sigma_gpd <- fit_gpd$fitted.values["scale"]; xi_gpd <- fit_gpd$fitted.values["shape"]
VaR_evt <- u + (sigma_gpd / xi_gpd) * (((n / Nu) * alpha)^(-xi_gpd) - 1)
VaR_hist <- quantile(x, 1 - alpha)
cat(sprintf("VaR EVT (99.9%%): %.3f | VaR historico (99.9%%): %.3f\n", VaR_evt, VaR_hist))

# === FIN Script T18 — Teoría de Valores Extremos (EVT) ===