Las palabras simular, estimar, calibrar e identificar, aparecen de forma recurrente en la economía aplicada. Estas representan una extensión de la forma de pensar y el desarrollo de aplicaciones teóricas. Es frecuente que la identificación y calibración se tomen como sub conjuntos de la estimación. Suponga observamos una serie y(t), sobre la que suponemos sigue un proceso ar(1). Por ejemplo:
Podemos a partir de ciertos supuestos simular una serie que cumpla con estas características, con el objetivo de estudiar sus propiedades o su comportamiento bajo ciertas modificaciones. Un caso distinto es intentar recuperar los coeficientes phi_1 y sigma de un AR(1), aquí entra la estimación, que permite obtenerlos a partir de algún procedimiento estadístico como el de Mínimo Cuadrados Ordinarios (MCO) o máxima verosimilitud (mle). Mientras que la calibración, también pretende recuperar los coeficientes del modelo, pero a partir de suposiciones o conocimientos previos, buscando que el valor calibrado permita obtener una variable y*(t) parecida al valor observado.
library(dplyr)
library(tidyr)
library(stats4)
# Parámetros del modelo AR(1)
phi <- 0.8
sigma <- 1
n <- 100
set.seed(2)
y <- numeric(n)
y[1] <- rnorm(1, mean = 0, sd = sigma)
y[t] <- phi * y[t-1] + rnorm(1, mean = 0, sd = sigma)
}
fechas <- seq.Date(from = as.Date("2000-01-01"), by = "days", length.out = n)
data <- data.frame(fecha = fechas, y = y)
geom_line() +
theme_minimal()
2.
Calibrar
“Calibrar un modelo implica ajustar los parámetros del modelo basándose en conocimientos previos o estimaciones empíricas sin realizar un proceso formal de estimación. Es una forma de "ajustar" el modelo para que sea razonable para la situación específica. La calibración se refiere ajustar los parámetros del modelo basándose en conocimientos previos o estimaciones empíricas sin un proceso formal de estimación. Utiliza datos observados pero no sigue un método estadístico forma” (ChatGPT, 2024).
En la práctica,
consiste en seleccionar un conjunto de parámetros de preferencia a partir de
las referencias disponibles en la teoría económica, con la intención de que los
modelos imiten alguna característica histórica de los datos
y_obs <- y
phi_calibrado <- 0.8
y_calibrado <- numeric(n)
y_calibrado[1] <- y[1]
y_calibrado[t] <- phi_calibrado * y_calibrado[t-1] + rnorm(1, mean = 0, sd = sigma)
}
geom_line(aes(fechas, y, color = "Obs")) +
geom_line(aes(fechas, y_calibrado, color = "Calibrado")) +
theme_minimal()
Algunas
recomendaciones identificadas en la literatura:
library(stats4)
logLik_AR1 <- function(phi, sigma) {
n <- length(y_obs)
eps <- numeric(n)
eps[1] <- y_obs[1] # inicializamos el primer error
for (t in 2:n) {
}
logLik <- -0.5 * n * log(2 * pi * sigma^2) - sum(eps^2) / (2 * sigma^2)
return(logLik)
}
negLogLik_AR1 <- function(phi, sigma) {
-logLik_AR1(phi, sigma)
mle_fit <- mle(negLogLik_AR1, start = list(phi = 0.5, sigma = 1))
summary(mle_fit)
mle(minuslogl = negLogLik_AR1, start = list(phi = 0.5, sigma = 1))
Estimate Std. Error
phi 0.7218984 0.06979479
sigma 1.1476188 0.08114858
phi_estimado <- coef(mle_fit)["phi"]
sigma_estimado <- coef(mle_fit)["sigma"]
# Generar la serie temporal con los parámetros estimados
y_estimado <- numeric(n)
y_estimado[1] <- y[1]
for (t in 2:n) {
y_estimado[t] <- phi_estimado * y_estimado[t-1] + rnorm(1, mean = 0, sd = sigma_estimado)
}
data$y_estimado <- y_estimado
# Graficar los datos simulados, calibrados y estimados
data_long <- data %>%
pivot_longer(cols = c(y, y_calibrado, y_estimado), names_to = "serie", values_to = "valor")
ggplot(data_long, aes(x = fecha, y = valor, color = serie)) +
geom_line(size = 0.7) +
labs(title = "Simulación, Calibración y Estimación de un Modelo AR(1)",
color = "Serie") +
scale_color_manual(values = c("y" = "black", "y_calibrado" = "green", "y_estimado" = "red")) +
theme(plot.title = element_text(hjust = 0.5),
Cooley, T. (1997). Calibrated Models. University of
Rochester.
Hoover, K. (1995). Facts and artifacts: calibration and the
empirical assessment of real-business-cycle models. Oxford Economic Papers
47 (1), 24-44.