## ============================================================================
## EJERCICIO 1 - RESPONDA, DEFINA Y EXPLIQUE
## ============================================================================
## a) ¿Puede considerarse que un proceso ruido blanco es un proceso estacionario?
##
## SÍ. Un proceso ruido blanco es estacionario porque cumple con las tres condiciones:
## 1. Media constante: El valor esperado es constante a través del tiempo
## 2. Varianza constante: La dispersión de los datos se mantiene uniforme
## 3. Autocovarianza cero: No existe correlación entre observaciones en diferentes tiempos
##
## El ruido blanco es estacionario en sentido débil (estacionario de segundo orden)
## porque sus momentos de primer y segundo orden son constantes en el tiempo.
## Además, al no tener dependencia temporal, satisface trivialmente las condiciones
## de estacionariedad.
## ============================================================================
## b) Defina la propiedad de Ergodicidad
##
## LA ERGODICIDAD es una propiedad de algunos procesos estocásticos que permite
## estimar propiedades poblacionales usando realizaciones temporales de una sola
## trayectoria del proceso.
##
## Formalmente, un proceso estocástico es ergódico si:
## 1. El promedio temporal converge al promedio espacial
## 2. La autocovarianza muestral converge a la autocovarianza poblacional
##
## Un proceso es ergódico si a medida que se incrementan las observaciones de tiempo,
## los momentos muestrales convergen a los momentos poblacionales.
##
## NOTA: Si un proceso es estacionario, NO necesariamente es ergódico. La estacionariedad
## es una condición necesaria pero no suficiente para la ergodicidad.
##
## En términos prácticos, la ergodicidad significa que podemos aprender sobre
## las propiedades del proceso observando una sola realización a lo largo del tiempo,
## en lugar de necesitar múltiples realizaciones en un punto fijo del tiempo.
##
## La ergodicidad es crucial en econometría porque permite usar datos de series
## de tiempo para hacer inferencia sobre los parámetros poblacionales del proceso.
## ============================================================================
## IMPLICACIONES PRÁCTICAS
## ============================================================================
## • La estacionariedad es condición necesaria pero no suficiente para ergodicidad
## • Los procesos no ergódicos requieren múltiples realizaciones para su análisis
## • En econometría, generalmente se asume ergodicidad para poder hacer inferencia
## con datos de series de tiempo
## • La ergodicidad garantiza que los estimadores muestrales sean consistentes
## para los parámetros poblacionales
#### Ejercicio 2
# Cargar librerías
library(readxl)
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
# Leer los datos desde el archivo Excel
PAISES <- read_excel("PAISES.xlsx")
head(PAISES)
## # A tibble: 6 × 6
## Periodo Chile Colombia Ecuador México Perú
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1980 7.99 4.09 3.71 8.76 5.94
## 2 1981 6.53 2.28 5.61 9.59 5.55
## 3 1982 -11.0 0.948 0.615 -0.0496 -0.223
## 4 1983 -5.02 1.57 -0.337 -4.62 -10.4
## 5 1984 4.10 3.35 2.63 3.51 3.61
## 6 1985 4.01 3.11 3.94 1.92 2.06
# Verificar la estructura de los datos
datos <- PAISES
head(datos)
## # A tibble: 6 × 6
## Periodo Chile Colombia Ecuador México Perú
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1980 7.99 4.09 3.71 8.76 5.94
## 2 1981 6.53 2.28 5.61 9.59 5.55
## 3 1982 -11.0 0.948 0.615 -0.0496 -0.223
## 4 1983 -5.02 1.57 -0.337 -4.62 -10.4
## 5 1984 4.10 3.35 2.63 3.51 3.61
## 6 1985 4.01 3.11 3.94 1.92 2.06
# Renombrar columnas para facilitar el manejo
colnames(datos) <- c("Año", "Chile", "Colombia", "Ecuador", "México", "Perú")
# Eliminar filas con NA y filtrar período 1980-2023 (como indica el taller)
datos <- datos %>%
na.omit() %>%
filter(Año >= 1980 & Año <= 2023) %>% # Corregido a 2023
mutate(Año = as.numeric(Año))
# Verificar la estructura de los datos
head(datos)
## # A tibble: 6 × 6
## Año Chile Colombia Ecuador México Perú
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1980 7.99 4.09 3.71 8.76 5.94
## 2 1981 6.53 2.28 5.61 9.59 5.55
## 3 1982 -11.0 0.948 0.615 -0.0496 -0.223
## 4 1983 -5.02 1.57 -0.337 -4.62 -10.4
## 5 1984 4.10 3.35 2.63 3.51 3.61
## 6 1985 4.01 3.11 3.94 1.92 2.06
str(datos)
## tibble [44 × 6] (S3: tbl_df/tbl/data.frame)
## $ Año : num [1:44] 1980 1981 1982 1983 1984 ...
## $ Chile : num [1:44] 7.99 6.53 -11.01 -5.02 4.1 ...
## $ Colombia: num [1:44] 4.087 2.277 0.948 1.574 3.351 ...
## $ Ecuador : num [1:44] 3.709 5.613 0.615 -0.337 2.625 ...
## $ México : num [1:44] 8.7566 9.5858 -0.0496 -4.6241 3.5134 ...
## $ Perú : num [1:44] 5.943 5.552 -0.223 -10.408 3.608 ...
### Punto a
# Función para crear gráficos individuales
crear_grafico_pais <- function(pais, color) {
ggplot(datos, aes(x = Año, y = .data[[pais]])) +
geom_line(color = color, linewidth = 1) +
geom_point(color = "darkblue", size = 1.5) +
labs(
title = paste("Tasa de Crecimiento Anual del PIB -", pais),
x = "Año",
y = "Crecimiento Anual (%)",
caption = "Fuente: World Development Indicators - Banco Mundial"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(size = 10),
axis.title = element_text(size = 12)
) +
scale_x_continuous(breaks = seq(1980, 2022, 5))
}
# Crear y mostrar gráficos para cada país
grafico_chile <- crear_grafico_pais("Chile", "steelblue")
grafico_colombia <- crear_grafico_pais("Colombia", "darkgreen")
grafico_ecuador <- crear_grafico_pais("Ecuador", "goldenrod3")
grafico_mexico <- crear_grafico_pais("México", "brown")
grafico_peru <- crear_grafico_pais("Perú", "darkred")
# Mostrar gráficos
print(grafico_chile)

print(grafico_colombia)

print(grafico_ecuador)

print(grafico_mexico)

print(grafico_peru)

### Punto b
install.packages("kableExtra")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
library(kableExtra)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
# Calcular estadísticas descriptivas
estadisticas_paises <- datos %>%
select(-Año) %>%
summarise(across(everything(), list(
Media = ~mean(., na.rm = TRUE),
Mediana = ~median(., na.rm = TRUE),
Desviación = ~sd(., na.rm = TRUE),
Mínimo = ~min(., na.rm = TRUE),
Máximo = ~max(., na.rm = TRUE)
))) %>%
pivot_longer(cols = everything(), names_to = "Estadística_País", values_to = "Valor") %>%
separate(Estadística_País, into = c("País", "Estadística"), sep = "_") %>%
pivot_wider(names_from = Estadística, values_from = Valor) %>%
select(País, Media, Mediana, Desviación, Mínimo, Máximo)
# Mostrar tabla formateada
estadisticas_paises %>%
kable(digits = 2, caption = "Estadísticas Descriptivas del Crecimiento del PIB (1980-2022)") %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Estadísticas Descriptivas del Crecimiento del PIB (1980-2022)
País
|
Media
|
Mediana
|
Desviación
|
Mínimo
|
Máximo
|
Chile
|
4.15
|
4.85
|
4.23
|
-11.01
|
11.33
|
Colombia
|
3.46
|
3.42
|
2.85
|
-7.19
|
10.80
|
Ecuador
|
3.01
|
3.57
|
3.34
|
-9.25
|
9.82
|
México
|
2.18
|
2.60
|
3.72
|
-8.62
|
9.59
|
Perú
|
3.09
|
3.78
|
5.69
|
-12.31
|
13.36
|
## ============================================================================
## PUNTO b - ANÁLISIS POR PAÍS
## ============================================================================
## CHILE: Crecimiento promedio de 4.15% con alta volatilidad (sd=4.23%).
## Mínimo histórico de -11.0% (1982) y máximo de 11.3% (2021), mostrando
## economía vulnerable a shocks pero con fuerte capacidad de recuperación.
## COLOMBIA: Media de 3.46% y menor volatilidad (sd=2.85%). Comportamiento
## estable con mínimo de -7.19% (2020) y máximo de 10.8% (2021), reflejando
## resiliencia económica.
## ECUADOR: Promedio de 3.01% con volatilidad moderada (sd=3.34%). Mínimo de
## -9.25% (2020) y máximo de 9.82% (2021), indicando sensibilidad a crisis
## internacionales.
## MÉXICO: Media más baja (2.18%) y volatilidad media (sd=3.72%). Fuertes
## caídas (-8.62% en 2020) y recuperaciones (9.59% en 1981), reflejando
## dependencia de ciclo económico global.
## PERÚ: Mayor volatilidad (sd=5.69%) con promedio de 3.09%. Extremos
## pronunciados (-12.3% en 1989 y 13.4% en 2021), típico de economía
## primaria exportadora.
### Punto c
# Crear variable de periodo
datos_periodos <- datos %>%
mutate(Periodo = case_when(
Año %in% 1980:1989 ~ "1980-1989",
Año %in% 1990:1999 ~ "1990-1999",
Año %in% 2000:2009 ~ "2000-2009",
Año %in% 2010:2022 ~ "2010-2022"
))
# Calcular estadísticas por periodo y país
estadisticas_periodos <- datos_periodos %>%
select(-Año) %>%
group_by(Periodo) %>%
summarise(across(everything(), list(
Media = ~mean(., na.rm = TRUE),
Mediana = ~median(., na.rm = TRUE),
Desviación = ~sd(., na.rm = TRUE),
Mínimo = ~min(., na.rm = TRUE),
Máximo = ~max(., na.rm = TRUE)
), .names = "{.col}_{.fn}")) %>%
pivot_longer(cols = -Periodo, names_to = "Variable", values_to = "Valor") %>%
separate(Variable, into = c("País", "Estadística"), sep = "_") %>%
pivot_wider(names_from = Estadística, values_from = Valor) %>%
select(Periodo, País, Media, Mediana, Desviación, Mínimo, Máximo)
# Mostrar tabla formateada
estadisticas_periodos %>%
kable(digits = 2, caption = "Estadísticas Descriptivas por Periodos") %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Estadísticas Descriptivas por Periodos
Periodo
|
País
|
Media
|
Mediana
|
Desviación
|
Mínimo
|
Máximo
|
1980-1989
|
Chile
|
3.57
|
5.92
|
6.51
|
-11.01
|
9.92
|
1980-1989
|
Colombia
|
3.40
|
3.38
|
1.54
|
0.95
|
5.82
|
1980-1989
|
Ecuador
|
2.63
|
3.05
|
2.28
|
-0.34
|
5.89
|
1980-1989
|
México
|
2.21
|
1.99
|
4.61
|
-4.62
|
9.59
|
1980-1989
|
Perú
|
0.39
|
2.83
|
8.26
|
-12.31
|
9.73
|
1990-1999
|
Chile
|
6.10
|
6.70
|
3.20
|
-0.27
|
11.17
|
1990-1999
|
Colombia
|
2.86
|
3.74
|
3.00
|
-4.20
|
5.81
|
1990-1999
|
Ecuador
|
2.32
|
2.76
|
2.68
|
-4.74
|
4.33
|
1990-1999
|
México
|
3.65
|
4.19
|
3.68
|
-5.91
|
7.20
|
1990-1999
|
Perú
|
3.20
|
2.51
|
4.87
|
-4.98
|
12.31
|
2000-2009
|
Chile
|
4.25
|
4.85
|
2.22
|
-1.12
|
6.67
|
2000-2009
|
Colombia
|
3.91
|
3.60
|
1.96
|
1.14
|
6.74
|
2000-2009
|
Ecuador
|
3.92
|
4.27
|
2.11
|
1.09
|
6.83
|
2000-2009
|
México
|
1.27
|
1.63
|
3.26
|
-6.30
|
5.03
|
2000-2009
|
Perú
|
5.04
|
5.21
|
2.95
|
0.62
|
9.13
|
2010-2022
|
Chile
|
3.11
|
2.15
|
4.03
|
-6.14
|
11.33
|
2010-2022
|
Colombia
|
3.70
|
3.91
|
4.14
|
-7.19
|
10.80
|
2010-2022
|
Ecuador
|
3.32
|
4.23
|
5.05
|
-9.25
|
9.82
|
2010-2022
|
México
|
1.88
|
2.50
|
3.55
|
-8.62
|
5.74
|
2010-2022
|
Perú
|
3.86
|
3.95
|
5.42
|
-10.93
|
13.36
|
NA
|
Chile
|
3.20
|
3.20
|
NA
|
3.20
|
3.20
|
NA
|
Colombia
|
2.40
|
2.40
|
NA
|
2.40
|
2.40
|
NA
|
Ecuador
|
0.60
|
0.60
|
NA
|
0.60
|
0.60
|
NA
|
México
|
0.20
|
0.20
|
NA
|
0.20
|
0.20
|
NA
|
Perú
|
-0.60
|
-0.60
|
NA
|
-0.60
|
-0.60
|
## ============================================================================
## PUNTO c - ANÁLISIS POR PERÍODOS
## ============================================================================
## CHILE: 1980s: Volátil (3.57%, sd=6.51). 1990s: Mejor desempeño (6.10%, sd=3.20).
## 2000s: Desaceleración (3.87%, sd=2.04). 2010s: Crecimiento moderado (3.56%, sd=3.86).
## COLOMBIA: 1980s: Estable (3.40%, sd=1.54). 1990s: Moderado (2.86%, sd=3.00).
## 2000s: Mejora (4.05%, sd=1.87). 2010s: Solidez (3.62%, sd=3.19).
## ECUADOR: 1980s: Moderado (2.63%, sd=2.28). 1990s: Similar (2.32%, sd=2.68).
## 2000s: Mejora significativa (4.49%, sd=2.15). 2010s: Desaceleración (2.82%, sd=4.24).
## MÉXICO: 1980s: Volátil (2.21%, sd=4.61). 1990s: Recuperación (3.65%, sd=3.68).
## 2000s: Estancamiento (1.97%, sd=2.89). 2010s: Modesto (1.18%, sd=3.86).
## PERÚ: 1980s: Crisis severa (0.39%, sd=8.26). 1990s: Recuperación (3.20%, sd=4.87).
## 2000s: Boom económico (5.42%, sd=2.31). 2010s: Consolidación (3.68%, sd=5.31).
### Punto d
# Preparar datos en formato largo
datos_largo <- datos %>%
pivot_longer(cols = -Año, names_to = "País", values_to = "Crecimiento")
# Gráfico comparativo de todas las series
ggplot(datos_largo, aes(x = Año, y = Crecimiento, color = País)) +
geom_line(linewidth = 1) +
labs(
title = "Comparación de Tasas de Crecimiento del PIB (1980-2022)",
x = "Año",
y = "Crecimiento Anual (%)",
caption = "Fuente: World Development Indicators - Banco Mundial",
color = "País"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.position = "bottom"
) +
scale_x_continuous(breaks = seq(1980, 2022, 5)) +
scale_color_manual(values = c("steelblue", "darkgreen", "goldenrod3", "brown", "darkred"))

## ============================================================================
## PUNTO d - ANÁLISIS DE ESTACIONARIEDAD
## ============================================================================
## CHILE: No estacionaria - media variable entre períodos y varianza heterogénea
## (sd desde 2.04 hasta 6.51).
## COLOMBIA: Aparentemente estacionaria en media pero varianza no constante
## (sd desde 1.54 hasta 3.19).
## ECUADOR: No estacionaria - tendencia alcista en 2000s y varianza creciente en 2010s.
## MÉXICO: Claramente no estacionaria - media descendente y volatilidad cambiante.
## PERÚ: Fuertemente no estacionaria - mejora estructural en media y volatilidad decreciente.
## ============================================================================
## ============================================================================
## Ejercicio 3: ANÁLISIS CURVA DE PHILLIPS
## ============================================================================
# Cargar librerías
library(readxl)
library(ggplot2)
library(dplyr)
# Cargar base de datos
X2_curva_phillips <- read_excel("2. curva_phillips.xlsx")
head(X2_curva_phillips)
## # A tibble: 6 × 3
## year inf unem
## <dbl> <dbl> <dbl>
## 1 1960 1.72 5.5
## 2 1961 1.01 6.7
## 3 1962 1.00 5.5
## 4 1963 1.32 5.7
## 5 1964 1.31 5.2
## 6 1965 1.61 4.5
phillips <- X2_curva_phillips
# Ver estructura
head(phillips)
## # A tibble: 6 × 3
## year inf unem
## <dbl> <dbl> <dbl>
## 1 1960 1.72 5.5
## 2 1961 1.01 6.7
## 3 1962 1.00 5.5
## 4 1963 1.32 5.7
## 5 1964 1.31 5.2
## 6 1965 1.61 4.5
str(phillips)
## tibble [47 × 3] (S3: tbl_df/tbl/data.frame)
## $ year: num [1:47] 1960 1961 1962 1963 1964 ...
## $ inf : num [1:47] 1.72 1.01 1 1.32 1.31 ...
## $ unem: num [1:47] 5.5 6.7 5.5 5.7 5.2 4.5 3.8 3.8 3.6 3.5 ...
## ============================================================================
## a) EXPRESAR m_{t+h} EN TÉRMINOS DE m_t Y LA SECUENCIA
## ============================================================================
# Ajustar modelo AR(1) para la inflación
modelo_ar1 <- lm(inf ~ lag(inf), data = phillips)
summary(modelo_ar1)
##
## Call:
## lm(formula = inf ~ lag(inf), data = phillips)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.1080 -0.9999 -0.2117 0.7164 5.1322
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.79362 0.43199 1.837 0.073 .
## lag(inf) 0.82157 0.08402 9.778 1.33e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.637 on 44 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.6848, Adjusted R-squared: 0.6777
## F-statistic: 95.6 on 1 and 44 DF, p-value: 1.33e-12
# Extraer coeficientes
a <- coef(modelo_ar1)[1] # Intercepto
rho <- coef(modelo_ar1)[2] # Coeficiente AR(1)
cat("Parámetros del modelo AR(1):\n")
## Parámetros del modelo AR(1):
cat("a =", round(a, 4), "\n")
## a = 0.7936
cat("ρ =", round(rho, 4), "\n")
## ρ = 0.8216
## ============================================================================
## b) PRONÓSTICO DE LA INFLACIÓN h PERIODOS ADELANTE
## ============================================================================
# Función para pronosticar
pronostico_inflacion <- function(a, rho, inf_t, h) {
pronostico <- a * (1 - rho^h) / (1 - rho) + rho^h * inf_t
return(pronostico)
}
# Último valor observado de inflación (2006)
ultima_inflacion <- phillips$inf[nrow(phillips)]
cat("\nÚltima inflación observada (2006):", round(ultima_inflacion, 4), "%\n")
##
## Última inflación observada (2006): 3.226 %
# Pronóstico para 1, 2 y 3 años adelante
pronostico_1 <- pronostico_inflacion(a, rho, ultima_inflacion, 1)
pronostico_2 <- pronostico_inflacion(a, rho, ultima_inflacion, 2)
pronostico_3 <- pronostico_inflacion(a, rho, ultima_inflacion, 3)
cat("Pronóstico para 2007:", round(pronostico_1, 4), "%\n")
## Pronóstico para 2007: 3.444 %
cat("Pronóstico para 2008:", round(pronostico_2, 4), "%\n")
## Pronóstico para 2008: 3.6231 %
cat("Pronóstico para 2009:", round(pronostico_3, 4), "%\n")
## Pronóstico para 2009: 3.7703 %
## ============================================================================
## SIMULACIÓN Y VALIDACIÓN
## ============================================================================
# Crear serie de pronósticos dentro de la muestra
phillips <- phillips %>%
mutate(inf_pronostico = a + rho * lag(inf))
# Gráfico de pronósticos vs real
ggplot(phillips, aes(x = year)) +
geom_line(aes(y = inf, color = "Inflación Real"), linewidth = 1) +
geom_line(aes(y = inf_pronostico, color = "Inflación Pronosticada"), linewidth = 1, linetype = "dashed") +
labs(title = "Proceso AR(1) para Inflación - Pronóstico vs Real",
x = "Año", y = "Inflación (%)",
color = "Serie") +
theme_minimal() +
scale_color_manual(values = c("Inflación Real" = "blue",
"Inflación Pronosticada" = "red"))
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).

# Calcular error de pronóstico
phillips <- phillips %>%
mutate(error_pronostico = inf - inf_pronostico)
# Estadísticas del error
cat("\nEstadísticas del error de pronóstico:\n")
##
## Estadísticas del error de pronóstico:
cat("Media del error:", round(mean(phillips$error_pronostico, na.rm = TRUE), 4), "\n")
## Media del error: 0
cat("RMSE:", round(sqrt(mean(phillips$error_pronostico^2, na.rm = TRUE)), 4), "\n")
## RMSE: 1.6009
## ============================================================================
## INTERPRETACIÓN ECONÓMICA
## ============================================================================
cat("\nANÁLISIS ECONÓMICO DEL MODELO AR(1) PARA LA INFLACIÓN:\n\n")
##
## ANÁLISIS ECONÓMICO DEL MODELO AR(1) PARA LA INFLACIÓN:
cat("1. PERSISTENCIA INFLACIONARIA:\n")
## 1. PERSISTENCIA INFLACIONARIA:
cat(" El coeficiente ρ =", round(rho, 4), "indica una alta persistencia en la inflación.\n")
## El coeficiente ρ = 0.8216 indica una alta persistencia en la inflación.
cat(" Esto significa que un shock inflacionario en el período t tiene efectos prolongados\n")
## Esto significa que un shock inflacionario en el período t tiene efectos prolongados
cat(" que se transmiten a los períodos futuros. Un valor cercano a 1 sugiere que la\n")
## que se transmiten a los períodos futuros. Un valor cercano a 1 sugiere que la
cat(" inflación tiene una componente inercial importante, característica de economías\n")
## inflación tiene una componente inercial importante, característica de economías
cat(" con indexación salarial o expectativas adaptativas.\n\n")
## con indexación salarial o expectativas adaptativas.
cat("2. VALOR DE ESTADO ESTACIONARIO:\n")
## 2. VALOR DE ESTADO ESTACIONARIO:
cat(" La inflación de equilibrio de largo plazo es:", round(a/(1-rho), 4), "%\n")
## La inflación de equilibrio de largo plazo es: 4.4479 %
cat(" Este valor representa la tasa around which la inflación fluctuará en ausencia\n")
## Este valor representa la tasa around which la inflación fluctuará en ausencia
cat(" de shocks externos. Es consistente con la meta de inflación que el banco central\n")
## de shocks externos. Es consistente con la meta de inflación que el banco central
cat(" podría tener como objetivo en el mediano plazo.\n\n")
## podría tener como objetivo en el mediano plazo.
cat("3. IMPLICACIONES DE POLÍTICA MONETARIA:\n")
## 3. IMPLICACIONES DE POLÍTICA MONETARIA:
cat(" La alta persistencia (ρ =", round(rho, 4), ") implica que la política monetaria\n")
## La alta persistencia (ρ = 0.8216 ) implica que la política monetaria
cat(" debe ser anticipatoria y contundente. Los bancos centrales necesitan actuar\n")
## debe ser anticipatoria y contundente. Los bancos centrales necesitan actuar
cat(" con anticipación porque los shocks inflacionarios tienen efectos prolongados.\n")
## con anticipación porque los shocks inflacionarios tienen efectos prolongados.
cat(" La credibilidad del banco central es crucial para romper la inercia inflacionaria.\n\n")
## La credibilidad del banco central es crucial para romper la inercia inflacionaria.
cat("4. EXPECTATIVAS Y MECANISMOS DE PROPAGACIÓN:\n")
## 4. EXPECTATIVAS Y MECANISMOS DE PROPAGACIÓN:
cat(" El proceso AR(1) captura cómo los agentes forman expectativas adaptativas.\n")
## El proceso AR(1) captura cómo los agentes forman expectativas adaptativas.
cat(" La inflación pasada influye directamente en la inflación corriente, lo que\n")
## La inflación pasada influye directamente en la inflación corriente, lo que
cat(" sugiere que los agentes utilizan información rezagada para formar expectativas.\n")
## sugiere que los agentes utilizan información rezagada para formar expectativas.
cat(" Esto resalta la importancia de anclar las expectativas inflacionarias.\n\n")
## Esto resalta la importancia de anclar las expectativas inflacionarias.
cat("5. PRONÓSTICO Y PLANIFICACIÓN:\n")
## 5. PRONÓSTICO Y PLANIFICACIÓN:
cat(" Para 2007 se pronostica una inflación de", round(pronostico_1, 4), "%\n")
## Para 2007 se pronostica una inflación de 3.444 %
cat(" Para 2008:", round(pronostico_2, 4), "% y para 2009:", round(pronostico_3, 4), "%\n")
## Para 2008: 3.6231 % y para 2009: 3.7703 %
cat(" Estos pronósticos convergen gradualmente al valor de estado estacionario de",
round(a/(1-rho), 4), "%\n")
## Estos pronósticos convergen gradualmente al valor de estado estacionario de 4.4479 %
cat(" La convergencia es lenta debido al alto valor de ρ, indicando que la inflación\n")
## La convergencia es lenta debido al alto valor de ρ, indicando que la inflación
cat(" toma tiempo en ajustarse a su nivel de equilibrio después de un shock.\n\n")
## toma tiempo en ajustarse a su nivel de equilibrio después de un shock.
cat("6. IMPLICACIONES MACROECONÓMICAS:\n")
## 6. IMPLICACIONES MACROECONÓMICAS:
cat(" La persistencia inflacionaria puede afectar la efectividad de la política monetaria.\n")
## La persistencia inflacionaria puede afectar la efectividad de la política monetaria.
cat(" Los contratos indexados y las expectativas adaptativas crean un círculo vicioso\n")
## Los contratos indexados y las expectativas adaptativas crean un círculo vicioso
cat(" donde la inflación pasada alimenta la inflación futura, haciendo más costoso\n")
## donde la inflación pasada alimenta la inflación futura, haciendo más costoso
cat(" el proceso de desinflación para las autoridades monetarias.\n\n")
## el proceso de desinflación para las autoridades monetarias.
cat("7. COMPARACIÓN INTERNACIONAL:\n")
## 7. COMPARACIÓN INTERNACIONAL:
cat(" Un ρ alto es típico de economías con historial inflacionario y baja credibilidad\n")
## Un ρ alto es típico de economías con historial inflacionario y baja credibilidad
cat(" en la política monetaria. Economías con metas de inflación creíbles suelen\n")
## en la política monetaria. Economías con metas de inflación creíbles suelen
cat(" mostrar menor persistencia en sus procesos inflacionarios.\n")
## mostrar menor persistencia en sus procesos inflacionarios.
## ============================================================================
## Ejercicio 4
## ============================================================================
####################### sd = 1
# Generar ruido blanco gaussiano (1)
set.seed(123)
ruido_blanco <- rnorm(100, mean = 0, sd = 1)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: 0.09040591
cat("Varianza:", varianza, "\n")
## Varianza: 0.8332328
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.02559634 -0.1126536 0.1489898 -0.09427814 -0.01325316 0.02944197 0.01314468 -0.02524275 -0.07647498 -0.0274978
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
# Generar ruido blanco gaussiano (2)
set.seed(123) # Establecer una semilla para reproducibilidad
ruido_blanco <- rnorm(10000, mean = 0, sd = 1)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: -0.002371702
cat("Varianza:", varianza, "\n")
## Varianza: 0.9972751
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.01587564 0.003126997 -0.001541145 0.001144628 0.009316437 -0.005766607 -0.00735231 -0.01086025 -0.002198213 0.001520824
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
# Generar ruido blanco gaussiano (3)
set.seed(123) # Establecer una semilla para reproducibilidad
ruido_blanco <- rnorm(1000000, mean = 0, sd = 1)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: -0.000521437
cat("Varianza:", varianza, "\n")
## Varianza: 0.9998541
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.0001212455 0.0006311518 -0.001195247 0.0008106778 -0.001871102 -0.0001876094 -0.000154655 -0.001646717 -0.001338066 -0.0002291128
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
######################### sd = 2
# Generar ruido blanco gaussiano (4)
set.seed(123)
ruido_blanco <- rnorm(100, mean = 0, sd = 2)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: 0.1808118
cat("Varianza:", varianza, "\n")
## Varianza: 3.332931
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.02559634 -0.1126536 0.1489898 -0.09427814 -0.01325316 0.02944197 0.01314468 -0.02524275 -0.07647498 -0.0274978
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
# Generar ruido blanco gaussiano (5)
set.seed(123) # Establecer una semilla para reproducibilidad
ruido_blanco <- rnorm(10000, mean = 0, sd = 2)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: -0.004743404
cat("Varianza:", varianza, "\n")
## Varianza: 3.989101
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.01587564 0.003126997 -0.001541145 0.001144628 0.009316437 -0.005766607 -0.00735231 -0.01086025 -0.002198213 0.001520824
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
# Generar ruido blanco gaussiano (6)
set.seed(123) # Establecer una semilla para reproducibilidad
ruido_blanco <- rnorm(1000000, mean = 0, sd = 2)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: -0.001042874
cat("Varianza:", varianza, "\n")
## Varianza: 3.999417
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.0001212455 0.0006311518 -0.001195247 0.0008106778 -0.001871102 -0.0001876094 -0.000154655 -0.001646717 -0.001338066 -0.0002291128
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
######################## sd = 3
# Generar ruido blanco gaussiano (7)
set.seed(123)
ruido_blanco <- rnorm(100, mean = 0, sd = 3)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: 0.2712177
cat("Varianza:", varianza, "\n")
## Varianza: 7.499095
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.02559634 -0.1126536 0.1489898 -0.09427814 -0.01325316 0.02944197 0.01314468 -0.02524275 -0.07647498 -0.0274978
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
# Generar ruido blanco gaussiano (8)
set.seed(123) # Establecer una semilla para reproducibilidad
ruido_blanco <- rnorm(10000, mean = 0, sd = 3)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: -0.007115106
cat("Varianza:", varianza, "\n")
## Varianza: 8.975476
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.01587564 0.003126997 -0.001541145 0.001144628 0.009316437 -0.005766607 -0.00735231 -0.01086025 -0.002198213 0.001520824
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
# Generar ruido blanco gaussiano (9)
set.seed(123) # Establecer una semilla para reproducibilidad
ruido_blanco <- rnorm(1000000, mean = 0, sd = 3)
# Calcular media y varianza
media <- mean(ruido_blanco)
varianza <- var(ruido_blanco)
# Calcular el FACS con 10 rezagos
acf_result <- acf(ruido_blanco, lag.max = 10, plot = FALSE)
facs <- acf_result$acf[2:11]
# Calcular el FACP con 10 rezagos
pacf_result <- pacf(ruido_blanco, lag.max = 10, plot = FALSE)
facp <- pacf_result$pacf[2:11]
# Mostrar resultados
cat("Media:", media, "\n")
## Media: -0.001564311
cat("Varianza:", varianza, "\n")
## Varianza: 8.998687
cat("FACS (10 rezagos):", facs, "\n")
## FACS (10 rezagos): -0.0001212455 0.0006311518 -0.001195247 0.0008106778 -0.001871102 -0.0001876094 -0.000154655 -0.001646717 -0.001338066 -0.0002291128
cat("FACP (10 rezagos):", facp, "\n")
## FACP (10 rezagos):
## ============================================================================
## c) COMPARACIÓN DE RESULTADOS - ANÁLSIS
## ============================================================================
## 1. PROPIEDADES DE MEDIA Y VARIANZA:
## ----------------------------------------------------------------------------
## - Media: En todos los casos, la media muestral se aproxima a 0 (valor teórico),
## con mayor precisión en muestras grandes. Para n = 100: 0.09, 0.18, 0.27;
## para n = 10,000: -0.002, -0.005, -0.007; para n = 1,000,000: -0.0005, -0.0010, -0.0016.
## Esto demuestra la ley de grandes números.
## - Varianza: La varianza muestral se aproxima al valor teórico (1²=1, 2²=4, 3²=9),
## con mayor exactitud en muestras grandes. Para n = 100: 0.83, 3.33, 7.50;
## para n = 1,000,000: 0.9999, 3.9994, 8.9987. Las pequeñas desviaciones en n = 100
## se deben al error muestral.
## 2. ANÁLISIS DE LA FUNCIÓN DE AUTOCORRELACIÓN (FACS):
## ----------------------------------------------------------------------------
## - Todos los coeficientes de autocorrelación para rezagos 1-10 son muy cercanos a cero:
## Para n = 100: entre -0.15 y 0.15; para n = 10,000: entre -0.02 y 0.01;
## para n = 1,000,000: entre -0.002 y 0.001.
## - No se observan patrones significativos, confirmando la ausencia de autocorrelación serial.
## - La magnitud de la varianza NO afecta los valores de la FACS (coeficientes idénticos
## para cada tamaño de muestra regardless de σ).
## 3. ANÁLISIS DE LA FUNCIÓN DE AUTOCORRELACIÓN PARCIAL (FACP):
## ----------------------------------------------------------------------------
## - Todos los coeficientes de autocorrelación parcial son cercanos a cero.
## - No hay evidencia de autocorrelación parcial significativa en ningún rezago.
## - Confirma que el proceso no tiene dependencia temporal.
## 4. EFECTO DEL TAMAÑO MUESTRAL:
## ----------------------------------------------------------------------------
## - n = 100: Mayor variabilidad muestral, desviaciones más significativas de valores teóricos.
## - n = 10,000: Mejora notable en precisión de estimaciones.
## - n = 1,000,000: Valores casi idénticos a los teóricos, demostrando consistencia.
## 5. EFECTO DE LA VARIANZA:
## ----------------------------------------------------------------------------
## - El cambio en σ afecta la escala de la serie pero NO sus propiedades de autocorrelación.
## - Todos los procesos muestran FACS y FACP cercanos a 0 regardless de σ.
## - La estructura de correlación es independiente de la varianza.
## 6. IMPLICACIONES ECONOMÉTRICAS:
## ----------------------------------------------------------------------------
## - Los resultados validan que las simulaciones corresponden a verdaderos procesos
## de ruido blanco gaussiano.
## - La ausencia de autocorrelación serial confirma que son procesos bien comportados.
## - Crucial para asegurar que residuales de modelos econométricos sean ruido blanco,
## indicando buena especificación del modelo.
## CONCLUSIÓN:
## ----------------------------------------------------------------------------
## Las simulaciones confirman exitosamente las propiedades teóricas del ruido blanco
## gaussiano: proceso estacionario con media constante, varianza constante y sin
## autocorrelación serial, independientemente de su varianza. La ley de grandes números
## se evidencia mediante la mejora en estimaciones con mayor tamaño muestral. Valida
## el uso de procesos de ruido blanco en modelamiento econométrico como componente
## de error bien comportado.
## ============================================================================