Menu iconMenu icon
Fundamentos de Ingeniería de Datos

Capítulo 9: Datos de series temporales: consideraciones especiales

9.2 Creación de características de desfase y de ventanas móviles

Al analizar datos de series temporales, la incorporación de características de desfase y características de ventanas móviles puede mejorar significativamente la capacidad predictiva de un modelo. Las características de desfase permiten que los modelos utilicen observaciones históricas para hacer pronósticos más precisos, mientras que las características de ventanas móviles proporcionan información invaluable sobre las tendencias y fluctuaciones en intervalos de tiempo específicos.

Estas características sofisticadas son esenciales para descifrar las complejas relaciones entre valores pasados y futuros, especialmente en escenarios donde patrones complejos o variaciones estacionales tienen una gran influencia en los datos.

En esta sección, exploraremos en profundidad las metodologías para crear y utilizar eficazmente características de desfase y de ventanas móviles. Presentaremos una serie de ejemplos prácticos que demuestran su aplicación en escenarios del mundo real, resaltando el impacto transformador que estas técnicas pueden tener en el análisis y la precisión de la previsión de series temporales.

9.2.1 Características de desfase

Una característica de desfase es una técnica poderosa en el análisis de series temporales que implica desplazar los datos originales en un intervalo de tiempo específico. Este proceso introduce valores previos como nuevas características en el conjunto de datos, permitiendo que el modelo aproveche la información histórica para hacer predicciones más precisas. Al incorporar características de desfase, los modelos pueden capturar dependencias y patrones temporales que pueden no ser evidentes en el paso temporal actual.

El concepto de características de desfase es particularmente valioso en escenarios donde los eventos pasados tienen un impacto significativo en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones del día anterior a menudo influyen en los patrones de negociación de hoy. De manera similar, en la predicción meteorológica, los datos de temperatura y precipitación de días anteriores pueden ser cruciales para predecir condiciones futuras.

Al crear características de desfase, es importante considerar el desfase de tiempo apropiado. Este puede variar dependiendo de la naturaleza de los datos y el problema específico a resolver. Por ejemplo, los datos de ventas diarias pueden beneficiarse de desfases de 1, 7 y 30 días para capturar patrones diarios, semanales y mensuales. Al experimentar con diferentes intervalos de desfase, los científicos de datos pueden identificar los puntos de datos históricos más informativos para sus modelos predictivos.

Las características de desfase complementan otras técnicas de series temporales, como las características de ventanas móviles y la descomposición estacional, proporcionando una visión integral de los patrones y tendencias temporales. Cuando se usan de manera juiciosa, pueden mejorar significativamente la capacidad del modelo para discernir relaciones complejas en datos dependientes del tiempo, llevando a predicciones más robustas y precisas en varios dominios.

9.2.2 Creación de características de desfase con Pandas

Profundicemos en el concepto de características de desfase con un ejemplo práctico. Consideremos un conjunto de datos que contiene cifras de ventas diarias de una tienda minorista. Nuestro objetivo es prever las ventas de hoy basándonos en los datos de ventas de los tres días anteriores. Para lograr esto, crearemos características de desfase que capturen esta información histórica:

  • Ventas Desfase-1: Representa las ventas de ayer, proporcionando contexto histórico inmediato.
  • Ventas Desfase-2: Captura las ventas de hace dos días, ofreciendo datos un poco más antiguos pero aún relevantes.
  • Ventas Desfase-3: Incorpora los datos de ventas de hace tres días, ampliando la ventana histórica.

Al incorporar estas características de desfase, habilitamos que nuestro modelo predictivo discierna patrones y relaciones entre cifras de ventas de días consecutivos. Este enfoque es especialmente valioso en escenarios donde el historial reciente de ventas influye significativamente en el desempeño futuro, como en el comercio minorista, donde factores como promociones o tendencias estacionales pueden crear patrones a corto plazo.

Además, usar múltiples períodos de desfase permite que el modelo capture diferentes dinámicas temporales. Por ejemplo:

  • El desfase de 1 día puede capturar fluctuaciones diarias y tendencias inmediatas.
  • El desfase de 2 días podría ayudar a identificar patrones que abarcan fines de semana o promociones cortas.
  • El desfase de 3 días podría revelar tendencias de mayor duración o los efectos de eventos de mitad de semana en las ventas del fin de semana.

Este enfoque de múltiples desfases proporciona un conjunto de características más rico para el modelo, mejorando potencialmente su capacidad para hacer predicciones precisas al considerar un contexto histórico más completo.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Sample sales data
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175,
                  190, 200, 185, 210, 205, 220, 230, 225, 250, 245,
                  260, 270, 255, 280, 275, 290, 300, 295, 320, 315]}
df = pd.DataFrame(data)

# Create lagged features for the previous 1, 2, and 3 days
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag3'] = df['Sales'].shift(3)

# Create rolling features
df['Rolling_Mean_7'] = df['Sales'].rolling(window=7).mean()
df['Rolling_Std_7'] = df['Sales'].rolling(window=7).std()

# Calculate percentage change
df['Pct_Change'] = df['Sales'].pct_change()

# Print the first 10 rows of the dataframe
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df['Date'], df['Sales'], label='Sales')
plt.plot(df['Date'], df['Rolling_Mean_7'], label='7-day Rolling Mean')
plt.fill_between(df['Date'], 
                 df['Rolling_Mean_7'] - df['Rolling_Std_7'],
                 df['Rolling_Mean_7'] + df['Rolling_Std_7'],
                 alpha=0.2, label='7-day Rolling Std Dev')
plt.title('Sales Data with Rolling Mean and Standard Deviation')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# Correlation heatmap
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag2', 'Sales_Lag3', 'Rolling_Mean_7']].corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1, center=0)
plt.title('Correlation Heatmap of Sales and Lagged/Rolling Features')
plt.tight_layout()
plt.show()

# Basic statistics
print("\nBasic Statistics:")
print(df['Sales'].describe())

# Autocorrelation
from pandas.plotting import autocorrelation_plot
plt.figure(figsize=(12, 6))
autocorrelation_plot(df['Sales'])
plt.title('Autocorrelation Plot of Sales')
plt.tight_layout()
plt.show()

Explicación del Desglose de Código:

  1. Preparación de Datos e Ingeniería de Características:
    • Importamos las bibliotecas necesarias: pandas para la manipulación de datos, matplotlib para gráficos básicos y seaborn para visualizaciones avanzadas.
    • Se crea un conjunto de datos de muestra con datos de ventas diarias durante 30 días utilizando la función date_range de pandas.
    • Creamos características rezagadas para 1, 2 y 3 días usando el método shift().
    • Las características de promedio móvil (media y desviación estándar de 7 días) se crean usando el método rolling().
    • Se calcula el cambio porcentual con el método pct_change() para mostrar la tasa de crecimiento diario.
  2. Visualización de Datos:
    • Creamos un gráfico de líneas que muestra los datos de ventas originales, la media móvil de 7 días y el rango de desviación estándar móvil.
    • Esta visualización ayuda a identificar tendencias y volatilidad en los datos de ventas a lo largo del tiempo.
  3. Análisis de Correlación:
    • Se crea un mapa de calor de correlación utilizando seaborn para mostrar las relaciones entre las ventas y las características creadas.
    • Esto ayuda a identificar qué características rezagadas o móviles tienen la correlación más fuerte con las ventas actuales.
  4. Análisis Estadístico:
    • Se imprimen estadísticas descriptivas básicas de los datos de ventas usando el método describe().
    • Se genera un gráfico de autocorrelación para mostrar cómo las ventas se correlacionan con sus propios valores rezagados a lo largo del tiempo.

Este ejemplo integral demuestra varias técnicas para trabajar con datos de series temporales, incluyendo la ingeniería de características, visualización y análisis estadístico. Proporciona información sobre tendencias, patrones y relaciones dentro de los datos de ventas, lo cual puede ser valioso para la previsión y la toma de decisiones en un contexto empresarial.

9.2.3 Uso de Características Rezagadas para Modelado

Las características rezagadas son especialmente valiosas en el análisis de series temporales, especialmente al trabajar con datos que muestran una fuerte autocorrelación. Este fenómeno ocurre cuando los valores pasados tienen una influencia significativa en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones a menudo demuestran esta característica, donde el precio de cierre de ayer sirve como un fuerte indicador para el precio de apertura de hoy. Esto convierte a las características rezagadas en una herramienta esencial para analistas y científicos de datos que trabajan en finanzas, economía y campos relacionados.

El poder de las características rezagadas va más allá de las simples correlaciones día a día. En algunos casos, pueden emerger patrones en intervalos más largos, como ciclos semanales o mensuales. Por ejemplo, los datos de ventas minoristas pueden mostrar correlaciones fuertes con las cifras de ventas del mismo día de la semana anterior, o incluso del mismo mes del año anterior. Al incorporar estas características rezagadas, los modelos pueden captar dependencias temporales complejas que de otro modo podrían pasar desapercibidas.

Consejo Clave: Al implementar características rezagadas, es crucial considerar cuidadosamente el intervalo de retraso. El período de retraso óptimo puede variar significativamente dependiendo de la naturaleza de los datos y los patrones específicos que se desean capturar. Un retraso demasiado corto puede no proporcionar información significativa, introduciendo potencialmente ruido en lugar de señal en el modelo. Por el contrario, un retraso demasiado largo puede perder tendencias recientes importantes o cambios en el comportamiento de los datos.

Para encontrar los intervalos de retraso más efectivos, se recomienda emplear un enfoque sistemático:

  • Aprovechar el conocimiento del dominio: Comienza con tu experiencia específica del sector. Entender los ritmos y ciclos inherentes a tu campo puede proporcionar información valiosa sobre las escalas de tiempo potencialmente relevantes.
  • Realizar análisis de autocorrelación: Utiliza herramientas estadísticas como gráficos de autocorrelación y funciones de autocorrelación parcial (PACF) para identificar períodos de retraso significativos.
  • Implementar experimentación iterativa: Adopta un enfoque metódico para probar diferentes intervalos de retraso y combinaciones. Este proceso implica crear diversas características rezagadas, incorporarlas en tu modelo y evaluar sistemáticamente su impacto en los resultados.
  • Incorporar múltiples escalas de retraso: En lugar de depender de un solo período de retraso, considera usar una combinación de retrasos a corto y largo plazo para obtener una visión más completa de la dinámica temporal.

Siguiendo este enfoque integral, puedes desarrollar un conjunto robusto de características rezagadas que capturan el espectro completo de dependencias temporales en tus datos, mejorando en última instancia las capacidades predictivas de tu modelo.

Al seleccionar y ajustar cuidadosamente tus características rezagadas, puedes mejorar significativamente la capacidad de tu modelo para captar patrones temporales y realizar predicciones precisas en el análisis de series temporales.

9.2.4 Características de Ventana Móvil

Mientras que las características rezagadas se enfocan en valores específicos del pasado, las características de ventana móvil resumen los datos en una ventana en movimiento, proporcionando una visión más integral del comportamiento de los datos. Estas características son instrumentales para capturar tendencias a largo plazo y patrones de volatilidad que podrían pasar desapercibidos al examinar puntos de datos individuales. Al agregar información en un marco de tiempo específico, las características de ventana móvil ofrecen una representación suavizada de los datos, ayudando a filtrar el ruido y resaltar las tendencias subyacentes.

Las características de ventana móvil son particularmente valiosas en el análisis de series temporales por varias razones:

  • Identificación de Tendencias: Las características de ventana móvil son excelentes para revelar patrones a largo plazo que podrían estar ocultos en los datos sin procesar. Al agregar información en el tiempo, pueden descubrir cambios graduales o movimientos sostenidos en los datos. Esta capacidad es invaluable en varios dominios:
    • En análisis financiero, las características de ventana móvil pueden resaltar tendencias de mercado, ayudando a los inversionistas a tomar decisiones informadas sobre la asignación de activos y la gestión de riesgos.
    • Para la previsión meteorológica, pueden revelar patrones climáticos en periodos extendidos, ayudando a predecir fenómenos meteorológicos a largo plazo como eventos de El Niño o La Niña.
    • En estudios económicos, las características de ventana móvil pueden iluminar tendencias macroeconómicas, como cambios en las tasas de crecimiento del PIB o patrones de inflación, que son cruciales para la toma de decisiones políticas y la planificación estratégica.
  • Evaluación de Volatilidad: Calculando la variabilidad dentro de una ventana en movimiento, las características de ventana móvil ofrecen una vista dinámica de la estabilidad de los datos. Esto es particularmente útil en:
    • Evaluación de riesgos financieros, donde entender períodos de turbulencia en el mercado es crucial para la gestión de carteras y la fijación de precios de opciones.
    • Análisis de sistemas complejos, como en estudios ecológicos, donde las fluctuaciones en la dinámica poblacional pueden indicar la salud del ecosistema o cambios inminentes.
    • Análisis en el sector energético, donde la volatilidad en la generación de energía renovable (por ejemplo, eólica o solar) afecta la estabilidad de la red y los precios de la energía.
  • Detección de Estacionalidad: Cuando se aplican estratégicamente, las características de ventana móvil pueden descubrir patrones recurrentes en los datos:
    • En el comercio minorista, pueden ayudar a identificar ciclos de ventas anuales, permitiendo una mejor gestión de inventarios y estrategias de marketing.
    • Para las industrias turísticas, detectar patrones estacionales de visitantes ayuda en la asignación de recursos y estrategias de precios.
    • En la agricultura, reconocer patrones estacionales de rendimiento de cultivos puede informar decisiones de siembra y cosecha.
  • Reducción de Ruido: Al suavizar las fluctuaciones a corto plazo, las características de ventana móvil actúan como un filtro, separando señales significativas del ruido aleatorio:
    • En el procesamiento de señales, esto puede ayudar a extraer señales de audio claras del ruido de fondo.
    • En investigación médica, puede ayudar a identificar tendencias significativas en los datos de pacientes entre variaciones diarias.
    • Para la monitorización ambiental, puede ayudar a distinguir entre la variabilidad natural y los cambios significativos en los niveles de contaminación o métricas de biodiversidad.

Las estadísticas móviles comunes incluyen:

  • Media Móvil (Moving Average): Este indicador calcula el promedio en una ventana específica, suavizando las fluctuaciones a corto plazo y resaltando tendencias a largo plazo. Se usa ampliamente en el análisis técnico de mercados financieros y en modelos de pronóstico. Por ejemplo, en el análisis del mercado de valores, una media móvil de 50 o 200 días puede ayudar a los inversores a identificar tendencias de precios a largo plazo y posibles niveles de soporte o resistencia.
  • Desviación Estándar Móvil: Captura la volatilidad o variabilidad dentro de la ventana, proporcionando una medida de cuán dispersos están los puntos de datos. Es particularmente útil en la evaluación de riesgos y en la identificación de períodos de volatilidad en el mercado. En finanzas, una desviación estándar móvil creciente puede señalar una mayor incertidumbre en el mercado, lo que podría influir en las decisiones de inversión o en las estrategias de gestión de riesgos.
  • Suma Móvil: Proporciona valores acumulados en la ventana, lo cual es especialmente útil para métricas que son significativas cuando se agregan, como las ventas totales en un período o la precipitación acumulada. En análisis empresarial, una suma móvil de ventas mensuales puede ayudar a identificar patrones estacionales o a hacer seguimiento del progreso hacia objetivos trimestrales o anuales.
  • Mediana Móvil: Similar a la media móvil, pero menos sensible a valores atípicos, lo que la hace útil para conjuntos de datos con valores extremos o distribuciones sesgadas. Este indicador es particularmente valioso en campos como el de bienes raíces, donde los precios de las propiedades pueden estar influenciados significativamente por algunas transacciones de alto valor. Una mediana móvil puede proporcionar una representación más estable de las tendencias de precios.
  • Máximo y Mínimo Móvil: Estas características capturan los valores más altos y más bajos dentro de cada ventana, útiles para identificar picos y valles en los datos. En la monitorización ambiental, los máximos y mínimos móviles de temperatura pueden ayudar a rastrear eventos climáticos extremos o tendencias climáticas a largo plazo. En finanzas, estos indicadores pueden usarse para implementar estrategias de negociación basadas en rupturas de precios o niveles de soporte/resistencia.
  • Percentiles Móviles: Estos ofrecen información sobre la distribución de datos dentro de cada ventana. Por ejemplo, un percentil móvil del 90% puede ayudar a identificar productos o empleados de alto rendimiento de manera consistente, mientras que un percentil móvil del 10% podría señalar áreas que necesitan mejora.
  • Correlación Móvil: Este indicador mide la relación entre dos variables en una ventana en movimiento. En la gestión de carteras multi-activo, las correlaciones móviles entre diferentes activos pueden informar estrategias de diversificación y evaluación de riesgos.

Al implementar estas características de ventana móvil, es crucial considerar el tamaño de la ventana con cuidado. Las ventanas más pequeñas serán más sensibles a los cambios recientes pero pueden introducir ruido, mientras que las ventanas más grandes proporcionan una vista más suavizada pero pueden retrasarse con respecto a las tendencias recientes. El tamaño óptimo de la ventana depende a menudo de las características específicas de los datos y de los objetivos del análisis. La experimentación y el conocimiento del dominio son clave para encontrar el equilibrio adecuado para cada aplicación.

Creación de Características de Ventana Móvil con Pandas

Continuemos con nuestros datos de ventas y creemos una media móvil de 7 días y una desviación estándar móvil de 7 días. Estas características móviles ayudan a capturar la tendencia general y la variabilidad en los datos, permitiendo que el modelo considere tanto los promedios recientes como los cambios en la volatilidad.

import pandas as pd
import matplotlib.pyplot as plt

# Sample data with a longer time range for rolling calculations
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175, 165, 170, 185, 190, 200,
                  210, 205, 220, 215, 230, 240, 235, 250, 245, 260, 270, 265, 280, 275, 290]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create rolling features
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()
df['RollingMax_7'] = df['Sales'].rolling(window=7).max()
df['RollingMin_7'] = df['Sales'].rolling(window=7).min()

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag7'] = df['Sales'].shift(7)

# Calculate percent change
df['PercentChange'] = df['Sales'].pct_change()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.fill_between(df.index, df['RollingMin_7'], df['RollingMax_7'], alpha=0.2, label='7-day Range')
plt.title('Sales Data with Rolling Statistics')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'RollingMean_7', 'Sales_Lag1', 'Sales_Lag7']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Este ejemplo de código muestra un enfoque integral para analizar datos de series temporales utilizando pandas y matplotlib. Examinemos los componentes clave y su importancia:

  1. Preparación de los datos:
    • Creamos un conjunto de datos más grande con 30 días de datos de ventas para proporcionar un ejemplo más robusto.
    • La columna 'Date' se establece como el índice del DataFrame, lo cual es una buena práctica para datos de series temporales en pandas.
  2. Características de ventana móvil:
    • Media móvil (ventana de 7 días): Suaviza las fluctuaciones a corto plazo y resalta la tendencia general.
    • Desviación estándar móvil (ventana de 7 días): Captura la volatilidad o variabilidad de las ventas durante la última semana.
    • Máximo y mínimo móvil (ventana de 7 días): Proporcionan información sobre el rango de valores de ventas en la última semana.
  3. Características con retraso:
    • Retraso de 1 día: Permite que el modelo considere las ventas de ayer al predecir las de hoy.
    • Retraso de 7 días: Captura el valor de ventas del mismo día de la semana pasada, potencialmente útil para patrones semanales.
  4. Cambio porcentual:
    • Calcula el cambio porcentual de un día a otro en las ventas, útil para identificar cambios repentinos o tendencias.
  5. Visualización de datos:
    • El gráfico muestra los datos de ventas en bruto, la media móvil de 7 días y el rango entre el mínimo y el máximo móvil de 7 días.
    • Esta visualización ayuda a identificar tendencias, estacionalidad y fluctuaciones inusuales en los datos.
  6. Análisis de correlación:
    • La matriz de correlación muestra las relaciones entre los datos de ventas originales y varias características derivadas.
    • Esto puede ayudar a entender qué características podrían ser más predictivas de futuras ventas.

Al combinar estas técnicas, creamos un conjunto rico de características que capturan diferentes aspectos de los datos de series temporales. Este enfoque integral permite una comprensión más profunda de los patrones y relaciones subyacentes en los datos de ventas, lo cual es invaluable para los procesos de pronóstico y toma de decisiones.

Interpretación de características de ventana móvil

Las características de ventana móvil ofrecen valiosas ideas sobre la dinámica temporal de los datos de series temporales. Al agregar información sobre una ventana específica, estas características brindan una visión matizada de tendencias, volatilidad y patrones que podrían estar ocultos en los datos sin procesar. Analicemos dos características clave de ventana móvil:

  • Media móvil: Como se mencionó antes, esta característica actúa como un mecanismo de suavizado, filtrando el ruido a corto plazo para revelar tendencias subyacentes. Promediando puntos de datos dentro de una ventana móvil, proporciona una visión más clara de la dirección de los datos en el tiempo. Por ejemplo:
    • En los mercados financieros, una media móvil creciente de precios de acciones podría indicar una tendencia alcista, mientras que una decreciente podría sugerir un mercado bajista.
    • Para plataformas de comercio electrónico, una media móvil en aumento de usuarios activos diarios podría señalar un aumento en la participación de usuarios o el éxito de campañas de marketing recientes.
    • En estudios climáticos, una media móvil de temperaturas puede ayudar a identificar tendencias de calentamiento o enfriamiento a largo plazo, suavizando las fluctuaciones diarias y estacionales.
  • Desviación estándar móvil: Como se describió anteriormente, esta métrica captura el grado de variabilidad o dispersión dentro de la ventana móvil. Es particularmente útil para:
    • Evaluación de riesgos en finanzas, donde períodos de alta desviación estándar móvil pueden indicar turbulencia en el mercado o mayor riesgo de inversión.
    • Control de calidad en fabricación, donde picos en la desviación estándar móvil podrían señalar inestabilidad en el proceso o fallos en el equipo.
    • Pronóstico de demanda en el comercio minorista, donde cambios en la desviación estándar móvil de datos de ventas podrían indicar cambios en el comportamiento del consumidor o en la volatilidad del mercado.

Al interpretar estas características de ventana móvil, es crucial considerar el tamaño de la ventana y su impacto en el análisis. Las ventanas más pequeñas responderán mejor a cambios recientes pero pueden introducir ruido, mientras que ventanas más grandes proporcionan una vista más suave pero pueden retrasarse respecto a las tendencias recientes. La elección del tamaño de la ventana debe estar informada por las características específicas de los datos y los objetivos analíticos.

Al aprovechar tanto la media móvil como la desviación estándar móvil, los analistas pueden obtener una comprensión integral tanto de la tendencia central como de la variabilidad en sus datos de series temporales, permitiendo una toma de decisiones más informada y una modelización predictiva más precisa.

9.2.5 Uso práctico de características con retraso y de ventana móvil en pronósticos

Las características con retraso y de ventana móvil mejoran significativamente la capacidad predictiva de un modelo al incorporar contexto temporal. Estas características son especialmente valiosas en dominios donde los datos históricos recientes influyen fuertemente en los resultados a corto plazo. Al capturar tanto los valores inmediatos del pasado como las tendencias a más largo plazo, estas características proporcionan una visión integral de la dinámica temporal de los datos. Aquí hay algunas aplicaciones clave:

  • Mercados financieros: En el comercio de acciones y análisis de inversiones, los promedios móviles y los valores con retraso de precios de acciones son cruciales. Por ejemplo, una media móvil de 50 días puede ayudar a identificar tendencias a largo plazo, mientras que los valores con retraso del día o la semana anteriores pueden capturar el impulso a corto plazo. Estas características se utilizan a menudo en el análisis técnico para generar señales de compra o venta.
  • Pronóstico del tiempo: Los meteorólogos dependen en gran medida de datos de temperatura con retraso y promedios móviles de precipitación. Por ejemplo, los valores de temperatura con retraso de días anteriores pueden ayudar a predecir la temperatura de mañana, mientras que una media móvil de 30 días de precipitación puede indicar tendencias generales de humedad. Estas características son esenciales tanto para predicciones meteorológicas a corto plazo como para análisis climáticos a largo plazo.
  • Predicción de ventas minoristas: En el sector minorista, las ventas diarias o semanales pasadas son predictores críticos de ventas futuras. Una media móvil de 7 días puede suavizar los efectos del día de la semana, mientras que valores con retraso del mismo día de la semana pasada o del año pasado pueden capturar estacionalidad semanal o anual. Estas características son particularmente útiles para la gestión de inventario y decisiones de personal.
  • Pronóstico de consumo energético: Las compañías de servicios públicos utilizan características con retraso y de ventana móvil de datos de consumo energético para predecir la demanda futura. Por ejemplo, un valor con retraso de 24 horas puede capturar patrones diarios, mientras que una media móvil de 7 días puede tener en cuenta tendencias semanales. Esto ayuda a optimizar la generación y distribución de energía.
  • Análisis de tráfico web: Los especialistas en marketing digital y administradores web utilizan estas características para entender y predecir patrones de tráfico web. Los valores con retraso pueden capturar el impacto de campañas de marketing recientes, mientras que los promedios móviles pueden revelar tendencias a más largo plazo en la participación de los usuarios.

Al incorporar estas características, los modelos pueden capturar tanto las fluctuaciones a corto plazo como las tendencias a largo plazo, lo que lleva a predicciones más precisas y robustas en varios dominios.

Combinando características con retraso y de ventana móvil en un modelo de series temporales

Para ilustrar cómo estas características pueden combinarse en un solo conjunto de datos, apliquemos tanto características con retraso como de ventana móvil a nuestros datos de Ventas.

import pandas as pd
import matplotlib.pyplot as plt

# Create sample data
data = {'Date': pd.date_range(start='2023-01-01', periods=60, freq='D'),
        'Sales': [100 + i + 10 * (i % 7 == 5) + 20 * (i % 30 < 3) + np.random.randint(-10, 11) for i in range(60)]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag7'] = df['Sales'].shift(7)  # Weekly lag

# Create rolling features
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()

# Create percentage change
df['PctChange'] = df['Sales'].pct_change()

# Create expanding features
df['ExpandingMean'] = df['Sales'].expanding().mean()
df['ExpandingMax'] = df['Sales'].expanding().max()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.plot(df.index, df['ExpandingMean'], label='Expanding Mean')
plt.fill_between(df.index, df['Sales'] - df['RollingStd_7'], 
                 df['Sales'] + df['RollingStd_7'], alpha=0.2, label='7-day Rolling Std')
plt.title('Sales Data with Time Series Features')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag7', 'RollingMean_7', 'PctChange']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Desglose del código:

  1. Creación de datos:
    • Generamos 60 días de datos sintéticos de ventas con patrones semanales y mensuales, más ruido aleatorio.
    • Esto simula datos de ventas del mundo real con tendencias y estacionalidad.
  2. Características con retraso:
    • Sales_Lag1 y Sales_Lag2: Capturan dependencias a corto plazo.
    • Sales_Lag7: Captura patrones semanales, útil para identificar efectos del día de la semana.
  3. Características de ventana móvil:
    • RollingMean_3 y RollingMean_7: Suavizan las fluctuaciones a corto plazo, revelando tendencias.
    • RollingStd_3 y RollingStd_7: Capturan la volatilidad a corto plazo y semanal en las ventas.
  4. Cambio porcentual:
    • PctChange: Muestra la tasa de crecimiento día a día, útil para identificar cambios repentinos.
  5. Características de expansión:
    • ExpandingMean: Promedio acumulativo, útil para análisis de tendencias a largo plazo.
    • ExpandingMax: Máximo acumulativo, ayuda a identificar récords generales de ventas.
  6. Visualización:
    • Grafica las ventas en bruto, la media móvil de 7 días y la media expansiva para mostrar diferentes perspectivas de tendencias.
    • Utiliza fill_between para visualizar la desviación estándar móvil de 7 días, indicando volatilidad.
  7. Análisis de correlación:
    • Calcula correlaciones entre características clave para entender sus relaciones.
    • Ayuda a identificar qué características podrían ser más predictivas de ventas futuras.

Este ejemplo integral demuestra varias características de series temporales y su visualización, proporcionando una base sólida para tareas de análisis y pronóstico de series temporales.

9.2.6 Consideraciones al utilizar características con retraso y de ventana móvil

Manejo de valores faltantes:

La introducción de características con retraso y de ventana móvil inevitablemente conduce a valores faltantes al inicio del conjunto de datos. Esto ocurre porque estas características dependen de puntos de datos anteriores que no existen para las observaciones iniciales. Por ejemplo, una media móvil de 7 días resultará en valores NaN (No es un Número) para las primeras 6 filas, ya que no hay suficientes datos previos para calcular la media.

Estos valores faltantes representan un desafío para muchos algoritmos de aprendizaje automático y modelos estadísticos, que a menudo requieren conjuntos de datos completos para funcionar correctamente. Por lo tanto, abordar estos valores faltantes es crucial para mantener la integridad de los datos y asegurar la confiabilidad de tu análisis.

  • Soluciones:
    • Eliminación de datos: Un enfoque es simplemente eliminar las filas que contienen valores faltantes. Aunque sencillo, este método puede llevar a la pérdida de datos potencialmente valiosos, especialmente si el conjunto de datos es pequeño.
    • Relleno hacia adelante: Este método propaga la última observación válida hacia adelante para llenar los valores NaN. Es particularmente útil cuando se cree que los valores faltantes serían similares al valor conocido más reciente.
    • Relleno hacia atrás: A la inversa, este enfoque utiliza valores futuros conocidos para completar los datos faltantes. Puede ser apropiado cuando se cree que los valores futuros son buenos sustitutos para los datos faltantes.
    • Interpolación: Para datos de series temporales, se pueden utilizar varios métodos de interpolación (lineal, polinómica, spline) para estimar valores faltantes basándose en los patrones de los datos existentes.

La elección del método depende de tu conjunto de datos específico, la naturaleza de tu análisis y los requisitos de tu modelo. A menudo es beneficioso experimentar con diferentes enfoques y evaluar su impacto en el rendimiento del modelo.

Elegir el tamaño de ventana adecuado:

El tamaño de la ventana para las características de ventana móvil es un parámetro crítico que impacta significativamente en el análisis de datos de series temporales. Determina la cantidad de puntos de datos utilizados en el cálculo de estadísticas móviles, como medias o desviaciones estándar. La elección del tamaño de ventana depende de varios factores:

  • Frecuencia de datos: Los datos de alta frecuencia (p. ej., cada hora) pueden requerir tamaños de ventana más grandes en comparación con los datos de baja frecuencia (p. ej., mensuales) para capturar patrones significativos.
  • Patrones esperados: Si se anticipan patrones semanales, una ventana de 7 días podría ser apropiada. Para patrones mensuales, una ventana de 30 días podría ser más adecuada.
  • Nivel de ruido: Los datos con más ruido podrían beneficiarse de tamaños de ventana más grandes para suavizar las fluctuaciones y revelar tendencias subyacentes.
  • Objetivo del análisis: Los pronósticos a corto plazo pueden requerir ventanas más pequeñas, mientras que el análisis de tendencias a largo plazo podría beneficiarse de ventanas más grandes.

Las ventanas cortas son más receptivas a cambios recientes y pueden capturar fluctuaciones rápidas, siendo útiles para detectar cambios o anomalías repentinas. Sin embargo, pueden ser más susceptibles al ruido. Por el contrario, las ventanas largas ofrecen una representación más suave de los datos, resaltando tendencias generales pero potencialmente perdiendo variaciones a corto plazo.

  • Consejo: Experimenta con diferentes tamaños de ventana para encontrar el mejor ajuste para tu conjunto de datos y objetivos. Considera utilizar múltiples tamaños de ventana en tu análisis para capturar patrones tanto a corto como a largo plazo. Además, puedes emplear técnicas como la validación cruzada para evaluar sistemáticamente el rendimiento de diferentes tamaños de ventana en tu contexto específico.

Evitar la fuga de datos:

Al trabajar con datos de series temporales y utilizar características con retraso, es crucial evitar la fuga de datos. Esto ocurre cuando la información del futuro influye inadvertidamente en el modelo durante el entrenamiento o prueba, lo que lleva a resultados de rendimiento demasiado optimistas. En el contexto del análisis de series temporales, la fuga de datos puede ocurrir si el modelo tiene acceso a puntos de datos futuros que no estarían disponibles en un escenario de predicción del mundo real.

Por ejemplo, si estás tratando de predecir el precio de las acciones de mañana usando el precio de hoy como una característica, debes asegurarte de que el modelo no tenga acceso a ninguna información más allá del día actual al hacer predicciones. Este principio se extiende a características más complejas como medias móviles u otras métricas derivadas.

  • Soluciones para prevenir la fuga de datos:
    • Ingeniería de características cuidadosa: Al crear características con retraso, asegúrate de que solo incorporen datos pasados en relación con el punto de predicción.
    • División adecuada de entrenamiento y prueba: En datos de series temporales, siempre divide los datos cronológicamente, con el conjunto de entrenamiento precediendo al conjunto de prueba.
    • Validación cruzada basada en tiempo: Utiliza técnicas como el encadenamiento hacia adelante o la validación cruzada de ventana deslizante que respetan el orden temporal de los datos.
    • Cálculo de características dentro de los pliegues: Recalcula las características dependientes del tiempo (como medias móviles) dentro de cada pliegue de validación cruzada para evitar el uso de información futura.

Implementando estas estrategias, puedes mantener la integridad de tu modelo de series temporales y asegurarte de que sus métricas de rendimiento reflejen con precisión sus capacidades predictivas en el mundo real. Recuerda, el objetivo es simular las condiciones reales en las que el modelo será desplegado, donde los datos futuros son realmente desconocidos.

9.2.7 Puntos clave y aplicaciones avanzadas

  • Características con retraso proporcionan al modelo datos históricos recientes, cruciales para el análisis de series temporales donde los valores pasados a menudo influyen en los resultados futuros. Estas características pueden capturar dependencias a corto plazo y patrones cíclicos, como los efectos del día de la semana en las ventas minoristas o los patrones de la hora del día en el consumo de energía.
  • Características de ventana móvil capturan tendencias y variabilidad a largo plazo, suavizando las fluctuaciones a corto plazo y resaltando patrones más amplios. Son particularmente útiles para identificar estacionalidad, cambios de tendencia y estabilidad general de los datos. Por ejemplo, una media móvil de 30 días puede revelar tendencias mensuales en los mercados financieros.
  • Combinar características con retraso y de ventana móvil equipa a los modelos con perspectivas históricas tanto inmediatas como acumulativas, mejorando su capacidad para realizar predicciones precisas. Esta combinación permite una comprensión más completa de los datos, capturando tanto fluctuaciones a corto plazo como tendencias a largo plazo simultáneamente.
  • Selección y creación de características juegan un papel crucial en la modelización de series temporales. La selección cuidadosa de los períodos de retraso y las ventanas móviles puede mejorar significativamente el rendimiento del modelo. Por ejemplo, en la predicción del mercado de valores, combinar los retornos retrasados de 1 día, 5 días y 20 días con promedios móviles de 10 días y 30 días puede capturar diversas dinámicas del mercado.
  • Manejo de relaciones no lineales es a menudo necesario en el análisis de series temporales. Técnicas como características polinómicas o aplicar transformaciones (p. ej., logarítmica, raíz cuadrada) a las características con retraso y de ventana móvil pueden ayudar a capturar patrones complejos en los datos.

Al aprovechar estas técnicas avanzadas, los analistas pueden desarrollar modelos de series temporales más sofisticados y precisos, lo que lleva a mejoras en el pronóstico y la toma de decisiones en diversos dominios como finanzas, economía y ciencias ambientales.

9.2 Creación de características de desfase y de ventanas móviles

Al analizar datos de series temporales, la incorporación de características de desfase y características de ventanas móviles puede mejorar significativamente la capacidad predictiva de un modelo. Las características de desfase permiten que los modelos utilicen observaciones históricas para hacer pronósticos más precisos, mientras que las características de ventanas móviles proporcionan información invaluable sobre las tendencias y fluctuaciones en intervalos de tiempo específicos.

Estas características sofisticadas son esenciales para descifrar las complejas relaciones entre valores pasados y futuros, especialmente en escenarios donde patrones complejos o variaciones estacionales tienen una gran influencia en los datos.

En esta sección, exploraremos en profundidad las metodologías para crear y utilizar eficazmente características de desfase y de ventanas móviles. Presentaremos una serie de ejemplos prácticos que demuestran su aplicación en escenarios del mundo real, resaltando el impacto transformador que estas técnicas pueden tener en el análisis y la precisión de la previsión de series temporales.

9.2.1 Características de desfase

Una característica de desfase es una técnica poderosa en el análisis de series temporales que implica desplazar los datos originales en un intervalo de tiempo específico. Este proceso introduce valores previos como nuevas características en el conjunto de datos, permitiendo que el modelo aproveche la información histórica para hacer predicciones más precisas. Al incorporar características de desfase, los modelos pueden capturar dependencias y patrones temporales que pueden no ser evidentes en el paso temporal actual.

El concepto de características de desfase es particularmente valioso en escenarios donde los eventos pasados tienen un impacto significativo en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones del día anterior a menudo influyen en los patrones de negociación de hoy. De manera similar, en la predicción meteorológica, los datos de temperatura y precipitación de días anteriores pueden ser cruciales para predecir condiciones futuras.

Al crear características de desfase, es importante considerar el desfase de tiempo apropiado. Este puede variar dependiendo de la naturaleza de los datos y el problema específico a resolver. Por ejemplo, los datos de ventas diarias pueden beneficiarse de desfases de 1, 7 y 30 días para capturar patrones diarios, semanales y mensuales. Al experimentar con diferentes intervalos de desfase, los científicos de datos pueden identificar los puntos de datos históricos más informativos para sus modelos predictivos.

Las características de desfase complementan otras técnicas de series temporales, como las características de ventanas móviles y la descomposición estacional, proporcionando una visión integral de los patrones y tendencias temporales. Cuando se usan de manera juiciosa, pueden mejorar significativamente la capacidad del modelo para discernir relaciones complejas en datos dependientes del tiempo, llevando a predicciones más robustas y precisas en varios dominios.

9.2.2 Creación de características de desfase con Pandas

Profundicemos en el concepto de características de desfase con un ejemplo práctico. Consideremos un conjunto de datos que contiene cifras de ventas diarias de una tienda minorista. Nuestro objetivo es prever las ventas de hoy basándonos en los datos de ventas de los tres días anteriores. Para lograr esto, crearemos características de desfase que capturen esta información histórica:

  • Ventas Desfase-1: Representa las ventas de ayer, proporcionando contexto histórico inmediato.
  • Ventas Desfase-2: Captura las ventas de hace dos días, ofreciendo datos un poco más antiguos pero aún relevantes.
  • Ventas Desfase-3: Incorpora los datos de ventas de hace tres días, ampliando la ventana histórica.

Al incorporar estas características de desfase, habilitamos que nuestro modelo predictivo discierna patrones y relaciones entre cifras de ventas de días consecutivos. Este enfoque es especialmente valioso en escenarios donde el historial reciente de ventas influye significativamente en el desempeño futuro, como en el comercio minorista, donde factores como promociones o tendencias estacionales pueden crear patrones a corto plazo.

Además, usar múltiples períodos de desfase permite que el modelo capture diferentes dinámicas temporales. Por ejemplo:

  • El desfase de 1 día puede capturar fluctuaciones diarias y tendencias inmediatas.
  • El desfase de 2 días podría ayudar a identificar patrones que abarcan fines de semana o promociones cortas.
  • El desfase de 3 días podría revelar tendencias de mayor duración o los efectos de eventos de mitad de semana en las ventas del fin de semana.

Este enfoque de múltiples desfases proporciona un conjunto de características más rico para el modelo, mejorando potencialmente su capacidad para hacer predicciones precisas al considerar un contexto histórico más completo.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Sample sales data
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175,
                  190, 200, 185, 210, 205, 220, 230, 225, 250, 245,
                  260, 270, 255, 280, 275, 290, 300, 295, 320, 315]}
df = pd.DataFrame(data)

# Create lagged features for the previous 1, 2, and 3 days
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag3'] = df['Sales'].shift(3)

# Create rolling features
df['Rolling_Mean_7'] = df['Sales'].rolling(window=7).mean()
df['Rolling_Std_7'] = df['Sales'].rolling(window=7).std()

# Calculate percentage change
df['Pct_Change'] = df['Sales'].pct_change()

# Print the first 10 rows of the dataframe
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df['Date'], df['Sales'], label='Sales')
plt.plot(df['Date'], df['Rolling_Mean_7'], label='7-day Rolling Mean')
plt.fill_between(df['Date'], 
                 df['Rolling_Mean_7'] - df['Rolling_Std_7'],
                 df['Rolling_Mean_7'] + df['Rolling_Std_7'],
                 alpha=0.2, label='7-day Rolling Std Dev')
plt.title('Sales Data with Rolling Mean and Standard Deviation')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# Correlation heatmap
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag2', 'Sales_Lag3', 'Rolling_Mean_7']].corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1, center=0)
plt.title('Correlation Heatmap of Sales and Lagged/Rolling Features')
plt.tight_layout()
plt.show()

# Basic statistics
print("\nBasic Statistics:")
print(df['Sales'].describe())

# Autocorrelation
from pandas.plotting import autocorrelation_plot
plt.figure(figsize=(12, 6))
autocorrelation_plot(df['Sales'])
plt.title('Autocorrelation Plot of Sales')
plt.tight_layout()
plt.show()

Explicación del Desglose de Código:

  1. Preparación de Datos e Ingeniería de Características:
    • Importamos las bibliotecas necesarias: pandas para la manipulación de datos, matplotlib para gráficos básicos y seaborn para visualizaciones avanzadas.
    • Se crea un conjunto de datos de muestra con datos de ventas diarias durante 30 días utilizando la función date_range de pandas.
    • Creamos características rezagadas para 1, 2 y 3 días usando el método shift().
    • Las características de promedio móvil (media y desviación estándar de 7 días) se crean usando el método rolling().
    • Se calcula el cambio porcentual con el método pct_change() para mostrar la tasa de crecimiento diario.
  2. Visualización de Datos:
    • Creamos un gráfico de líneas que muestra los datos de ventas originales, la media móvil de 7 días y el rango de desviación estándar móvil.
    • Esta visualización ayuda a identificar tendencias y volatilidad en los datos de ventas a lo largo del tiempo.
  3. Análisis de Correlación:
    • Se crea un mapa de calor de correlación utilizando seaborn para mostrar las relaciones entre las ventas y las características creadas.
    • Esto ayuda a identificar qué características rezagadas o móviles tienen la correlación más fuerte con las ventas actuales.
  4. Análisis Estadístico:
    • Se imprimen estadísticas descriptivas básicas de los datos de ventas usando el método describe().
    • Se genera un gráfico de autocorrelación para mostrar cómo las ventas se correlacionan con sus propios valores rezagados a lo largo del tiempo.

Este ejemplo integral demuestra varias técnicas para trabajar con datos de series temporales, incluyendo la ingeniería de características, visualización y análisis estadístico. Proporciona información sobre tendencias, patrones y relaciones dentro de los datos de ventas, lo cual puede ser valioso para la previsión y la toma de decisiones en un contexto empresarial.

9.2.3 Uso de Características Rezagadas para Modelado

Las características rezagadas son especialmente valiosas en el análisis de series temporales, especialmente al trabajar con datos que muestran una fuerte autocorrelación. Este fenómeno ocurre cuando los valores pasados tienen una influencia significativa en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones a menudo demuestran esta característica, donde el precio de cierre de ayer sirve como un fuerte indicador para el precio de apertura de hoy. Esto convierte a las características rezagadas en una herramienta esencial para analistas y científicos de datos que trabajan en finanzas, economía y campos relacionados.

El poder de las características rezagadas va más allá de las simples correlaciones día a día. En algunos casos, pueden emerger patrones en intervalos más largos, como ciclos semanales o mensuales. Por ejemplo, los datos de ventas minoristas pueden mostrar correlaciones fuertes con las cifras de ventas del mismo día de la semana anterior, o incluso del mismo mes del año anterior. Al incorporar estas características rezagadas, los modelos pueden captar dependencias temporales complejas que de otro modo podrían pasar desapercibidas.

Consejo Clave: Al implementar características rezagadas, es crucial considerar cuidadosamente el intervalo de retraso. El período de retraso óptimo puede variar significativamente dependiendo de la naturaleza de los datos y los patrones específicos que se desean capturar. Un retraso demasiado corto puede no proporcionar información significativa, introduciendo potencialmente ruido en lugar de señal en el modelo. Por el contrario, un retraso demasiado largo puede perder tendencias recientes importantes o cambios en el comportamiento de los datos.

Para encontrar los intervalos de retraso más efectivos, se recomienda emplear un enfoque sistemático:

  • Aprovechar el conocimiento del dominio: Comienza con tu experiencia específica del sector. Entender los ritmos y ciclos inherentes a tu campo puede proporcionar información valiosa sobre las escalas de tiempo potencialmente relevantes.
  • Realizar análisis de autocorrelación: Utiliza herramientas estadísticas como gráficos de autocorrelación y funciones de autocorrelación parcial (PACF) para identificar períodos de retraso significativos.
  • Implementar experimentación iterativa: Adopta un enfoque metódico para probar diferentes intervalos de retraso y combinaciones. Este proceso implica crear diversas características rezagadas, incorporarlas en tu modelo y evaluar sistemáticamente su impacto en los resultados.
  • Incorporar múltiples escalas de retraso: En lugar de depender de un solo período de retraso, considera usar una combinación de retrasos a corto y largo plazo para obtener una visión más completa de la dinámica temporal.

Siguiendo este enfoque integral, puedes desarrollar un conjunto robusto de características rezagadas que capturan el espectro completo de dependencias temporales en tus datos, mejorando en última instancia las capacidades predictivas de tu modelo.

Al seleccionar y ajustar cuidadosamente tus características rezagadas, puedes mejorar significativamente la capacidad de tu modelo para captar patrones temporales y realizar predicciones precisas en el análisis de series temporales.

9.2.4 Características de Ventana Móvil

Mientras que las características rezagadas se enfocan en valores específicos del pasado, las características de ventana móvil resumen los datos en una ventana en movimiento, proporcionando una visión más integral del comportamiento de los datos. Estas características son instrumentales para capturar tendencias a largo plazo y patrones de volatilidad que podrían pasar desapercibidos al examinar puntos de datos individuales. Al agregar información en un marco de tiempo específico, las características de ventana móvil ofrecen una representación suavizada de los datos, ayudando a filtrar el ruido y resaltar las tendencias subyacentes.

Las características de ventana móvil son particularmente valiosas en el análisis de series temporales por varias razones:

  • Identificación de Tendencias: Las características de ventana móvil son excelentes para revelar patrones a largo plazo que podrían estar ocultos en los datos sin procesar. Al agregar información en el tiempo, pueden descubrir cambios graduales o movimientos sostenidos en los datos. Esta capacidad es invaluable en varios dominios:
    • En análisis financiero, las características de ventana móvil pueden resaltar tendencias de mercado, ayudando a los inversionistas a tomar decisiones informadas sobre la asignación de activos y la gestión de riesgos.
    • Para la previsión meteorológica, pueden revelar patrones climáticos en periodos extendidos, ayudando a predecir fenómenos meteorológicos a largo plazo como eventos de El Niño o La Niña.
    • En estudios económicos, las características de ventana móvil pueden iluminar tendencias macroeconómicas, como cambios en las tasas de crecimiento del PIB o patrones de inflación, que son cruciales para la toma de decisiones políticas y la planificación estratégica.
  • Evaluación de Volatilidad: Calculando la variabilidad dentro de una ventana en movimiento, las características de ventana móvil ofrecen una vista dinámica de la estabilidad de los datos. Esto es particularmente útil en:
    • Evaluación de riesgos financieros, donde entender períodos de turbulencia en el mercado es crucial para la gestión de carteras y la fijación de precios de opciones.
    • Análisis de sistemas complejos, como en estudios ecológicos, donde las fluctuaciones en la dinámica poblacional pueden indicar la salud del ecosistema o cambios inminentes.
    • Análisis en el sector energético, donde la volatilidad en la generación de energía renovable (por ejemplo, eólica o solar) afecta la estabilidad de la red y los precios de la energía.
  • Detección de Estacionalidad: Cuando se aplican estratégicamente, las características de ventana móvil pueden descubrir patrones recurrentes en los datos:
    • En el comercio minorista, pueden ayudar a identificar ciclos de ventas anuales, permitiendo una mejor gestión de inventarios y estrategias de marketing.
    • Para las industrias turísticas, detectar patrones estacionales de visitantes ayuda en la asignación de recursos y estrategias de precios.
    • En la agricultura, reconocer patrones estacionales de rendimiento de cultivos puede informar decisiones de siembra y cosecha.
  • Reducción de Ruido: Al suavizar las fluctuaciones a corto plazo, las características de ventana móvil actúan como un filtro, separando señales significativas del ruido aleatorio:
    • En el procesamiento de señales, esto puede ayudar a extraer señales de audio claras del ruido de fondo.
    • En investigación médica, puede ayudar a identificar tendencias significativas en los datos de pacientes entre variaciones diarias.
    • Para la monitorización ambiental, puede ayudar a distinguir entre la variabilidad natural y los cambios significativos en los niveles de contaminación o métricas de biodiversidad.

Las estadísticas móviles comunes incluyen:

  • Media Móvil (Moving Average): Este indicador calcula el promedio en una ventana específica, suavizando las fluctuaciones a corto plazo y resaltando tendencias a largo plazo. Se usa ampliamente en el análisis técnico de mercados financieros y en modelos de pronóstico. Por ejemplo, en el análisis del mercado de valores, una media móvil de 50 o 200 días puede ayudar a los inversores a identificar tendencias de precios a largo plazo y posibles niveles de soporte o resistencia.
  • Desviación Estándar Móvil: Captura la volatilidad o variabilidad dentro de la ventana, proporcionando una medida de cuán dispersos están los puntos de datos. Es particularmente útil en la evaluación de riesgos y en la identificación de períodos de volatilidad en el mercado. En finanzas, una desviación estándar móvil creciente puede señalar una mayor incertidumbre en el mercado, lo que podría influir en las decisiones de inversión o en las estrategias de gestión de riesgos.
  • Suma Móvil: Proporciona valores acumulados en la ventana, lo cual es especialmente útil para métricas que son significativas cuando se agregan, como las ventas totales en un período o la precipitación acumulada. En análisis empresarial, una suma móvil de ventas mensuales puede ayudar a identificar patrones estacionales o a hacer seguimiento del progreso hacia objetivos trimestrales o anuales.
  • Mediana Móvil: Similar a la media móvil, pero menos sensible a valores atípicos, lo que la hace útil para conjuntos de datos con valores extremos o distribuciones sesgadas. Este indicador es particularmente valioso en campos como el de bienes raíces, donde los precios de las propiedades pueden estar influenciados significativamente por algunas transacciones de alto valor. Una mediana móvil puede proporcionar una representación más estable de las tendencias de precios.
  • Máximo y Mínimo Móvil: Estas características capturan los valores más altos y más bajos dentro de cada ventana, útiles para identificar picos y valles en los datos. En la monitorización ambiental, los máximos y mínimos móviles de temperatura pueden ayudar a rastrear eventos climáticos extremos o tendencias climáticas a largo plazo. En finanzas, estos indicadores pueden usarse para implementar estrategias de negociación basadas en rupturas de precios o niveles de soporte/resistencia.
  • Percentiles Móviles: Estos ofrecen información sobre la distribución de datos dentro de cada ventana. Por ejemplo, un percentil móvil del 90% puede ayudar a identificar productos o empleados de alto rendimiento de manera consistente, mientras que un percentil móvil del 10% podría señalar áreas que necesitan mejora.
  • Correlación Móvil: Este indicador mide la relación entre dos variables en una ventana en movimiento. En la gestión de carteras multi-activo, las correlaciones móviles entre diferentes activos pueden informar estrategias de diversificación y evaluación de riesgos.

Al implementar estas características de ventana móvil, es crucial considerar el tamaño de la ventana con cuidado. Las ventanas más pequeñas serán más sensibles a los cambios recientes pero pueden introducir ruido, mientras que las ventanas más grandes proporcionan una vista más suavizada pero pueden retrasarse con respecto a las tendencias recientes. El tamaño óptimo de la ventana depende a menudo de las características específicas de los datos y de los objetivos del análisis. La experimentación y el conocimiento del dominio son clave para encontrar el equilibrio adecuado para cada aplicación.

Creación de Características de Ventana Móvil con Pandas

Continuemos con nuestros datos de ventas y creemos una media móvil de 7 días y una desviación estándar móvil de 7 días. Estas características móviles ayudan a capturar la tendencia general y la variabilidad en los datos, permitiendo que el modelo considere tanto los promedios recientes como los cambios en la volatilidad.

import pandas as pd
import matplotlib.pyplot as plt

# Sample data with a longer time range for rolling calculations
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175, 165, 170, 185, 190, 200,
                  210, 205, 220, 215, 230, 240, 235, 250, 245, 260, 270, 265, 280, 275, 290]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create rolling features
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()
df['RollingMax_7'] = df['Sales'].rolling(window=7).max()
df['RollingMin_7'] = df['Sales'].rolling(window=7).min()

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag7'] = df['Sales'].shift(7)

# Calculate percent change
df['PercentChange'] = df['Sales'].pct_change()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.fill_between(df.index, df['RollingMin_7'], df['RollingMax_7'], alpha=0.2, label='7-day Range')
plt.title('Sales Data with Rolling Statistics')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'RollingMean_7', 'Sales_Lag1', 'Sales_Lag7']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Este ejemplo de código muestra un enfoque integral para analizar datos de series temporales utilizando pandas y matplotlib. Examinemos los componentes clave y su importancia:

  1. Preparación de los datos:
    • Creamos un conjunto de datos más grande con 30 días de datos de ventas para proporcionar un ejemplo más robusto.
    • La columna 'Date' se establece como el índice del DataFrame, lo cual es una buena práctica para datos de series temporales en pandas.
  2. Características de ventana móvil:
    • Media móvil (ventana de 7 días): Suaviza las fluctuaciones a corto plazo y resalta la tendencia general.
    • Desviación estándar móvil (ventana de 7 días): Captura la volatilidad o variabilidad de las ventas durante la última semana.
    • Máximo y mínimo móvil (ventana de 7 días): Proporcionan información sobre el rango de valores de ventas en la última semana.
  3. Características con retraso:
    • Retraso de 1 día: Permite que el modelo considere las ventas de ayer al predecir las de hoy.
    • Retraso de 7 días: Captura el valor de ventas del mismo día de la semana pasada, potencialmente útil para patrones semanales.
  4. Cambio porcentual:
    • Calcula el cambio porcentual de un día a otro en las ventas, útil para identificar cambios repentinos o tendencias.
  5. Visualización de datos:
    • El gráfico muestra los datos de ventas en bruto, la media móvil de 7 días y el rango entre el mínimo y el máximo móvil de 7 días.
    • Esta visualización ayuda a identificar tendencias, estacionalidad y fluctuaciones inusuales en los datos.
  6. Análisis de correlación:
    • La matriz de correlación muestra las relaciones entre los datos de ventas originales y varias características derivadas.
    • Esto puede ayudar a entender qué características podrían ser más predictivas de futuras ventas.

Al combinar estas técnicas, creamos un conjunto rico de características que capturan diferentes aspectos de los datos de series temporales. Este enfoque integral permite una comprensión más profunda de los patrones y relaciones subyacentes en los datos de ventas, lo cual es invaluable para los procesos de pronóstico y toma de decisiones.

Interpretación de características de ventana móvil

Las características de ventana móvil ofrecen valiosas ideas sobre la dinámica temporal de los datos de series temporales. Al agregar información sobre una ventana específica, estas características brindan una visión matizada de tendencias, volatilidad y patrones que podrían estar ocultos en los datos sin procesar. Analicemos dos características clave de ventana móvil:

  • Media móvil: Como se mencionó antes, esta característica actúa como un mecanismo de suavizado, filtrando el ruido a corto plazo para revelar tendencias subyacentes. Promediando puntos de datos dentro de una ventana móvil, proporciona una visión más clara de la dirección de los datos en el tiempo. Por ejemplo:
    • En los mercados financieros, una media móvil creciente de precios de acciones podría indicar una tendencia alcista, mientras que una decreciente podría sugerir un mercado bajista.
    • Para plataformas de comercio electrónico, una media móvil en aumento de usuarios activos diarios podría señalar un aumento en la participación de usuarios o el éxito de campañas de marketing recientes.
    • En estudios climáticos, una media móvil de temperaturas puede ayudar a identificar tendencias de calentamiento o enfriamiento a largo plazo, suavizando las fluctuaciones diarias y estacionales.
  • Desviación estándar móvil: Como se describió anteriormente, esta métrica captura el grado de variabilidad o dispersión dentro de la ventana móvil. Es particularmente útil para:
    • Evaluación de riesgos en finanzas, donde períodos de alta desviación estándar móvil pueden indicar turbulencia en el mercado o mayor riesgo de inversión.
    • Control de calidad en fabricación, donde picos en la desviación estándar móvil podrían señalar inestabilidad en el proceso o fallos en el equipo.
    • Pronóstico de demanda en el comercio minorista, donde cambios en la desviación estándar móvil de datos de ventas podrían indicar cambios en el comportamiento del consumidor o en la volatilidad del mercado.

Al interpretar estas características de ventana móvil, es crucial considerar el tamaño de la ventana y su impacto en el análisis. Las ventanas más pequeñas responderán mejor a cambios recientes pero pueden introducir ruido, mientras que ventanas más grandes proporcionan una vista más suave pero pueden retrasarse respecto a las tendencias recientes. La elección del tamaño de la ventana debe estar informada por las características específicas de los datos y los objetivos analíticos.

Al aprovechar tanto la media móvil como la desviación estándar móvil, los analistas pueden obtener una comprensión integral tanto de la tendencia central como de la variabilidad en sus datos de series temporales, permitiendo una toma de decisiones más informada y una modelización predictiva más precisa.

9.2.5 Uso práctico de características con retraso y de ventana móvil en pronósticos

Las características con retraso y de ventana móvil mejoran significativamente la capacidad predictiva de un modelo al incorporar contexto temporal. Estas características son especialmente valiosas en dominios donde los datos históricos recientes influyen fuertemente en los resultados a corto plazo. Al capturar tanto los valores inmediatos del pasado como las tendencias a más largo plazo, estas características proporcionan una visión integral de la dinámica temporal de los datos. Aquí hay algunas aplicaciones clave:

  • Mercados financieros: En el comercio de acciones y análisis de inversiones, los promedios móviles y los valores con retraso de precios de acciones son cruciales. Por ejemplo, una media móvil de 50 días puede ayudar a identificar tendencias a largo plazo, mientras que los valores con retraso del día o la semana anteriores pueden capturar el impulso a corto plazo. Estas características se utilizan a menudo en el análisis técnico para generar señales de compra o venta.
  • Pronóstico del tiempo: Los meteorólogos dependen en gran medida de datos de temperatura con retraso y promedios móviles de precipitación. Por ejemplo, los valores de temperatura con retraso de días anteriores pueden ayudar a predecir la temperatura de mañana, mientras que una media móvil de 30 días de precipitación puede indicar tendencias generales de humedad. Estas características son esenciales tanto para predicciones meteorológicas a corto plazo como para análisis climáticos a largo plazo.
  • Predicción de ventas minoristas: En el sector minorista, las ventas diarias o semanales pasadas son predictores críticos de ventas futuras. Una media móvil de 7 días puede suavizar los efectos del día de la semana, mientras que valores con retraso del mismo día de la semana pasada o del año pasado pueden capturar estacionalidad semanal o anual. Estas características son particularmente útiles para la gestión de inventario y decisiones de personal.
  • Pronóstico de consumo energético: Las compañías de servicios públicos utilizan características con retraso y de ventana móvil de datos de consumo energético para predecir la demanda futura. Por ejemplo, un valor con retraso de 24 horas puede capturar patrones diarios, mientras que una media móvil de 7 días puede tener en cuenta tendencias semanales. Esto ayuda a optimizar la generación y distribución de energía.
  • Análisis de tráfico web: Los especialistas en marketing digital y administradores web utilizan estas características para entender y predecir patrones de tráfico web. Los valores con retraso pueden capturar el impacto de campañas de marketing recientes, mientras que los promedios móviles pueden revelar tendencias a más largo plazo en la participación de los usuarios.

Al incorporar estas características, los modelos pueden capturar tanto las fluctuaciones a corto plazo como las tendencias a largo plazo, lo que lleva a predicciones más precisas y robustas en varios dominios.

Combinando características con retraso y de ventana móvil en un modelo de series temporales

Para ilustrar cómo estas características pueden combinarse en un solo conjunto de datos, apliquemos tanto características con retraso como de ventana móvil a nuestros datos de Ventas.

import pandas as pd
import matplotlib.pyplot as plt

# Create sample data
data = {'Date': pd.date_range(start='2023-01-01', periods=60, freq='D'),
        'Sales': [100 + i + 10 * (i % 7 == 5) + 20 * (i % 30 < 3) + np.random.randint(-10, 11) for i in range(60)]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag7'] = df['Sales'].shift(7)  # Weekly lag

# Create rolling features
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()

# Create percentage change
df['PctChange'] = df['Sales'].pct_change()

# Create expanding features
df['ExpandingMean'] = df['Sales'].expanding().mean()
df['ExpandingMax'] = df['Sales'].expanding().max()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.plot(df.index, df['ExpandingMean'], label='Expanding Mean')
plt.fill_between(df.index, df['Sales'] - df['RollingStd_7'], 
                 df['Sales'] + df['RollingStd_7'], alpha=0.2, label='7-day Rolling Std')
plt.title('Sales Data with Time Series Features')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag7', 'RollingMean_7', 'PctChange']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Desglose del código:

  1. Creación de datos:
    • Generamos 60 días de datos sintéticos de ventas con patrones semanales y mensuales, más ruido aleatorio.
    • Esto simula datos de ventas del mundo real con tendencias y estacionalidad.
  2. Características con retraso:
    • Sales_Lag1 y Sales_Lag2: Capturan dependencias a corto plazo.
    • Sales_Lag7: Captura patrones semanales, útil para identificar efectos del día de la semana.
  3. Características de ventana móvil:
    • RollingMean_3 y RollingMean_7: Suavizan las fluctuaciones a corto plazo, revelando tendencias.
    • RollingStd_3 y RollingStd_7: Capturan la volatilidad a corto plazo y semanal en las ventas.
  4. Cambio porcentual:
    • PctChange: Muestra la tasa de crecimiento día a día, útil para identificar cambios repentinos.
  5. Características de expansión:
    • ExpandingMean: Promedio acumulativo, útil para análisis de tendencias a largo plazo.
    • ExpandingMax: Máximo acumulativo, ayuda a identificar récords generales de ventas.
  6. Visualización:
    • Grafica las ventas en bruto, la media móvil de 7 días y la media expansiva para mostrar diferentes perspectivas de tendencias.
    • Utiliza fill_between para visualizar la desviación estándar móvil de 7 días, indicando volatilidad.
  7. Análisis de correlación:
    • Calcula correlaciones entre características clave para entender sus relaciones.
    • Ayuda a identificar qué características podrían ser más predictivas de ventas futuras.

Este ejemplo integral demuestra varias características de series temporales y su visualización, proporcionando una base sólida para tareas de análisis y pronóstico de series temporales.

9.2.6 Consideraciones al utilizar características con retraso y de ventana móvil

Manejo de valores faltantes:

La introducción de características con retraso y de ventana móvil inevitablemente conduce a valores faltantes al inicio del conjunto de datos. Esto ocurre porque estas características dependen de puntos de datos anteriores que no existen para las observaciones iniciales. Por ejemplo, una media móvil de 7 días resultará en valores NaN (No es un Número) para las primeras 6 filas, ya que no hay suficientes datos previos para calcular la media.

Estos valores faltantes representan un desafío para muchos algoritmos de aprendizaje automático y modelos estadísticos, que a menudo requieren conjuntos de datos completos para funcionar correctamente. Por lo tanto, abordar estos valores faltantes es crucial para mantener la integridad de los datos y asegurar la confiabilidad de tu análisis.

  • Soluciones:
    • Eliminación de datos: Un enfoque es simplemente eliminar las filas que contienen valores faltantes. Aunque sencillo, este método puede llevar a la pérdida de datos potencialmente valiosos, especialmente si el conjunto de datos es pequeño.
    • Relleno hacia adelante: Este método propaga la última observación válida hacia adelante para llenar los valores NaN. Es particularmente útil cuando se cree que los valores faltantes serían similares al valor conocido más reciente.
    • Relleno hacia atrás: A la inversa, este enfoque utiliza valores futuros conocidos para completar los datos faltantes. Puede ser apropiado cuando se cree que los valores futuros son buenos sustitutos para los datos faltantes.
    • Interpolación: Para datos de series temporales, se pueden utilizar varios métodos de interpolación (lineal, polinómica, spline) para estimar valores faltantes basándose en los patrones de los datos existentes.

La elección del método depende de tu conjunto de datos específico, la naturaleza de tu análisis y los requisitos de tu modelo. A menudo es beneficioso experimentar con diferentes enfoques y evaluar su impacto en el rendimiento del modelo.

Elegir el tamaño de ventana adecuado:

El tamaño de la ventana para las características de ventana móvil es un parámetro crítico que impacta significativamente en el análisis de datos de series temporales. Determina la cantidad de puntos de datos utilizados en el cálculo de estadísticas móviles, como medias o desviaciones estándar. La elección del tamaño de ventana depende de varios factores:

  • Frecuencia de datos: Los datos de alta frecuencia (p. ej., cada hora) pueden requerir tamaños de ventana más grandes en comparación con los datos de baja frecuencia (p. ej., mensuales) para capturar patrones significativos.
  • Patrones esperados: Si se anticipan patrones semanales, una ventana de 7 días podría ser apropiada. Para patrones mensuales, una ventana de 30 días podría ser más adecuada.
  • Nivel de ruido: Los datos con más ruido podrían beneficiarse de tamaños de ventana más grandes para suavizar las fluctuaciones y revelar tendencias subyacentes.
  • Objetivo del análisis: Los pronósticos a corto plazo pueden requerir ventanas más pequeñas, mientras que el análisis de tendencias a largo plazo podría beneficiarse de ventanas más grandes.

Las ventanas cortas son más receptivas a cambios recientes y pueden capturar fluctuaciones rápidas, siendo útiles para detectar cambios o anomalías repentinas. Sin embargo, pueden ser más susceptibles al ruido. Por el contrario, las ventanas largas ofrecen una representación más suave de los datos, resaltando tendencias generales pero potencialmente perdiendo variaciones a corto plazo.

  • Consejo: Experimenta con diferentes tamaños de ventana para encontrar el mejor ajuste para tu conjunto de datos y objetivos. Considera utilizar múltiples tamaños de ventana en tu análisis para capturar patrones tanto a corto como a largo plazo. Además, puedes emplear técnicas como la validación cruzada para evaluar sistemáticamente el rendimiento de diferentes tamaños de ventana en tu contexto específico.

Evitar la fuga de datos:

Al trabajar con datos de series temporales y utilizar características con retraso, es crucial evitar la fuga de datos. Esto ocurre cuando la información del futuro influye inadvertidamente en el modelo durante el entrenamiento o prueba, lo que lleva a resultados de rendimiento demasiado optimistas. En el contexto del análisis de series temporales, la fuga de datos puede ocurrir si el modelo tiene acceso a puntos de datos futuros que no estarían disponibles en un escenario de predicción del mundo real.

Por ejemplo, si estás tratando de predecir el precio de las acciones de mañana usando el precio de hoy como una característica, debes asegurarte de que el modelo no tenga acceso a ninguna información más allá del día actual al hacer predicciones. Este principio se extiende a características más complejas como medias móviles u otras métricas derivadas.

  • Soluciones para prevenir la fuga de datos:
    • Ingeniería de características cuidadosa: Al crear características con retraso, asegúrate de que solo incorporen datos pasados en relación con el punto de predicción.
    • División adecuada de entrenamiento y prueba: En datos de series temporales, siempre divide los datos cronológicamente, con el conjunto de entrenamiento precediendo al conjunto de prueba.
    • Validación cruzada basada en tiempo: Utiliza técnicas como el encadenamiento hacia adelante o la validación cruzada de ventana deslizante que respetan el orden temporal de los datos.
    • Cálculo de características dentro de los pliegues: Recalcula las características dependientes del tiempo (como medias móviles) dentro de cada pliegue de validación cruzada para evitar el uso de información futura.

Implementando estas estrategias, puedes mantener la integridad de tu modelo de series temporales y asegurarte de que sus métricas de rendimiento reflejen con precisión sus capacidades predictivas en el mundo real. Recuerda, el objetivo es simular las condiciones reales en las que el modelo será desplegado, donde los datos futuros son realmente desconocidos.

9.2.7 Puntos clave y aplicaciones avanzadas

  • Características con retraso proporcionan al modelo datos históricos recientes, cruciales para el análisis de series temporales donde los valores pasados a menudo influyen en los resultados futuros. Estas características pueden capturar dependencias a corto plazo y patrones cíclicos, como los efectos del día de la semana en las ventas minoristas o los patrones de la hora del día en el consumo de energía.
  • Características de ventana móvil capturan tendencias y variabilidad a largo plazo, suavizando las fluctuaciones a corto plazo y resaltando patrones más amplios. Son particularmente útiles para identificar estacionalidad, cambios de tendencia y estabilidad general de los datos. Por ejemplo, una media móvil de 30 días puede revelar tendencias mensuales en los mercados financieros.
  • Combinar características con retraso y de ventana móvil equipa a los modelos con perspectivas históricas tanto inmediatas como acumulativas, mejorando su capacidad para realizar predicciones precisas. Esta combinación permite una comprensión más completa de los datos, capturando tanto fluctuaciones a corto plazo como tendencias a largo plazo simultáneamente.
  • Selección y creación de características juegan un papel crucial en la modelización de series temporales. La selección cuidadosa de los períodos de retraso y las ventanas móviles puede mejorar significativamente el rendimiento del modelo. Por ejemplo, en la predicción del mercado de valores, combinar los retornos retrasados de 1 día, 5 días y 20 días con promedios móviles de 10 días y 30 días puede capturar diversas dinámicas del mercado.
  • Manejo de relaciones no lineales es a menudo necesario en el análisis de series temporales. Técnicas como características polinómicas o aplicar transformaciones (p. ej., logarítmica, raíz cuadrada) a las características con retraso y de ventana móvil pueden ayudar a capturar patrones complejos en los datos.

Al aprovechar estas técnicas avanzadas, los analistas pueden desarrollar modelos de series temporales más sofisticados y precisos, lo que lleva a mejoras en el pronóstico y la toma de decisiones en diversos dominios como finanzas, economía y ciencias ambientales.

9.2 Creación de características de desfase y de ventanas móviles

Al analizar datos de series temporales, la incorporación de características de desfase y características de ventanas móviles puede mejorar significativamente la capacidad predictiva de un modelo. Las características de desfase permiten que los modelos utilicen observaciones históricas para hacer pronósticos más precisos, mientras que las características de ventanas móviles proporcionan información invaluable sobre las tendencias y fluctuaciones en intervalos de tiempo específicos.

Estas características sofisticadas son esenciales para descifrar las complejas relaciones entre valores pasados y futuros, especialmente en escenarios donde patrones complejos o variaciones estacionales tienen una gran influencia en los datos.

En esta sección, exploraremos en profundidad las metodologías para crear y utilizar eficazmente características de desfase y de ventanas móviles. Presentaremos una serie de ejemplos prácticos que demuestran su aplicación en escenarios del mundo real, resaltando el impacto transformador que estas técnicas pueden tener en el análisis y la precisión de la previsión de series temporales.

9.2.1 Características de desfase

Una característica de desfase es una técnica poderosa en el análisis de series temporales que implica desplazar los datos originales en un intervalo de tiempo específico. Este proceso introduce valores previos como nuevas características en el conjunto de datos, permitiendo que el modelo aproveche la información histórica para hacer predicciones más precisas. Al incorporar características de desfase, los modelos pueden capturar dependencias y patrones temporales que pueden no ser evidentes en el paso temporal actual.

El concepto de características de desfase es particularmente valioso en escenarios donde los eventos pasados tienen un impacto significativo en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones del día anterior a menudo influyen en los patrones de negociación de hoy. De manera similar, en la predicción meteorológica, los datos de temperatura y precipitación de días anteriores pueden ser cruciales para predecir condiciones futuras.

Al crear características de desfase, es importante considerar el desfase de tiempo apropiado. Este puede variar dependiendo de la naturaleza de los datos y el problema específico a resolver. Por ejemplo, los datos de ventas diarias pueden beneficiarse de desfases de 1, 7 y 30 días para capturar patrones diarios, semanales y mensuales. Al experimentar con diferentes intervalos de desfase, los científicos de datos pueden identificar los puntos de datos históricos más informativos para sus modelos predictivos.

Las características de desfase complementan otras técnicas de series temporales, como las características de ventanas móviles y la descomposición estacional, proporcionando una visión integral de los patrones y tendencias temporales. Cuando se usan de manera juiciosa, pueden mejorar significativamente la capacidad del modelo para discernir relaciones complejas en datos dependientes del tiempo, llevando a predicciones más robustas y precisas en varios dominios.

9.2.2 Creación de características de desfase con Pandas

Profundicemos en el concepto de características de desfase con un ejemplo práctico. Consideremos un conjunto de datos que contiene cifras de ventas diarias de una tienda minorista. Nuestro objetivo es prever las ventas de hoy basándonos en los datos de ventas de los tres días anteriores. Para lograr esto, crearemos características de desfase que capturen esta información histórica:

  • Ventas Desfase-1: Representa las ventas de ayer, proporcionando contexto histórico inmediato.
  • Ventas Desfase-2: Captura las ventas de hace dos días, ofreciendo datos un poco más antiguos pero aún relevantes.
  • Ventas Desfase-3: Incorpora los datos de ventas de hace tres días, ampliando la ventana histórica.

Al incorporar estas características de desfase, habilitamos que nuestro modelo predictivo discierna patrones y relaciones entre cifras de ventas de días consecutivos. Este enfoque es especialmente valioso en escenarios donde el historial reciente de ventas influye significativamente en el desempeño futuro, como en el comercio minorista, donde factores como promociones o tendencias estacionales pueden crear patrones a corto plazo.

Además, usar múltiples períodos de desfase permite que el modelo capture diferentes dinámicas temporales. Por ejemplo:

  • El desfase de 1 día puede capturar fluctuaciones diarias y tendencias inmediatas.
  • El desfase de 2 días podría ayudar a identificar patrones que abarcan fines de semana o promociones cortas.
  • El desfase de 3 días podría revelar tendencias de mayor duración o los efectos de eventos de mitad de semana en las ventas del fin de semana.

Este enfoque de múltiples desfases proporciona un conjunto de características más rico para el modelo, mejorando potencialmente su capacidad para hacer predicciones precisas al considerar un contexto histórico más completo.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Sample sales data
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175,
                  190, 200, 185, 210, 205, 220, 230, 225, 250, 245,
                  260, 270, 255, 280, 275, 290, 300, 295, 320, 315]}
df = pd.DataFrame(data)

# Create lagged features for the previous 1, 2, and 3 days
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag3'] = df['Sales'].shift(3)

# Create rolling features
df['Rolling_Mean_7'] = df['Sales'].rolling(window=7).mean()
df['Rolling_Std_7'] = df['Sales'].rolling(window=7).std()

# Calculate percentage change
df['Pct_Change'] = df['Sales'].pct_change()

# Print the first 10 rows of the dataframe
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df['Date'], df['Sales'], label='Sales')
plt.plot(df['Date'], df['Rolling_Mean_7'], label='7-day Rolling Mean')
plt.fill_between(df['Date'], 
                 df['Rolling_Mean_7'] - df['Rolling_Std_7'],
                 df['Rolling_Mean_7'] + df['Rolling_Std_7'],
                 alpha=0.2, label='7-day Rolling Std Dev')
plt.title('Sales Data with Rolling Mean and Standard Deviation')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# Correlation heatmap
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag2', 'Sales_Lag3', 'Rolling_Mean_7']].corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1, center=0)
plt.title('Correlation Heatmap of Sales and Lagged/Rolling Features')
plt.tight_layout()
plt.show()

# Basic statistics
print("\nBasic Statistics:")
print(df['Sales'].describe())

# Autocorrelation
from pandas.plotting import autocorrelation_plot
plt.figure(figsize=(12, 6))
autocorrelation_plot(df['Sales'])
plt.title('Autocorrelation Plot of Sales')
plt.tight_layout()
plt.show()

Explicación del Desglose de Código:

  1. Preparación de Datos e Ingeniería de Características:
    • Importamos las bibliotecas necesarias: pandas para la manipulación de datos, matplotlib para gráficos básicos y seaborn para visualizaciones avanzadas.
    • Se crea un conjunto de datos de muestra con datos de ventas diarias durante 30 días utilizando la función date_range de pandas.
    • Creamos características rezagadas para 1, 2 y 3 días usando el método shift().
    • Las características de promedio móvil (media y desviación estándar de 7 días) se crean usando el método rolling().
    • Se calcula el cambio porcentual con el método pct_change() para mostrar la tasa de crecimiento diario.
  2. Visualización de Datos:
    • Creamos un gráfico de líneas que muestra los datos de ventas originales, la media móvil de 7 días y el rango de desviación estándar móvil.
    • Esta visualización ayuda a identificar tendencias y volatilidad en los datos de ventas a lo largo del tiempo.
  3. Análisis de Correlación:
    • Se crea un mapa de calor de correlación utilizando seaborn para mostrar las relaciones entre las ventas y las características creadas.
    • Esto ayuda a identificar qué características rezagadas o móviles tienen la correlación más fuerte con las ventas actuales.
  4. Análisis Estadístico:
    • Se imprimen estadísticas descriptivas básicas de los datos de ventas usando el método describe().
    • Se genera un gráfico de autocorrelación para mostrar cómo las ventas se correlacionan con sus propios valores rezagados a lo largo del tiempo.

Este ejemplo integral demuestra varias técnicas para trabajar con datos de series temporales, incluyendo la ingeniería de características, visualización y análisis estadístico. Proporciona información sobre tendencias, patrones y relaciones dentro de los datos de ventas, lo cual puede ser valioso para la previsión y la toma de decisiones en un contexto empresarial.

9.2.3 Uso de Características Rezagadas para Modelado

Las características rezagadas son especialmente valiosas en el análisis de series temporales, especialmente al trabajar con datos que muestran una fuerte autocorrelación. Este fenómeno ocurre cuando los valores pasados tienen una influencia significativa en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones a menudo demuestran esta característica, donde el precio de cierre de ayer sirve como un fuerte indicador para el precio de apertura de hoy. Esto convierte a las características rezagadas en una herramienta esencial para analistas y científicos de datos que trabajan en finanzas, economía y campos relacionados.

El poder de las características rezagadas va más allá de las simples correlaciones día a día. En algunos casos, pueden emerger patrones en intervalos más largos, como ciclos semanales o mensuales. Por ejemplo, los datos de ventas minoristas pueden mostrar correlaciones fuertes con las cifras de ventas del mismo día de la semana anterior, o incluso del mismo mes del año anterior. Al incorporar estas características rezagadas, los modelos pueden captar dependencias temporales complejas que de otro modo podrían pasar desapercibidas.

Consejo Clave: Al implementar características rezagadas, es crucial considerar cuidadosamente el intervalo de retraso. El período de retraso óptimo puede variar significativamente dependiendo de la naturaleza de los datos y los patrones específicos que se desean capturar. Un retraso demasiado corto puede no proporcionar información significativa, introduciendo potencialmente ruido en lugar de señal en el modelo. Por el contrario, un retraso demasiado largo puede perder tendencias recientes importantes o cambios en el comportamiento de los datos.

Para encontrar los intervalos de retraso más efectivos, se recomienda emplear un enfoque sistemático:

  • Aprovechar el conocimiento del dominio: Comienza con tu experiencia específica del sector. Entender los ritmos y ciclos inherentes a tu campo puede proporcionar información valiosa sobre las escalas de tiempo potencialmente relevantes.
  • Realizar análisis de autocorrelación: Utiliza herramientas estadísticas como gráficos de autocorrelación y funciones de autocorrelación parcial (PACF) para identificar períodos de retraso significativos.
  • Implementar experimentación iterativa: Adopta un enfoque metódico para probar diferentes intervalos de retraso y combinaciones. Este proceso implica crear diversas características rezagadas, incorporarlas en tu modelo y evaluar sistemáticamente su impacto en los resultados.
  • Incorporar múltiples escalas de retraso: En lugar de depender de un solo período de retraso, considera usar una combinación de retrasos a corto y largo plazo para obtener una visión más completa de la dinámica temporal.

Siguiendo este enfoque integral, puedes desarrollar un conjunto robusto de características rezagadas que capturan el espectro completo de dependencias temporales en tus datos, mejorando en última instancia las capacidades predictivas de tu modelo.

Al seleccionar y ajustar cuidadosamente tus características rezagadas, puedes mejorar significativamente la capacidad de tu modelo para captar patrones temporales y realizar predicciones precisas en el análisis de series temporales.

9.2.4 Características de Ventana Móvil

Mientras que las características rezagadas se enfocan en valores específicos del pasado, las características de ventana móvil resumen los datos en una ventana en movimiento, proporcionando una visión más integral del comportamiento de los datos. Estas características son instrumentales para capturar tendencias a largo plazo y patrones de volatilidad que podrían pasar desapercibidos al examinar puntos de datos individuales. Al agregar información en un marco de tiempo específico, las características de ventana móvil ofrecen una representación suavizada de los datos, ayudando a filtrar el ruido y resaltar las tendencias subyacentes.

Las características de ventana móvil son particularmente valiosas en el análisis de series temporales por varias razones:

  • Identificación de Tendencias: Las características de ventana móvil son excelentes para revelar patrones a largo plazo que podrían estar ocultos en los datos sin procesar. Al agregar información en el tiempo, pueden descubrir cambios graduales o movimientos sostenidos en los datos. Esta capacidad es invaluable en varios dominios:
    • En análisis financiero, las características de ventana móvil pueden resaltar tendencias de mercado, ayudando a los inversionistas a tomar decisiones informadas sobre la asignación de activos y la gestión de riesgos.
    • Para la previsión meteorológica, pueden revelar patrones climáticos en periodos extendidos, ayudando a predecir fenómenos meteorológicos a largo plazo como eventos de El Niño o La Niña.
    • En estudios económicos, las características de ventana móvil pueden iluminar tendencias macroeconómicas, como cambios en las tasas de crecimiento del PIB o patrones de inflación, que son cruciales para la toma de decisiones políticas y la planificación estratégica.
  • Evaluación de Volatilidad: Calculando la variabilidad dentro de una ventana en movimiento, las características de ventana móvil ofrecen una vista dinámica de la estabilidad de los datos. Esto es particularmente útil en:
    • Evaluación de riesgos financieros, donde entender períodos de turbulencia en el mercado es crucial para la gestión de carteras y la fijación de precios de opciones.
    • Análisis de sistemas complejos, como en estudios ecológicos, donde las fluctuaciones en la dinámica poblacional pueden indicar la salud del ecosistema o cambios inminentes.
    • Análisis en el sector energético, donde la volatilidad en la generación de energía renovable (por ejemplo, eólica o solar) afecta la estabilidad de la red y los precios de la energía.
  • Detección de Estacionalidad: Cuando se aplican estratégicamente, las características de ventana móvil pueden descubrir patrones recurrentes en los datos:
    • En el comercio minorista, pueden ayudar a identificar ciclos de ventas anuales, permitiendo una mejor gestión de inventarios y estrategias de marketing.
    • Para las industrias turísticas, detectar patrones estacionales de visitantes ayuda en la asignación de recursos y estrategias de precios.
    • En la agricultura, reconocer patrones estacionales de rendimiento de cultivos puede informar decisiones de siembra y cosecha.
  • Reducción de Ruido: Al suavizar las fluctuaciones a corto plazo, las características de ventana móvil actúan como un filtro, separando señales significativas del ruido aleatorio:
    • En el procesamiento de señales, esto puede ayudar a extraer señales de audio claras del ruido de fondo.
    • En investigación médica, puede ayudar a identificar tendencias significativas en los datos de pacientes entre variaciones diarias.
    • Para la monitorización ambiental, puede ayudar a distinguir entre la variabilidad natural y los cambios significativos en los niveles de contaminación o métricas de biodiversidad.

Las estadísticas móviles comunes incluyen:

  • Media Móvil (Moving Average): Este indicador calcula el promedio en una ventana específica, suavizando las fluctuaciones a corto plazo y resaltando tendencias a largo plazo. Se usa ampliamente en el análisis técnico de mercados financieros y en modelos de pronóstico. Por ejemplo, en el análisis del mercado de valores, una media móvil de 50 o 200 días puede ayudar a los inversores a identificar tendencias de precios a largo plazo y posibles niveles de soporte o resistencia.
  • Desviación Estándar Móvil: Captura la volatilidad o variabilidad dentro de la ventana, proporcionando una medida de cuán dispersos están los puntos de datos. Es particularmente útil en la evaluación de riesgos y en la identificación de períodos de volatilidad en el mercado. En finanzas, una desviación estándar móvil creciente puede señalar una mayor incertidumbre en el mercado, lo que podría influir en las decisiones de inversión o en las estrategias de gestión de riesgos.
  • Suma Móvil: Proporciona valores acumulados en la ventana, lo cual es especialmente útil para métricas que son significativas cuando se agregan, como las ventas totales en un período o la precipitación acumulada. En análisis empresarial, una suma móvil de ventas mensuales puede ayudar a identificar patrones estacionales o a hacer seguimiento del progreso hacia objetivos trimestrales o anuales.
  • Mediana Móvil: Similar a la media móvil, pero menos sensible a valores atípicos, lo que la hace útil para conjuntos de datos con valores extremos o distribuciones sesgadas. Este indicador es particularmente valioso en campos como el de bienes raíces, donde los precios de las propiedades pueden estar influenciados significativamente por algunas transacciones de alto valor. Una mediana móvil puede proporcionar una representación más estable de las tendencias de precios.
  • Máximo y Mínimo Móvil: Estas características capturan los valores más altos y más bajos dentro de cada ventana, útiles para identificar picos y valles en los datos. En la monitorización ambiental, los máximos y mínimos móviles de temperatura pueden ayudar a rastrear eventos climáticos extremos o tendencias climáticas a largo plazo. En finanzas, estos indicadores pueden usarse para implementar estrategias de negociación basadas en rupturas de precios o niveles de soporte/resistencia.
  • Percentiles Móviles: Estos ofrecen información sobre la distribución de datos dentro de cada ventana. Por ejemplo, un percentil móvil del 90% puede ayudar a identificar productos o empleados de alto rendimiento de manera consistente, mientras que un percentil móvil del 10% podría señalar áreas que necesitan mejora.
  • Correlación Móvil: Este indicador mide la relación entre dos variables en una ventana en movimiento. En la gestión de carteras multi-activo, las correlaciones móviles entre diferentes activos pueden informar estrategias de diversificación y evaluación de riesgos.

Al implementar estas características de ventana móvil, es crucial considerar el tamaño de la ventana con cuidado. Las ventanas más pequeñas serán más sensibles a los cambios recientes pero pueden introducir ruido, mientras que las ventanas más grandes proporcionan una vista más suavizada pero pueden retrasarse con respecto a las tendencias recientes. El tamaño óptimo de la ventana depende a menudo de las características específicas de los datos y de los objetivos del análisis. La experimentación y el conocimiento del dominio son clave para encontrar el equilibrio adecuado para cada aplicación.

Creación de Características de Ventana Móvil con Pandas

Continuemos con nuestros datos de ventas y creemos una media móvil de 7 días y una desviación estándar móvil de 7 días. Estas características móviles ayudan a capturar la tendencia general y la variabilidad en los datos, permitiendo que el modelo considere tanto los promedios recientes como los cambios en la volatilidad.

import pandas as pd
import matplotlib.pyplot as plt

# Sample data with a longer time range for rolling calculations
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175, 165, 170, 185, 190, 200,
                  210, 205, 220, 215, 230, 240, 235, 250, 245, 260, 270, 265, 280, 275, 290]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create rolling features
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()
df['RollingMax_7'] = df['Sales'].rolling(window=7).max()
df['RollingMin_7'] = df['Sales'].rolling(window=7).min()

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag7'] = df['Sales'].shift(7)

# Calculate percent change
df['PercentChange'] = df['Sales'].pct_change()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.fill_between(df.index, df['RollingMin_7'], df['RollingMax_7'], alpha=0.2, label='7-day Range')
plt.title('Sales Data with Rolling Statistics')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'RollingMean_7', 'Sales_Lag1', 'Sales_Lag7']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Este ejemplo de código muestra un enfoque integral para analizar datos de series temporales utilizando pandas y matplotlib. Examinemos los componentes clave y su importancia:

  1. Preparación de los datos:
    • Creamos un conjunto de datos más grande con 30 días de datos de ventas para proporcionar un ejemplo más robusto.
    • La columna 'Date' se establece como el índice del DataFrame, lo cual es una buena práctica para datos de series temporales en pandas.
  2. Características de ventana móvil:
    • Media móvil (ventana de 7 días): Suaviza las fluctuaciones a corto plazo y resalta la tendencia general.
    • Desviación estándar móvil (ventana de 7 días): Captura la volatilidad o variabilidad de las ventas durante la última semana.
    • Máximo y mínimo móvil (ventana de 7 días): Proporcionan información sobre el rango de valores de ventas en la última semana.
  3. Características con retraso:
    • Retraso de 1 día: Permite que el modelo considere las ventas de ayer al predecir las de hoy.
    • Retraso de 7 días: Captura el valor de ventas del mismo día de la semana pasada, potencialmente útil para patrones semanales.
  4. Cambio porcentual:
    • Calcula el cambio porcentual de un día a otro en las ventas, útil para identificar cambios repentinos o tendencias.
  5. Visualización de datos:
    • El gráfico muestra los datos de ventas en bruto, la media móvil de 7 días y el rango entre el mínimo y el máximo móvil de 7 días.
    • Esta visualización ayuda a identificar tendencias, estacionalidad y fluctuaciones inusuales en los datos.
  6. Análisis de correlación:
    • La matriz de correlación muestra las relaciones entre los datos de ventas originales y varias características derivadas.
    • Esto puede ayudar a entender qué características podrían ser más predictivas de futuras ventas.

Al combinar estas técnicas, creamos un conjunto rico de características que capturan diferentes aspectos de los datos de series temporales. Este enfoque integral permite una comprensión más profunda de los patrones y relaciones subyacentes en los datos de ventas, lo cual es invaluable para los procesos de pronóstico y toma de decisiones.

Interpretación de características de ventana móvil

Las características de ventana móvil ofrecen valiosas ideas sobre la dinámica temporal de los datos de series temporales. Al agregar información sobre una ventana específica, estas características brindan una visión matizada de tendencias, volatilidad y patrones que podrían estar ocultos en los datos sin procesar. Analicemos dos características clave de ventana móvil:

  • Media móvil: Como se mencionó antes, esta característica actúa como un mecanismo de suavizado, filtrando el ruido a corto plazo para revelar tendencias subyacentes. Promediando puntos de datos dentro de una ventana móvil, proporciona una visión más clara de la dirección de los datos en el tiempo. Por ejemplo:
    • En los mercados financieros, una media móvil creciente de precios de acciones podría indicar una tendencia alcista, mientras que una decreciente podría sugerir un mercado bajista.
    • Para plataformas de comercio electrónico, una media móvil en aumento de usuarios activos diarios podría señalar un aumento en la participación de usuarios o el éxito de campañas de marketing recientes.
    • En estudios climáticos, una media móvil de temperaturas puede ayudar a identificar tendencias de calentamiento o enfriamiento a largo plazo, suavizando las fluctuaciones diarias y estacionales.
  • Desviación estándar móvil: Como se describió anteriormente, esta métrica captura el grado de variabilidad o dispersión dentro de la ventana móvil. Es particularmente útil para:
    • Evaluación de riesgos en finanzas, donde períodos de alta desviación estándar móvil pueden indicar turbulencia en el mercado o mayor riesgo de inversión.
    • Control de calidad en fabricación, donde picos en la desviación estándar móvil podrían señalar inestabilidad en el proceso o fallos en el equipo.
    • Pronóstico de demanda en el comercio minorista, donde cambios en la desviación estándar móvil de datos de ventas podrían indicar cambios en el comportamiento del consumidor o en la volatilidad del mercado.

Al interpretar estas características de ventana móvil, es crucial considerar el tamaño de la ventana y su impacto en el análisis. Las ventanas más pequeñas responderán mejor a cambios recientes pero pueden introducir ruido, mientras que ventanas más grandes proporcionan una vista más suave pero pueden retrasarse respecto a las tendencias recientes. La elección del tamaño de la ventana debe estar informada por las características específicas de los datos y los objetivos analíticos.

Al aprovechar tanto la media móvil como la desviación estándar móvil, los analistas pueden obtener una comprensión integral tanto de la tendencia central como de la variabilidad en sus datos de series temporales, permitiendo una toma de decisiones más informada y una modelización predictiva más precisa.

9.2.5 Uso práctico de características con retraso y de ventana móvil en pronósticos

Las características con retraso y de ventana móvil mejoran significativamente la capacidad predictiva de un modelo al incorporar contexto temporal. Estas características son especialmente valiosas en dominios donde los datos históricos recientes influyen fuertemente en los resultados a corto plazo. Al capturar tanto los valores inmediatos del pasado como las tendencias a más largo plazo, estas características proporcionan una visión integral de la dinámica temporal de los datos. Aquí hay algunas aplicaciones clave:

  • Mercados financieros: En el comercio de acciones y análisis de inversiones, los promedios móviles y los valores con retraso de precios de acciones son cruciales. Por ejemplo, una media móvil de 50 días puede ayudar a identificar tendencias a largo plazo, mientras que los valores con retraso del día o la semana anteriores pueden capturar el impulso a corto plazo. Estas características se utilizan a menudo en el análisis técnico para generar señales de compra o venta.
  • Pronóstico del tiempo: Los meteorólogos dependen en gran medida de datos de temperatura con retraso y promedios móviles de precipitación. Por ejemplo, los valores de temperatura con retraso de días anteriores pueden ayudar a predecir la temperatura de mañana, mientras que una media móvil de 30 días de precipitación puede indicar tendencias generales de humedad. Estas características son esenciales tanto para predicciones meteorológicas a corto plazo como para análisis climáticos a largo plazo.
  • Predicción de ventas minoristas: En el sector minorista, las ventas diarias o semanales pasadas son predictores críticos de ventas futuras. Una media móvil de 7 días puede suavizar los efectos del día de la semana, mientras que valores con retraso del mismo día de la semana pasada o del año pasado pueden capturar estacionalidad semanal o anual. Estas características son particularmente útiles para la gestión de inventario y decisiones de personal.
  • Pronóstico de consumo energético: Las compañías de servicios públicos utilizan características con retraso y de ventana móvil de datos de consumo energético para predecir la demanda futura. Por ejemplo, un valor con retraso de 24 horas puede capturar patrones diarios, mientras que una media móvil de 7 días puede tener en cuenta tendencias semanales. Esto ayuda a optimizar la generación y distribución de energía.
  • Análisis de tráfico web: Los especialistas en marketing digital y administradores web utilizan estas características para entender y predecir patrones de tráfico web. Los valores con retraso pueden capturar el impacto de campañas de marketing recientes, mientras que los promedios móviles pueden revelar tendencias a más largo plazo en la participación de los usuarios.

Al incorporar estas características, los modelos pueden capturar tanto las fluctuaciones a corto plazo como las tendencias a largo plazo, lo que lleva a predicciones más precisas y robustas en varios dominios.

Combinando características con retraso y de ventana móvil en un modelo de series temporales

Para ilustrar cómo estas características pueden combinarse en un solo conjunto de datos, apliquemos tanto características con retraso como de ventana móvil a nuestros datos de Ventas.

import pandas as pd
import matplotlib.pyplot as plt

# Create sample data
data = {'Date': pd.date_range(start='2023-01-01', periods=60, freq='D'),
        'Sales': [100 + i + 10 * (i % 7 == 5) + 20 * (i % 30 < 3) + np.random.randint(-10, 11) for i in range(60)]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag7'] = df['Sales'].shift(7)  # Weekly lag

# Create rolling features
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()

# Create percentage change
df['PctChange'] = df['Sales'].pct_change()

# Create expanding features
df['ExpandingMean'] = df['Sales'].expanding().mean()
df['ExpandingMax'] = df['Sales'].expanding().max()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.plot(df.index, df['ExpandingMean'], label='Expanding Mean')
plt.fill_between(df.index, df['Sales'] - df['RollingStd_7'], 
                 df['Sales'] + df['RollingStd_7'], alpha=0.2, label='7-day Rolling Std')
plt.title('Sales Data with Time Series Features')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag7', 'RollingMean_7', 'PctChange']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Desglose del código:

  1. Creación de datos:
    • Generamos 60 días de datos sintéticos de ventas con patrones semanales y mensuales, más ruido aleatorio.
    • Esto simula datos de ventas del mundo real con tendencias y estacionalidad.
  2. Características con retraso:
    • Sales_Lag1 y Sales_Lag2: Capturan dependencias a corto plazo.
    • Sales_Lag7: Captura patrones semanales, útil para identificar efectos del día de la semana.
  3. Características de ventana móvil:
    • RollingMean_3 y RollingMean_7: Suavizan las fluctuaciones a corto plazo, revelando tendencias.
    • RollingStd_3 y RollingStd_7: Capturan la volatilidad a corto plazo y semanal en las ventas.
  4. Cambio porcentual:
    • PctChange: Muestra la tasa de crecimiento día a día, útil para identificar cambios repentinos.
  5. Características de expansión:
    • ExpandingMean: Promedio acumulativo, útil para análisis de tendencias a largo plazo.
    • ExpandingMax: Máximo acumulativo, ayuda a identificar récords generales de ventas.
  6. Visualización:
    • Grafica las ventas en bruto, la media móvil de 7 días y la media expansiva para mostrar diferentes perspectivas de tendencias.
    • Utiliza fill_between para visualizar la desviación estándar móvil de 7 días, indicando volatilidad.
  7. Análisis de correlación:
    • Calcula correlaciones entre características clave para entender sus relaciones.
    • Ayuda a identificar qué características podrían ser más predictivas de ventas futuras.

Este ejemplo integral demuestra varias características de series temporales y su visualización, proporcionando una base sólida para tareas de análisis y pronóstico de series temporales.

9.2.6 Consideraciones al utilizar características con retraso y de ventana móvil

Manejo de valores faltantes:

La introducción de características con retraso y de ventana móvil inevitablemente conduce a valores faltantes al inicio del conjunto de datos. Esto ocurre porque estas características dependen de puntos de datos anteriores que no existen para las observaciones iniciales. Por ejemplo, una media móvil de 7 días resultará en valores NaN (No es un Número) para las primeras 6 filas, ya que no hay suficientes datos previos para calcular la media.

Estos valores faltantes representan un desafío para muchos algoritmos de aprendizaje automático y modelos estadísticos, que a menudo requieren conjuntos de datos completos para funcionar correctamente. Por lo tanto, abordar estos valores faltantes es crucial para mantener la integridad de los datos y asegurar la confiabilidad de tu análisis.

  • Soluciones:
    • Eliminación de datos: Un enfoque es simplemente eliminar las filas que contienen valores faltantes. Aunque sencillo, este método puede llevar a la pérdida de datos potencialmente valiosos, especialmente si el conjunto de datos es pequeño.
    • Relleno hacia adelante: Este método propaga la última observación válida hacia adelante para llenar los valores NaN. Es particularmente útil cuando se cree que los valores faltantes serían similares al valor conocido más reciente.
    • Relleno hacia atrás: A la inversa, este enfoque utiliza valores futuros conocidos para completar los datos faltantes. Puede ser apropiado cuando se cree que los valores futuros son buenos sustitutos para los datos faltantes.
    • Interpolación: Para datos de series temporales, se pueden utilizar varios métodos de interpolación (lineal, polinómica, spline) para estimar valores faltantes basándose en los patrones de los datos existentes.

La elección del método depende de tu conjunto de datos específico, la naturaleza de tu análisis y los requisitos de tu modelo. A menudo es beneficioso experimentar con diferentes enfoques y evaluar su impacto en el rendimiento del modelo.

Elegir el tamaño de ventana adecuado:

El tamaño de la ventana para las características de ventana móvil es un parámetro crítico que impacta significativamente en el análisis de datos de series temporales. Determina la cantidad de puntos de datos utilizados en el cálculo de estadísticas móviles, como medias o desviaciones estándar. La elección del tamaño de ventana depende de varios factores:

  • Frecuencia de datos: Los datos de alta frecuencia (p. ej., cada hora) pueden requerir tamaños de ventana más grandes en comparación con los datos de baja frecuencia (p. ej., mensuales) para capturar patrones significativos.
  • Patrones esperados: Si se anticipan patrones semanales, una ventana de 7 días podría ser apropiada. Para patrones mensuales, una ventana de 30 días podría ser más adecuada.
  • Nivel de ruido: Los datos con más ruido podrían beneficiarse de tamaños de ventana más grandes para suavizar las fluctuaciones y revelar tendencias subyacentes.
  • Objetivo del análisis: Los pronósticos a corto plazo pueden requerir ventanas más pequeñas, mientras que el análisis de tendencias a largo plazo podría beneficiarse de ventanas más grandes.

Las ventanas cortas son más receptivas a cambios recientes y pueden capturar fluctuaciones rápidas, siendo útiles para detectar cambios o anomalías repentinas. Sin embargo, pueden ser más susceptibles al ruido. Por el contrario, las ventanas largas ofrecen una representación más suave de los datos, resaltando tendencias generales pero potencialmente perdiendo variaciones a corto plazo.

  • Consejo: Experimenta con diferentes tamaños de ventana para encontrar el mejor ajuste para tu conjunto de datos y objetivos. Considera utilizar múltiples tamaños de ventana en tu análisis para capturar patrones tanto a corto como a largo plazo. Además, puedes emplear técnicas como la validación cruzada para evaluar sistemáticamente el rendimiento de diferentes tamaños de ventana en tu contexto específico.

Evitar la fuga de datos:

Al trabajar con datos de series temporales y utilizar características con retraso, es crucial evitar la fuga de datos. Esto ocurre cuando la información del futuro influye inadvertidamente en el modelo durante el entrenamiento o prueba, lo que lleva a resultados de rendimiento demasiado optimistas. En el contexto del análisis de series temporales, la fuga de datos puede ocurrir si el modelo tiene acceso a puntos de datos futuros que no estarían disponibles en un escenario de predicción del mundo real.

Por ejemplo, si estás tratando de predecir el precio de las acciones de mañana usando el precio de hoy como una característica, debes asegurarte de que el modelo no tenga acceso a ninguna información más allá del día actual al hacer predicciones. Este principio se extiende a características más complejas como medias móviles u otras métricas derivadas.

  • Soluciones para prevenir la fuga de datos:
    • Ingeniería de características cuidadosa: Al crear características con retraso, asegúrate de que solo incorporen datos pasados en relación con el punto de predicción.
    • División adecuada de entrenamiento y prueba: En datos de series temporales, siempre divide los datos cronológicamente, con el conjunto de entrenamiento precediendo al conjunto de prueba.
    • Validación cruzada basada en tiempo: Utiliza técnicas como el encadenamiento hacia adelante o la validación cruzada de ventana deslizante que respetan el orden temporal de los datos.
    • Cálculo de características dentro de los pliegues: Recalcula las características dependientes del tiempo (como medias móviles) dentro de cada pliegue de validación cruzada para evitar el uso de información futura.

Implementando estas estrategias, puedes mantener la integridad de tu modelo de series temporales y asegurarte de que sus métricas de rendimiento reflejen con precisión sus capacidades predictivas en el mundo real. Recuerda, el objetivo es simular las condiciones reales en las que el modelo será desplegado, donde los datos futuros son realmente desconocidos.

9.2.7 Puntos clave y aplicaciones avanzadas

  • Características con retraso proporcionan al modelo datos históricos recientes, cruciales para el análisis de series temporales donde los valores pasados a menudo influyen en los resultados futuros. Estas características pueden capturar dependencias a corto plazo y patrones cíclicos, como los efectos del día de la semana en las ventas minoristas o los patrones de la hora del día en el consumo de energía.
  • Características de ventana móvil capturan tendencias y variabilidad a largo plazo, suavizando las fluctuaciones a corto plazo y resaltando patrones más amplios. Son particularmente útiles para identificar estacionalidad, cambios de tendencia y estabilidad general de los datos. Por ejemplo, una media móvil de 30 días puede revelar tendencias mensuales en los mercados financieros.
  • Combinar características con retraso y de ventana móvil equipa a los modelos con perspectivas históricas tanto inmediatas como acumulativas, mejorando su capacidad para realizar predicciones precisas. Esta combinación permite una comprensión más completa de los datos, capturando tanto fluctuaciones a corto plazo como tendencias a largo plazo simultáneamente.
  • Selección y creación de características juegan un papel crucial en la modelización de series temporales. La selección cuidadosa de los períodos de retraso y las ventanas móviles puede mejorar significativamente el rendimiento del modelo. Por ejemplo, en la predicción del mercado de valores, combinar los retornos retrasados de 1 día, 5 días y 20 días con promedios móviles de 10 días y 30 días puede capturar diversas dinámicas del mercado.
  • Manejo de relaciones no lineales es a menudo necesario en el análisis de series temporales. Técnicas como características polinómicas o aplicar transformaciones (p. ej., logarítmica, raíz cuadrada) a las características con retraso y de ventana móvil pueden ayudar a capturar patrones complejos en los datos.

Al aprovechar estas técnicas avanzadas, los analistas pueden desarrollar modelos de series temporales más sofisticados y precisos, lo que lleva a mejoras en el pronóstico y la toma de decisiones en diversos dominios como finanzas, economía y ciencias ambientales.

9.2 Creación de características de desfase y de ventanas móviles

Al analizar datos de series temporales, la incorporación de características de desfase y características de ventanas móviles puede mejorar significativamente la capacidad predictiva de un modelo. Las características de desfase permiten que los modelos utilicen observaciones históricas para hacer pronósticos más precisos, mientras que las características de ventanas móviles proporcionan información invaluable sobre las tendencias y fluctuaciones en intervalos de tiempo específicos.

Estas características sofisticadas son esenciales para descifrar las complejas relaciones entre valores pasados y futuros, especialmente en escenarios donde patrones complejos o variaciones estacionales tienen una gran influencia en los datos.

En esta sección, exploraremos en profundidad las metodologías para crear y utilizar eficazmente características de desfase y de ventanas móviles. Presentaremos una serie de ejemplos prácticos que demuestran su aplicación en escenarios del mundo real, resaltando el impacto transformador que estas técnicas pueden tener en el análisis y la precisión de la previsión de series temporales.

9.2.1 Características de desfase

Una característica de desfase es una técnica poderosa en el análisis de series temporales que implica desplazar los datos originales en un intervalo de tiempo específico. Este proceso introduce valores previos como nuevas características en el conjunto de datos, permitiendo que el modelo aproveche la información histórica para hacer predicciones más precisas. Al incorporar características de desfase, los modelos pueden capturar dependencias y patrones temporales que pueden no ser evidentes en el paso temporal actual.

El concepto de características de desfase es particularmente valioso en escenarios donde los eventos pasados tienen un impacto significativo en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones del día anterior a menudo influyen en los patrones de negociación de hoy. De manera similar, en la predicción meteorológica, los datos de temperatura y precipitación de días anteriores pueden ser cruciales para predecir condiciones futuras.

Al crear características de desfase, es importante considerar el desfase de tiempo apropiado. Este puede variar dependiendo de la naturaleza de los datos y el problema específico a resolver. Por ejemplo, los datos de ventas diarias pueden beneficiarse de desfases de 1, 7 y 30 días para capturar patrones diarios, semanales y mensuales. Al experimentar con diferentes intervalos de desfase, los científicos de datos pueden identificar los puntos de datos históricos más informativos para sus modelos predictivos.

Las características de desfase complementan otras técnicas de series temporales, como las características de ventanas móviles y la descomposición estacional, proporcionando una visión integral de los patrones y tendencias temporales. Cuando se usan de manera juiciosa, pueden mejorar significativamente la capacidad del modelo para discernir relaciones complejas en datos dependientes del tiempo, llevando a predicciones más robustas y precisas en varios dominios.

9.2.2 Creación de características de desfase con Pandas

Profundicemos en el concepto de características de desfase con un ejemplo práctico. Consideremos un conjunto de datos que contiene cifras de ventas diarias de una tienda minorista. Nuestro objetivo es prever las ventas de hoy basándonos en los datos de ventas de los tres días anteriores. Para lograr esto, crearemos características de desfase que capturen esta información histórica:

  • Ventas Desfase-1: Representa las ventas de ayer, proporcionando contexto histórico inmediato.
  • Ventas Desfase-2: Captura las ventas de hace dos días, ofreciendo datos un poco más antiguos pero aún relevantes.
  • Ventas Desfase-3: Incorpora los datos de ventas de hace tres días, ampliando la ventana histórica.

Al incorporar estas características de desfase, habilitamos que nuestro modelo predictivo discierna patrones y relaciones entre cifras de ventas de días consecutivos. Este enfoque es especialmente valioso en escenarios donde el historial reciente de ventas influye significativamente en el desempeño futuro, como en el comercio minorista, donde factores como promociones o tendencias estacionales pueden crear patrones a corto plazo.

Además, usar múltiples períodos de desfase permite que el modelo capture diferentes dinámicas temporales. Por ejemplo:

  • El desfase de 1 día puede capturar fluctuaciones diarias y tendencias inmediatas.
  • El desfase de 2 días podría ayudar a identificar patrones que abarcan fines de semana o promociones cortas.
  • El desfase de 3 días podría revelar tendencias de mayor duración o los efectos de eventos de mitad de semana en las ventas del fin de semana.

Este enfoque de múltiples desfases proporciona un conjunto de características más rico para el modelo, mejorando potencialmente su capacidad para hacer predicciones precisas al considerar un contexto histórico más completo.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Sample sales data
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175,
                  190, 200, 185, 210, 205, 220, 230, 225, 250, 245,
                  260, 270, 255, 280, 275, 290, 300, 295, 320, 315]}
df = pd.DataFrame(data)

# Create lagged features for the previous 1, 2, and 3 days
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag3'] = df['Sales'].shift(3)

# Create rolling features
df['Rolling_Mean_7'] = df['Sales'].rolling(window=7).mean()
df['Rolling_Std_7'] = df['Sales'].rolling(window=7).std()

# Calculate percentage change
df['Pct_Change'] = df['Sales'].pct_change()

# Print the first 10 rows of the dataframe
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df['Date'], df['Sales'], label='Sales')
plt.plot(df['Date'], df['Rolling_Mean_7'], label='7-day Rolling Mean')
plt.fill_between(df['Date'], 
                 df['Rolling_Mean_7'] - df['Rolling_Std_7'],
                 df['Rolling_Mean_7'] + df['Rolling_Std_7'],
                 alpha=0.2, label='7-day Rolling Std Dev')
plt.title('Sales Data with Rolling Mean and Standard Deviation')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

# Correlation heatmap
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag2', 'Sales_Lag3', 'Rolling_Mean_7']].corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1, center=0)
plt.title('Correlation Heatmap of Sales and Lagged/Rolling Features')
plt.tight_layout()
plt.show()

# Basic statistics
print("\nBasic Statistics:")
print(df['Sales'].describe())

# Autocorrelation
from pandas.plotting import autocorrelation_plot
plt.figure(figsize=(12, 6))
autocorrelation_plot(df['Sales'])
plt.title('Autocorrelation Plot of Sales')
plt.tight_layout()
plt.show()

Explicación del Desglose de Código:

  1. Preparación de Datos e Ingeniería de Características:
    • Importamos las bibliotecas necesarias: pandas para la manipulación de datos, matplotlib para gráficos básicos y seaborn para visualizaciones avanzadas.
    • Se crea un conjunto de datos de muestra con datos de ventas diarias durante 30 días utilizando la función date_range de pandas.
    • Creamos características rezagadas para 1, 2 y 3 días usando el método shift().
    • Las características de promedio móvil (media y desviación estándar de 7 días) se crean usando el método rolling().
    • Se calcula el cambio porcentual con el método pct_change() para mostrar la tasa de crecimiento diario.
  2. Visualización de Datos:
    • Creamos un gráfico de líneas que muestra los datos de ventas originales, la media móvil de 7 días y el rango de desviación estándar móvil.
    • Esta visualización ayuda a identificar tendencias y volatilidad en los datos de ventas a lo largo del tiempo.
  3. Análisis de Correlación:
    • Se crea un mapa de calor de correlación utilizando seaborn para mostrar las relaciones entre las ventas y las características creadas.
    • Esto ayuda a identificar qué características rezagadas o móviles tienen la correlación más fuerte con las ventas actuales.
  4. Análisis Estadístico:
    • Se imprimen estadísticas descriptivas básicas de los datos de ventas usando el método describe().
    • Se genera un gráfico de autocorrelación para mostrar cómo las ventas se correlacionan con sus propios valores rezagados a lo largo del tiempo.

Este ejemplo integral demuestra varias técnicas para trabajar con datos de series temporales, incluyendo la ingeniería de características, visualización y análisis estadístico. Proporciona información sobre tendencias, patrones y relaciones dentro de los datos de ventas, lo cual puede ser valioso para la previsión y la toma de decisiones en un contexto empresarial.

9.2.3 Uso de Características Rezagadas para Modelado

Las características rezagadas son especialmente valiosas en el análisis de series temporales, especialmente al trabajar con datos que muestran una fuerte autocorrelación. Este fenómeno ocurre cuando los valores pasados tienen una influencia significativa en los resultados futuros. Por ejemplo, en los mercados financieros, los precios de las acciones a menudo demuestran esta característica, donde el precio de cierre de ayer sirve como un fuerte indicador para el precio de apertura de hoy. Esto convierte a las características rezagadas en una herramienta esencial para analistas y científicos de datos que trabajan en finanzas, economía y campos relacionados.

El poder de las características rezagadas va más allá de las simples correlaciones día a día. En algunos casos, pueden emerger patrones en intervalos más largos, como ciclos semanales o mensuales. Por ejemplo, los datos de ventas minoristas pueden mostrar correlaciones fuertes con las cifras de ventas del mismo día de la semana anterior, o incluso del mismo mes del año anterior. Al incorporar estas características rezagadas, los modelos pueden captar dependencias temporales complejas que de otro modo podrían pasar desapercibidas.

Consejo Clave: Al implementar características rezagadas, es crucial considerar cuidadosamente el intervalo de retraso. El período de retraso óptimo puede variar significativamente dependiendo de la naturaleza de los datos y los patrones específicos que se desean capturar. Un retraso demasiado corto puede no proporcionar información significativa, introduciendo potencialmente ruido en lugar de señal en el modelo. Por el contrario, un retraso demasiado largo puede perder tendencias recientes importantes o cambios en el comportamiento de los datos.

Para encontrar los intervalos de retraso más efectivos, se recomienda emplear un enfoque sistemático:

  • Aprovechar el conocimiento del dominio: Comienza con tu experiencia específica del sector. Entender los ritmos y ciclos inherentes a tu campo puede proporcionar información valiosa sobre las escalas de tiempo potencialmente relevantes.
  • Realizar análisis de autocorrelación: Utiliza herramientas estadísticas como gráficos de autocorrelación y funciones de autocorrelación parcial (PACF) para identificar períodos de retraso significativos.
  • Implementar experimentación iterativa: Adopta un enfoque metódico para probar diferentes intervalos de retraso y combinaciones. Este proceso implica crear diversas características rezagadas, incorporarlas en tu modelo y evaluar sistemáticamente su impacto en los resultados.
  • Incorporar múltiples escalas de retraso: En lugar de depender de un solo período de retraso, considera usar una combinación de retrasos a corto y largo plazo para obtener una visión más completa de la dinámica temporal.

Siguiendo este enfoque integral, puedes desarrollar un conjunto robusto de características rezagadas que capturan el espectro completo de dependencias temporales en tus datos, mejorando en última instancia las capacidades predictivas de tu modelo.

Al seleccionar y ajustar cuidadosamente tus características rezagadas, puedes mejorar significativamente la capacidad de tu modelo para captar patrones temporales y realizar predicciones precisas en el análisis de series temporales.

9.2.4 Características de Ventana Móvil

Mientras que las características rezagadas se enfocan en valores específicos del pasado, las características de ventana móvil resumen los datos en una ventana en movimiento, proporcionando una visión más integral del comportamiento de los datos. Estas características son instrumentales para capturar tendencias a largo plazo y patrones de volatilidad que podrían pasar desapercibidos al examinar puntos de datos individuales. Al agregar información en un marco de tiempo específico, las características de ventana móvil ofrecen una representación suavizada de los datos, ayudando a filtrar el ruido y resaltar las tendencias subyacentes.

Las características de ventana móvil son particularmente valiosas en el análisis de series temporales por varias razones:

  • Identificación de Tendencias: Las características de ventana móvil son excelentes para revelar patrones a largo plazo que podrían estar ocultos en los datos sin procesar. Al agregar información en el tiempo, pueden descubrir cambios graduales o movimientos sostenidos en los datos. Esta capacidad es invaluable en varios dominios:
    • En análisis financiero, las características de ventana móvil pueden resaltar tendencias de mercado, ayudando a los inversionistas a tomar decisiones informadas sobre la asignación de activos y la gestión de riesgos.
    • Para la previsión meteorológica, pueden revelar patrones climáticos en periodos extendidos, ayudando a predecir fenómenos meteorológicos a largo plazo como eventos de El Niño o La Niña.
    • En estudios económicos, las características de ventana móvil pueden iluminar tendencias macroeconómicas, como cambios en las tasas de crecimiento del PIB o patrones de inflación, que son cruciales para la toma de decisiones políticas y la planificación estratégica.
  • Evaluación de Volatilidad: Calculando la variabilidad dentro de una ventana en movimiento, las características de ventana móvil ofrecen una vista dinámica de la estabilidad de los datos. Esto es particularmente útil en:
    • Evaluación de riesgos financieros, donde entender períodos de turbulencia en el mercado es crucial para la gestión de carteras y la fijación de precios de opciones.
    • Análisis de sistemas complejos, como en estudios ecológicos, donde las fluctuaciones en la dinámica poblacional pueden indicar la salud del ecosistema o cambios inminentes.
    • Análisis en el sector energético, donde la volatilidad en la generación de energía renovable (por ejemplo, eólica o solar) afecta la estabilidad de la red y los precios de la energía.
  • Detección de Estacionalidad: Cuando se aplican estratégicamente, las características de ventana móvil pueden descubrir patrones recurrentes en los datos:
    • En el comercio minorista, pueden ayudar a identificar ciclos de ventas anuales, permitiendo una mejor gestión de inventarios y estrategias de marketing.
    • Para las industrias turísticas, detectar patrones estacionales de visitantes ayuda en la asignación de recursos y estrategias de precios.
    • En la agricultura, reconocer patrones estacionales de rendimiento de cultivos puede informar decisiones de siembra y cosecha.
  • Reducción de Ruido: Al suavizar las fluctuaciones a corto plazo, las características de ventana móvil actúan como un filtro, separando señales significativas del ruido aleatorio:
    • En el procesamiento de señales, esto puede ayudar a extraer señales de audio claras del ruido de fondo.
    • En investigación médica, puede ayudar a identificar tendencias significativas en los datos de pacientes entre variaciones diarias.
    • Para la monitorización ambiental, puede ayudar a distinguir entre la variabilidad natural y los cambios significativos en los niveles de contaminación o métricas de biodiversidad.

Las estadísticas móviles comunes incluyen:

  • Media Móvil (Moving Average): Este indicador calcula el promedio en una ventana específica, suavizando las fluctuaciones a corto plazo y resaltando tendencias a largo plazo. Se usa ampliamente en el análisis técnico de mercados financieros y en modelos de pronóstico. Por ejemplo, en el análisis del mercado de valores, una media móvil de 50 o 200 días puede ayudar a los inversores a identificar tendencias de precios a largo plazo y posibles niveles de soporte o resistencia.
  • Desviación Estándar Móvil: Captura la volatilidad o variabilidad dentro de la ventana, proporcionando una medida de cuán dispersos están los puntos de datos. Es particularmente útil en la evaluación de riesgos y en la identificación de períodos de volatilidad en el mercado. En finanzas, una desviación estándar móvil creciente puede señalar una mayor incertidumbre en el mercado, lo que podría influir en las decisiones de inversión o en las estrategias de gestión de riesgos.
  • Suma Móvil: Proporciona valores acumulados en la ventana, lo cual es especialmente útil para métricas que son significativas cuando se agregan, como las ventas totales en un período o la precipitación acumulada. En análisis empresarial, una suma móvil de ventas mensuales puede ayudar a identificar patrones estacionales o a hacer seguimiento del progreso hacia objetivos trimestrales o anuales.
  • Mediana Móvil: Similar a la media móvil, pero menos sensible a valores atípicos, lo que la hace útil para conjuntos de datos con valores extremos o distribuciones sesgadas. Este indicador es particularmente valioso en campos como el de bienes raíces, donde los precios de las propiedades pueden estar influenciados significativamente por algunas transacciones de alto valor. Una mediana móvil puede proporcionar una representación más estable de las tendencias de precios.
  • Máximo y Mínimo Móvil: Estas características capturan los valores más altos y más bajos dentro de cada ventana, útiles para identificar picos y valles en los datos. En la monitorización ambiental, los máximos y mínimos móviles de temperatura pueden ayudar a rastrear eventos climáticos extremos o tendencias climáticas a largo plazo. En finanzas, estos indicadores pueden usarse para implementar estrategias de negociación basadas en rupturas de precios o niveles de soporte/resistencia.
  • Percentiles Móviles: Estos ofrecen información sobre la distribución de datos dentro de cada ventana. Por ejemplo, un percentil móvil del 90% puede ayudar a identificar productos o empleados de alto rendimiento de manera consistente, mientras que un percentil móvil del 10% podría señalar áreas que necesitan mejora.
  • Correlación Móvil: Este indicador mide la relación entre dos variables en una ventana en movimiento. En la gestión de carteras multi-activo, las correlaciones móviles entre diferentes activos pueden informar estrategias de diversificación y evaluación de riesgos.

Al implementar estas características de ventana móvil, es crucial considerar el tamaño de la ventana con cuidado. Las ventanas más pequeñas serán más sensibles a los cambios recientes pero pueden introducir ruido, mientras que las ventanas más grandes proporcionan una vista más suavizada pero pueden retrasarse con respecto a las tendencias recientes. El tamaño óptimo de la ventana depende a menudo de las características específicas de los datos y de los objetivos del análisis. La experimentación y el conocimiento del dominio son clave para encontrar el equilibrio adecuado para cada aplicación.

Creación de Características de Ventana Móvil con Pandas

Continuemos con nuestros datos de ventas y creemos una media móvil de 7 días y una desviación estándar móvil de 7 días. Estas características móviles ayudan a capturar la tendencia general y la variabilidad en los datos, permitiendo que el modelo considere tanto los promedios recientes como los cambios en la volatilidad.

import pandas as pd
import matplotlib.pyplot as plt

# Sample data with a longer time range for rolling calculations
data = {'Date': pd.date_range(start='2022-01-01', periods=30, freq='D'),
        'Sales': [100, 120, 110, 140, 135, 150, 160, 155, 180, 175, 165, 170, 185, 190, 200,
                  210, 205, 220, 215, 230, 240, 235, 250, 245, 260, 270, 265, 280, 275, 290]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create rolling features
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()
df['RollingMax_7'] = df['Sales'].rolling(window=7).max()
df['RollingMin_7'] = df['Sales'].rolling(window=7).min()

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag7'] = df['Sales'].shift(7)

# Calculate percent change
df['PercentChange'] = df['Sales'].pct_change()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.fill_between(df.index, df['RollingMin_7'], df['RollingMax_7'], alpha=0.2, label='7-day Range')
plt.title('Sales Data with Rolling Statistics')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'RollingMean_7', 'Sales_Lag1', 'Sales_Lag7']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Este ejemplo de código muestra un enfoque integral para analizar datos de series temporales utilizando pandas y matplotlib. Examinemos los componentes clave y su importancia:

  1. Preparación de los datos:
    • Creamos un conjunto de datos más grande con 30 días de datos de ventas para proporcionar un ejemplo más robusto.
    • La columna 'Date' se establece como el índice del DataFrame, lo cual es una buena práctica para datos de series temporales en pandas.
  2. Características de ventana móvil:
    • Media móvil (ventana de 7 días): Suaviza las fluctuaciones a corto plazo y resalta la tendencia general.
    • Desviación estándar móvil (ventana de 7 días): Captura la volatilidad o variabilidad de las ventas durante la última semana.
    • Máximo y mínimo móvil (ventana de 7 días): Proporcionan información sobre el rango de valores de ventas en la última semana.
  3. Características con retraso:
    • Retraso de 1 día: Permite que el modelo considere las ventas de ayer al predecir las de hoy.
    • Retraso de 7 días: Captura el valor de ventas del mismo día de la semana pasada, potencialmente útil para patrones semanales.
  4. Cambio porcentual:
    • Calcula el cambio porcentual de un día a otro en las ventas, útil para identificar cambios repentinos o tendencias.
  5. Visualización de datos:
    • El gráfico muestra los datos de ventas en bruto, la media móvil de 7 días y el rango entre el mínimo y el máximo móvil de 7 días.
    • Esta visualización ayuda a identificar tendencias, estacionalidad y fluctuaciones inusuales en los datos.
  6. Análisis de correlación:
    • La matriz de correlación muestra las relaciones entre los datos de ventas originales y varias características derivadas.
    • Esto puede ayudar a entender qué características podrían ser más predictivas de futuras ventas.

Al combinar estas técnicas, creamos un conjunto rico de características que capturan diferentes aspectos de los datos de series temporales. Este enfoque integral permite una comprensión más profunda de los patrones y relaciones subyacentes en los datos de ventas, lo cual es invaluable para los procesos de pronóstico y toma de decisiones.

Interpretación de características de ventana móvil

Las características de ventana móvil ofrecen valiosas ideas sobre la dinámica temporal de los datos de series temporales. Al agregar información sobre una ventana específica, estas características brindan una visión matizada de tendencias, volatilidad y patrones que podrían estar ocultos en los datos sin procesar. Analicemos dos características clave de ventana móvil:

  • Media móvil: Como se mencionó antes, esta característica actúa como un mecanismo de suavizado, filtrando el ruido a corto plazo para revelar tendencias subyacentes. Promediando puntos de datos dentro de una ventana móvil, proporciona una visión más clara de la dirección de los datos en el tiempo. Por ejemplo:
    • En los mercados financieros, una media móvil creciente de precios de acciones podría indicar una tendencia alcista, mientras que una decreciente podría sugerir un mercado bajista.
    • Para plataformas de comercio electrónico, una media móvil en aumento de usuarios activos diarios podría señalar un aumento en la participación de usuarios o el éxito de campañas de marketing recientes.
    • En estudios climáticos, una media móvil de temperaturas puede ayudar a identificar tendencias de calentamiento o enfriamiento a largo plazo, suavizando las fluctuaciones diarias y estacionales.
  • Desviación estándar móvil: Como se describió anteriormente, esta métrica captura el grado de variabilidad o dispersión dentro de la ventana móvil. Es particularmente útil para:
    • Evaluación de riesgos en finanzas, donde períodos de alta desviación estándar móvil pueden indicar turbulencia en el mercado o mayor riesgo de inversión.
    • Control de calidad en fabricación, donde picos en la desviación estándar móvil podrían señalar inestabilidad en el proceso o fallos en el equipo.
    • Pronóstico de demanda en el comercio minorista, donde cambios en la desviación estándar móvil de datos de ventas podrían indicar cambios en el comportamiento del consumidor o en la volatilidad del mercado.

Al interpretar estas características de ventana móvil, es crucial considerar el tamaño de la ventana y su impacto en el análisis. Las ventanas más pequeñas responderán mejor a cambios recientes pero pueden introducir ruido, mientras que ventanas más grandes proporcionan una vista más suave pero pueden retrasarse respecto a las tendencias recientes. La elección del tamaño de la ventana debe estar informada por las características específicas de los datos y los objetivos analíticos.

Al aprovechar tanto la media móvil como la desviación estándar móvil, los analistas pueden obtener una comprensión integral tanto de la tendencia central como de la variabilidad en sus datos de series temporales, permitiendo una toma de decisiones más informada y una modelización predictiva más precisa.

9.2.5 Uso práctico de características con retraso y de ventana móvil en pronósticos

Las características con retraso y de ventana móvil mejoran significativamente la capacidad predictiva de un modelo al incorporar contexto temporal. Estas características son especialmente valiosas en dominios donde los datos históricos recientes influyen fuertemente en los resultados a corto plazo. Al capturar tanto los valores inmediatos del pasado como las tendencias a más largo plazo, estas características proporcionan una visión integral de la dinámica temporal de los datos. Aquí hay algunas aplicaciones clave:

  • Mercados financieros: En el comercio de acciones y análisis de inversiones, los promedios móviles y los valores con retraso de precios de acciones son cruciales. Por ejemplo, una media móvil de 50 días puede ayudar a identificar tendencias a largo plazo, mientras que los valores con retraso del día o la semana anteriores pueden capturar el impulso a corto plazo. Estas características se utilizan a menudo en el análisis técnico para generar señales de compra o venta.
  • Pronóstico del tiempo: Los meteorólogos dependen en gran medida de datos de temperatura con retraso y promedios móviles de precipitación. Por ejemplo, los valores de temperatura con retraso de días anteriores pueden ayudar a predecir la temperatura de mañana, mientras que una media móvil de 30 días de precipitación puede indicar tendencias generales de humedad. Estas características son esenciales tanto para predicciones meteorológicas a corto plazo como para análisis climáticos a largo plazo.
  • Predicción de ventas minoristas: En el sector minorista, las ventas diarias o semanales pasadas son predictores críticos de ventas futuras. Una media móvil de 7 días puede suavizar los efectos del día de la semana, mientras que valores con retraso del mismo día de la semana pasada o del año pasado pueden capturar estacionalidad semanal o anual. Estas características son particularmente útiles para la gestión de inventario y decisiones de personal.
  • Pronóstico de consumo energético: Las compañías de servicios públicos utilizan características con retraso y de ventana móvil de datos de consumo energético para predecir la demanda futura. Por ejemplo, un valor con retraso de 24 horas puede capturar patrones diarios, mientras que una media móvil de 7 días puede tener en cuenta tendencias semanales. Esto ayuda a optimizar la generación y distribución de energía.
  • Análisis de tráfico web: Los especialistas en marketing digital y administradores web utilizan estas características para entender y predecir patrones de tráfico web. Los valores con retraso pueden capturar el impacto de campañas de marketing recientes, mientras que los promedios móviles pueden revelar tendencias a más largo plazo en la participación de los usuarios.

Al incorporar estas características, los modelos pueden capturar tanto las fluctuaciones a corto plazo como las tendencias a largo plazo, lo que lleva a predicciones más precisas y robustas en varios dominios.

Combinando características con retraso y de ventana móvil en un modelo de series temporales

Para ilustrar cómo estas características pueden combinarse en un solo conjunto de datos, apliquemos tanto características con retraso como de ventana móvil a nuestros datos de Ventas.

import pandas as pd
import matplotlib.pyplot as plt

# Create sample data
data = {'Date': pd.date_range(start='2023-01-01', periods=60, freq='D'),
        'Sales': [100 + i + 10 * (i % 7 == 5) + 20 * (i % 30 < 3) + np.random.randint(-10, 11) for i in range(60)]}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)
df['Sales_Lag7'] = df['Sales'].shift(7)  # Weekly lag

# Create rolling features
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingMean_7'] = df['Sales'].rolling(window=7).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()
df['RollingStd_7'] = df['Sales'].rolling(window=7).std()

# Create percentage change
df['PctChange'] = df['Sales'].pct_change()

# Create expanding features
df['ExpandingMean'] = df['Sales'].expanding().mean()
df['ExpandingMax'] = df['Sales'].expanding().max()

# Print the first few rows of the DataFrame
print(df.head(10))

# Visualize the data
plt.figure(figsize=(12, 8))
plt.plot(df.index, df['Sales'], label='Sales')
plt.plot(df.index, df['RollingMean_7'], label='7-day Rolling Mean')
plt.plot(df.index, df['ExpandingMean'], label='Expanding Mean')
plt.fill_between(df.index, df['Sales'] - df['RollingStd_7'], 
                 df['Sales'] + df['RollingStd_7'], alpha=0.2, label='7-day Rolling Std')
plt.title('Sales Data with Time Series Features')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()

# Calculate correlations
correlation_matrix = df[['Sales', 'Sales_Lag1', 'Sales_Lag7', 'RollingMean_7', 'PctChange']].corr()
print("\nCorrelation Matrix:")
print(correlation_matrix)

Desglose del código:

  1. Creación de datos:
    • Generamos 60 días de datos sintéticos de ventas con patrones semanales y mensuales, más ruido aleatorio.
    • Esto simula datos de ventas del mundo real con tendencias y estacionalidad.
  2. Características con retraso:
    • Sales_Lag1 y Sales_Lag2: Capturan dependencias a corto plazo.
    • Sales_Lag7: Captura patrones semanales, útil para identificar efectos del día de la semana.
  3. Características de ventana móvil:
    • RollingMean_3 y RollingMean_7: Suavizan las fluctuaciones a corto plazo, revelando tendencias.
    • RollingStd_3 y RollingStd_7: Capturan la volatilidad a corto plazo y semanal en las ventas.
  4. Cambio porcentual:
    • PctChange: Muestra la tasa de crecimiento día a día, útil para identificar cambios repentinos.
  5. Características de expansión:
    • ExpandingMean: Promedio acumulativo, útil para análisis de tendencias a largo plazo.
    • ExpandingMax: Máximo acumulativo, ayuda a identificar récords generales de ventas.
  6. Visualización:
    • Grafica las ventas en bruto, la media móvil de 7 días y la media expansiva para mostrar diferentes perspectivas de tendencias.
    • Utiliza fill_between para visualizar la desviación estándar móvil de 7 días, indicando volatilidad.
  7. Análisis de correlación:
    • Calcula correlaciones entre características clave para entender sus relaciones.
    • Ayuda a identificar qué características podrían ser más predictivas de ventas futuras.

Este ejemplo integral demuestra varias características de series temporales y su visualización, proporcionando una base sólida para tareas de análisis y pronóstico de series temporales.

9.2.6 Consideraciones al utilizar características con retraso y de ventana móvil

Manejo de valores faltantes:

La introducción de características con retraso y de ventana móvil inevitablemente conduce a valores faltantes al inicio del conjunto de datos. Esto ocurre porque estas características dependen de puntos de datos anteriores que no existen para las observaciones iniciales. Por ejemplo, una media móvil de 7 días resultará en valores NaN (No es un Número) para las primeras 6 filas, ya que no hay suficientes datos previos para calcular la media.

Estos valores faltantes representan un desafío para muchos algoritmos de aprendizaje automático y modelos estadísticos, que a menudo requieren conjuntos de datos completos para funcionar correctamente. Por lo tanto, abordar estos valores faltantes es crucial para mantener la integridad de los datos y asegurar la confiabilidad de tu análisis.

  • Soluciones:
    • Eliminación de datos: Un enfoque es simplemente eliminar las filas que contienen valores faltantes. Aunque sencillo, este método puede llevar a la pérdida de datos potencialmente valiosos, especialmente si el conjunto de datos es pequeño.
    • Relleno hacia adelante: Este método propaga la última observación válida hacia adelante para llenar los valores NaN. Es particularmente útil cuando se cree que los valores faltantes serían similares al valor conocido más reciente.
    • Relleno hacia atrás: A la inversa, este enfoque utiliza valores futuros conocidos para completar los datos faltantes. Puede ser apropiado cuando se cree que los valores futuros son buenos sustitutos para los datos faltantes.
    • Interpolación: Para datos de series temporales, se pueden utilizar varios métodos de interpolación (lineal, polinómica, spline) para estimar valores faltantes basándose en los patrones de los datos existentes.

La elección del método depende de tu conjunto de datos específico, la naturaleza de tu análisis y los requisitos de tu modelo. A menudo es beneficioso experimentar con diferentes enfoques y evaluar su impacto en el rendimiento del modelo.

Elegir el tamaño de ventana adecuado:

El tamaño de la ventana para las características de ventana móvil es un parámetro crítico que impacta significativamente en el análisis de datos de series temporales. Determina la cantidad de puntos de datos utilizados en el cálculo de estadísticas móviles, como medias o desviaciones estándar. La elección del tamaño de ventana depende de varios factores:

  • Frecuencia de datos: Los datos de alta frecuencia (p. ej., cada hora) pueden requerir tamaños de ventana más grandes en comparación con los datos de baja frecuencia (p. ej., mensuales) para capturar patrones significativos.
  • Patrones esperados: Si se anticipan patrones semanales, una ventana de 7 días podría ser apropiada. Para patrones mensuales, una ventana de 30 días podría ser más adecuada.
  • Nivel de ruido: Los datos con más ruido podrían beneficiarse de tamaños de ventana más grandes para suavizar las fluctuaciones y revelar tendencias subyacentes.
  • Objetivo del análisis: Los pronósticos a corto plazo pueden requerir ventanas más pequeñas, mientras que el análisis de tendencias a largo plazo podría beneficiarse de ventanas más grandes.

Las ventanas cortas son más receptivas a cambios recientes y pueden capturar fluctuaciones rápidas, siendo útiles para detectar cambios o anomalías repentinas. Sin embargo, pueden ser más susceptibles al ruido. Por el contrario, las ventanas largas ofrecen una representación más suave de los datos, resaltando tendencias generales pero potencialmente perdiendo variaciones a corto plazo.

  • Consejo: Experimenta con diferentes tamaños de ventana para encontrar el mejor ajuste para tu conjunto de datos y objetivos. Considera utilizar múltiples tamaños de ventana en tu análisis para capturar patrones tanto a corto como a largo plazo. Además, puedes emplear técnicas como la validación cruzada para evaluar sistemáticamente el rendimiento de diferentes tamaños de ventana en tu contexto específico.

Evitar la fuga de datos:

Al trabajar con datos de series temporales y utilizar características con retraso, es crucial evitar la fuga de datos. Esto ocurre cuando la información del futuro influye inadvertidamente en el modelo durante el entrenamiento o prueba, lo que lleva a resultados de rendimiento demasiado optimistas. En el contexto del análisis de series temporales, la fuga de datos puede ocurrir si el modelo tiene acceso a puntos de datos futuros que no estarían disponibles en un escenario de predicción del mundo real.

Por ejemplo, si estás tratando de predecir el precio de las acciones de mañana usando el precio de hoy como una característica, debes asegurarte de que el modelo no tenga acceso a ninguna información más allá del día actual al hacer predicciones. Este principio se extiende a características más complejas como medias móviles u otras métricas derivadas.

  • Soluciones para prevenir la fuga de datos:
    • Ingeniería de características cuidadosa: Al crear características con retraso, asegúrate de que solo incorporen datos pasados en relación con el punto de predicción.
    • División adecuada de entrenamiento y prueba: En datos de series temporales, siempre divide los datos cronológicamente, con el conjunto de entrenamiento precediendo al conjunto de prueba.
    • Validación cruzada basada en tiempo: Utiliza técnicas como el encadenamiento hacia adelante o la validación cruzada de ventana deslizante que respetan el orden temporal de los datos.
    • Cálculo de características dentro de los pliegues: Recalcula las características dependientes del tiempo (como medias móviles) dentro de cada pliegue de validación cruzada para evitar el uso de información futura.

Implementando estas estrategias, puedes mantener la integridad de tu modelo de series temporales y asegurarte de que sus métricas de rendimiento reflejen con precisión sus capacidades predictivas en el mundo real. Recuerda, el objetivo es simular las condiciones reales en las que el modelo será desplegado, donde los datos futuros son realmente desconocidos.

9.2.7 Puntos clave y aplicaciones avanzadas

  • Características con retraso proporcionan al modelo datos históricos recientes, cruciales para el análisis de series temporales donde los valores pasados a menudo influyen en los resultados futuros. Estas características pueden capturar dependencias a corto plazo y patrones cíclicos, como los efectos del día de la semana en las ventas minoristas o los patrones de la hora del día en el consumo de energía.
  • Características de ventana móvil capturan tendencias y variabilidad a largo plazo, suavizando las fluctuaciones a corto plazo y resaltando patrones más amplios. Son particularmente útiles para identificar estacionalidad, cambios de tendencia y estabilidad general de los datos. Por ejemplo, una media móvil de 30 días puede revelar tendencias mensuales en los mercados financieros.
  • Combinar características con retraso y de ventana móvil equipa a los modelos con perspectivas históricas tanto inmediatas como acumulativas, mejorando su capacidad para realizar predicciones precisas. Esta combinación permite una comprensión más completa de los datos, capturando tanto fluctuaciones a corto plazo como tendencias a largo plazo simultáneamente.
  • Selección y creación de características juegan un papel crucial en la modelización de series temporales. La selección cuidadosa de los períodos de retraso y las ventanas móviles puede mejorar significativamente el rendimiento del modelo. Por ejemplo, en la predicción del mercado de valores, combinar los retornos retrasados de 1 día, 5 días y 20 días con promedios móviles de 10 días y 30 días puede capturar diversas dinámicas del mercado.
  • Manejo de relaciones no lineales es a menudo necesario en el análisis de series temporales. Técnicas como características polinómicas o aplicar transformaciones (p. ej., logarítmica, raíz cuadrada) a las características con retraso y de ventana móvil pueden ayudar a capturar patrones complejos en los datos.

Al aprovechar estas técnicas avanzadas, los analistas pueden desarrollar modelos de series temporales más sofisticados y precisos, lo que lleva a mejoras en el pronóstico y la toma de decisiones en diversos dominios como finanzas, economía y ciencias ambientales.