\[ \begin{align}\begin{aligned}\require{color} \newcommand{\alert}[1]{{\color{RedOrange} #1}} \newcommand{\notation}[2]{\underset{\color{MidnightBlue}\text{#2}}{#1}} \newcommand{\simbolo}[2]{\underset{\color{MidnightBlue}#2}{#1}} \newcommand{\notationbrace}[2]{{\underbrace{#1}_{\color{MidnightBlue}\text{#2}}}} \DeclareMathOperator{\dd}{\,d\!} \DeclareMathOperator{\E}{\mathbb{E}{}} \DeclareMathOperator{\Var}{Var{}} \DeclareMathOperator{\Cov}{Cov{}} \DeclareMathOperator{\Lag}{L{}} \DeclareMathOperator*{\argmin}{argmin} \DeclareMathOperator*{\argmax}{argmax} \DeclareMathOperator{\Prob}{\mathbb{P}} \newcommand{\marginal}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\MAT}[1]{\begin{bmatrix} #1 \end{bmatrix}} \newcommand{\mat}[1]{\left[\begin{smallmatrix} #1 \end{smallmatrix}\right]}\\\begin{split}\DeclareMathOperator{\R}{\mathbb{R}} \DeclareMathOperator{\X}{\mathbf{x}} \DeclareMathOperator{\y}{\mathbf{y}} \DeclareMathOperator{\h}{\mathbf{h}} \newcommand{\stackEq}[1]{\MAT{#1_1 \\ #1_2 \\ \vdots \\ #1_M}} \newcommand{\e}{\mathbf{\epsilon}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\estimator}[2]{{\hat{#1}^{\text{#2}}}} \newcommand{\estimate}[2]{\underset{(#2)}{#1}} \DeclareMathOperator{\plim}{plim} \newcommand{\PLIM}[2]{#1\xrightarrow{p} #2}\end{split}\end{aligned}\end{align} \]
from bccr import SW
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn')
import pandas as pd

1.2. Representación gráfica de series de tiempo#

Nivel de la serie#

Antes de modelar una serie de tiempo, es útil representarla con un gráfico para detectar algunas de sus propiedades.

En este caso: el PIB

  • muestra una tendencia positiva

  • tiene variaciones estacionarias

En lo que sigue, nos referimos a esta serie en nivel como \(y_t\).

def figura(datos, titulo, y):
    fig, ax = plt.subplots(figsize=(12,5))
    ax = datos.plot(ax=ax, legend=None)
    ax.set(title=titulo, xlabel=" ", ylabel=y)
    return fig

pib = SW(PIB=33438)
pib /=1e6

figura(pib,
       'Producto Interno Bruto de Costa Rica',
       'billones de colones constantes');
../../_images/02-graficos_3_0.png

Primera diferencia de la serie#

\[\begin{equation*} \Delta y_t \equiv y_t - y_{t-1} \end{equation*}\]

Esta transformación

  • elimina la tendencia de la serie,

  • mantiene las oscilaciones estacionales.

figura(pib.diff(1),
       'Cambio trimestral en el PIB de Costa Rica',
       'billones de colones constantes');
../../_images/02-graficos_5_0.png

Tasa de crecimiento de la serie#

\[\begin{equation*} \Delta\% y_t \equiv \frac{y_t - y_{t-1}}{y_{t-1}} \times 100 \end{equation*}\]
  • Elimina tendencia, mantiene estacionalidad.

  • Limitación: asimetría con respecto a cambios positivos y negativos: Subir de 100 a 125 (aumento de 25%), bajar de 125 a 100 (caída de “solo” 20%).

figura(100*pib.pct_change(1),
       'Tasa de crecimiento trimestral del PIB de Costa Rica',
       'por ciento');
../../_images/02-graficos_7_0.png

Tasa “continua” de crecimiento de la serie#

\[\begin{equation*} \Delta\% y_t \approx \left(\ln y_t - \ln y_{t-1}\right)\times 100 \end{equation*}\]
  • Similar a la anterior porque \(\ln(1+x)\approx x\) si \(x\) es “pequeño”

  • Ventaja: simetría con respecto a cambios positivos y negativos

figura(100*np.log(pib).diff(),
       'Tasa de crecimiento trimestral del PIB de Costa Rica',
       'por ciento');
../../_images/02-graficos_9_0.png

Diferencia interanual de la serie#

\[\begin{equation*} \Delta_4 y_t \equiv y_t - y_{t-4} \end{equation*}\]
  • Elimina tanto la tendencia como el componente estacional

  • Nótese la fuerte disminución del PIB durante la crisis de 2008.

figura(pib.diff(4),
       'Cambio interanual en el PIB de Costa Rica',
       'billones de colones constantes');
../../_images/02-graficos_11_0.png

Tasa de crecimiento interanual#

\[\begin{equation*} \Delta_4\% y_t \approx \left(\ln y_t - \ln y_{t-4}\right)\times 100 \end{equation*}\]
  • Equivalente a la suma de las tasas de crecimiento de los cuatro trimestres comprendidos en el año:

\[\begin{align*} \Delta_4\% y_t &\approx \left(\ln y_t - \ln y_{t-4}\right)\times 100 \\ &= \left(\ln y_{t} - \ln y_{t-1} + \ln y_{t-1} - \ln y_{t-2} + \ln y_{t-2} - \ln y_{t-3} + \ln y_{t-3} - \ln y_{t-4}\right)\times 100 \\ &= \Delta\% y_{t} + \Delta\% y_{t-1} + \Delta\% y_{t-2} + \Delta\% y_{t-3} \end{align*}\]
figura(100*np.log(pib).diff(4),
       'Tasa de crecimiento interanual del PIB de Costa Rica',
       'por ciento');
../../_images/02-graficos_13_0.png

Serie suavizada por media móvil#

\[\begin{equation*} y^s_t \equiv \tfrac{1}{4}\left(y_t + y_{t-1} + y_{t-2} + y_{t-3}\right) \end{equation*}\]
  • Elimina el componente estacional, pero manteniendo la tendencia

  • Se observa un cambio estructural en 2008-2009.

pib2 = pd.concat([pib, pib.rolling(4).mean()], axis=1)
pib2.columns = ['Serie original', 'Serie suavizada']

figura(pib2,
    'Producto Interno Bruto de Costa Rica',
    'billones de colones constantes');
../../_images/02-graficos_15_0.png

Ejemplo:   Transformación de datos
Las transformaciones ilustradas en las figuras pueden ser calculadas con Stata y con Python:

Operacion

Stata

Python

Serie original

pib

pib

Primera diferencia

D.pib

pib.diff()

Tasa de crecimiento

D.pib / L.pib

pib.pct_change(1)

Tasa de variación continua

gen l=log(pib)

np.log(pib).diff()

D.lpib

Diferencia interanual

S4.pib

pib.diff(4)

Tasa de crecimiento interanual

S4.lpib

np.log(pib).diff(4)

Suavizada por media móvil

tssmooth ma y = pib, window(3 1 0)

pib.rolling(4).mean()