Análisis de series de tiempo de las acciones de Netflix con Pandas

Time series analysis of Netflix stocks using Pandas.

Introducción

El análisis de series temporales de datos no es solo una colección de números, en este caso las acciones de Netflix. Es una cautivadora tela que teje la historia intrincada de nuestro mundo con Pandas. Como un hilo místico, captura el flujo y reflujo de eventos, el auge y la caída de las tendencias y la aparición de patrones. Revela las conexiones y correlaciones ocultas que dan forma a nuestra realidad, pintando una imagen vívida del pasado y ofreciendo vislumbres del futuro.

El análisis de series temporales es más que una simple herramienta. Es una puerta de entrada a un reino de conocimiento y previsión. Podrás desbloquear los secretos ocultos dentro del tejido temporal de los datos, transformando la información en valiosos conocimientos. También te guía en la toma de decisiones informadas, mitigando riesgos y aprovechando oportunidades emergentes.

¡Embárcate en esta emocionante aventura juntos y descubre cómo el tiempo realmente tiene la clave para entender nuestro mundo! ¿Estás listo? ¡Sumérgete en el cautivador reino del análisis de series temporales!

Objetivos de aprendizaje

  • Nuestro objetivo es introducir el concepto de análisis de series temporales y resaltar su importancia en varios campos, presentando ejemplos del mundo real que muestren las aplicaciones prácticas del análisis de series temporales.
  • Proporcionaremos una demostración práctica mostrando cómo importar datos de acciones de Netflix usando Python y la biblioteca yfinance. De esta manera, los lectores aprenderán los pasos necesarios para adquirir datos de series temporales y prepararlos para el análisis.
  • Finalmente, nos centraremos en las importantes funciones de pandas utilizadas en el análisis de series temporales, como el cambio, el rolling y el resampling, que permiten manipular y analizar los datos de series temporales de manera efectiva.

Este artículo fue publicado como parte del Blogatón de Ciencia de Datos.

¿Qué es el análisis de series temporales?

Una serie temporal es una secuencia de puntos de datos recopilados o registrados en intervalos de tiempo sucesivos y equidistantes.

  • El análisis de series temporales es una técnica estadística para analizar puntos de datos recopilados a lo largo del tiempo.
  • Implica el estudio de patrones, tendencias y dependencias en datos secuenciales para extraer conocimientos y hacer predicciones.
  • Implica técnicas como la visualización de datos, la modelización estadística y los métodos de pronóstico para analizar e interpretar los datos de series temporales de manera efectiva.

Ejemplos de datos de series temporales

  1. Datos del mercado de valores: análisis de los precios históricos de las acciones para identificar tendencias y pronosticar los precios futuros.
  2. Datos meteorológicos: estudio de la temperatura, precipitación y otras variables a lo largo del tiempo para comprender los patrones climáticos.
  3. Indicadores económicos: análisis del PIB, las tasas de inflación y las tasas de desempleo para evaluar el rendimiento económico.
  4. Datos de ventas: examen de las cifras de ventas a lo largo del tiempo para identificar patrones y pronosticar las ventas futuras.
  5. T tráfico de sitios web: análisis de las métricas de tráfico web para comprender el comportamiento del usuario y optimizar el rendimiento del sitio web.

Componentes de la serie temporal

Hay 4 componentes de la serie temporal. Son:

  • Componente de tendencia: la tendencia representa un patrón a largo plazo en los datos que se mueve de manera relativamente predecible hacia arriba o hacia abajo.
  • Componente de estacionalidad: la estacionalidad es un patrón regular y periódico que se repite en un período específico, como diario, semanal, mensual o estacionalmente.
  • Componente cíclico: el componente cíclico corresponde a patrones que siguen ciclos comerciales o económicos, caracterizados por períodos alternos de crecimiento y declive.
  • Componente aleatorio: el componente aleatorio representa fluctuaciones impredecibles y residuales en los datos que no se ajustan a los patrones de tendencia, estacionalidad o ciclos.

Aquí hay una interpretación visual de los diversos componentes de la serie temporal.

Trabajando con yfinance en Python

Ahora veamos un uso práctico de yfinance. Primero, descargaremos la biblioteca yfinance usando el siguiente comando.

Instalación

!pip install yfinance

Tenga en cuenta que si encuentra algún error al ejecutar este código en su máquina local, como en Jupyter Notebook, tiene dos opciones: actualizar su entorno de Python o considerar utilizar cuadernos basados en la nube como Google Colab como solución alternativa.

Importar bibliotecas

import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
from datetime import datetime

Descargar el conjunto de datos financieros de Netflix utilizando Yahoo Finance

En esta demostración, usaremos datos de acciones de Netflix (NFLX)

NETFLIX
df =  yf.download(tickers = "NFLX")
df

Examinemos las columnas en detalle para un análisis más profundo:

  • Las columnas “Open” y “Close” muestran los precios de apertura y cierre de las acciones en un día específico.
  • Las columnas “High” y “Low” indican los precios más altos y más bajos alcanzados por las acciones en un día en particular, respectivamente.
  • La columna “Volume” proporciona información sobre el volumen total de acciones negociadas en un día específico.
  • La columna “Adj_Close” representa el precio de cierre ajustado, que refleja el precio de cierre de las acciones en cualquier día de negociación dado, considerando factores como dividendos, divisiones de acciones u otras acciones corporativas.

Acerca de los datos

# imprimir los metadatos del conjunto de datos
df.info()

# descripción de datos
df.describe()

Visualización de los datos de series de tiempo

df['Open'].plot(figsize=(12,6),c='g')
plt.title("Precios de las acciones de Netlix")
plt.show()

Ha habido un aumento constante en los precios de las acciones de Netflix desde 2002 hasta 2021. Usaremos Pandas para investigarlo más en las próximas secciones.

Pandas para análisis de series de tiempo

Debido a sus raíces en la modelización financiera, Pandas proporciona una amplia variedad de herramientas para manejar fechas, horas y datos indexados en el tiempo. Ahora, exploremos las principales estructuras de datos de Pandas diseñadas específicamente para la manipulación efectiva de datos de series de tiempo.

1. Desplazamiento de tiempo

El desplazamiento de tiempo, también conocido como retraso o cambio de tiempo en el análisis de series de tiempo, se refiere al proceso de mover los valores de una serie temporal hacia adelante o hacia atrás en el tiempo. Involucra desplazar toda la serie por un número específico de períodos.

A continuación se presenta el conjunto de datos sin alterar antes de cualquier ajuste o desplazamiento temporal:

Conjunto de datos original

Hay dos tipos comunes de desplazamiento de tiempo:

1.1 Desplazamiento hacia adelante (Lag positivo)

Para desplazar nuestros datos hacia adelante, el número de períodos (o incrementos) debe ser positivo.

df.shift(1)
Después del desplazamiento hacia adelante

Nota: La primera fila en los datos desplazados contiene un valor NaN ya que no hay un valor anterior para desplazarlo.

1.2 Desplazamiento hacia atrás (Lag negativo)

Para desplazar nuestros datos hacia atrás, el número de períodos (o incrementos) debe ser negativo.

df.shift(-1)
Después del desplazamiento hacia atrás

Nota: La última fila en los datos desplazados contiene un valor NaN ya que no hay un valor posterior para desplazarlo.

2. Ventanas de desplazamiento

El desplazamiento es un método de transformación poderoso utilizado para suavizar los datos y reducir el ruido. Opera dividiendo los datos en ventanas y aplicando una función de agregación, como

mean(), median(), sum(), etc. a los valores dentro de cada ventana.

df['Open:10 días de desplazamiento'] = df['Open'].rolling(10).mean()
df[['Open','Open:10 días de desplazamiento']].head(20)
df[['Open','Open:10 días de desplazamiento']].plot(figsize=(15,5))
plt.show()
Ventana de desplazamiento para 10 días

Nota: Los primeros nueve valores se han vuelto en blanco ya que no había suficientes datos para llenarlos cuando se usó una ventana de diez días.

Ventana de desplazamiento de 10 días
df['Open:20'] = df['Open'].rolling(window=20,min_periods=1).mean()
df['Open:50'] = df['Open'].rolling(window=50,min_periods=1).mean()
df['Open:100'] = df['Open'].rolling(window=100,min_periods=1).mean()
#visualización
df[['Open','Open:10','Open:20','Open:50','Open:100']].plot(xlim=['2015-01-01','2024-01-01'])
plt.show()
Ventana de desplazamiento de 10,20,50 y 100 días

Se utilizan comúnmente para suavizar gráficos en el análisis de series temporales. El ruido inherente y las fluctuaciones a corto plazo en los datos se pueden reducir, lo que permite una visualización más clara de las tendencias y patrones subyacentes.

3. Re-muestreo temporal

El re-muestreo temporal implica la agregación de datos en intervalos de tiempo predeterminados, como mensuales, trimestrales o anuales, para proporcionar una vista resumida de las tendencias subyacentes. En lugar de examinar los datos diariamente, el re-muestreo condensa la información en unidades de tiempo más grandes, lo que permite a los analistas centrarse en patrones y tendencias más amplios en lugar de verse atrapados en fluctuaciones diarias.

#frecuencia de fin de año
df.resample(rule='A').max()
Datos re-muestreados

Esto re-muestrea el DataFrame original df basado en la frecuencia de fin de año, y luego calcula el valor máximo para cada año. Esto puede ser útil para analizar el precio de las acciones más alto del año o identificar los valores máximos en otros datos de series de tiempo.

df['Adj Close'].resample(rule='3Y').mean().plot(kind='bar',figsize=(10,4))
plt.title('Precio promedio de cierre ajustado de 3 años para Netflix')
plt.show()
Gráfico de datos remuestreados

Este gráfico de barras muestra el valor promedio de Adj_Close del precio de las acciones de Netflix para cada 3 años desde 2002 hasta 2023.

A continuación se muestra una lista completa de los valores de desplazamiento. La lista también se puede encontrar en la documentación de pandas.

Conclusión

La biblioteca pandas de Python es una herramienta robusta y versátil que ofrece una gran cantidad de funciones incorporadas para analizar eficazmente datos de series temporales. En este artículo, exploramos las inmensas capacidades de pandas para manejar y visualizar datos de series temporales.

A lo largo del artículo, nos adentramos en tareas esenciales como el muestreo temporal, el desplazamiento temporal y el análisis rodante utilizando datos de acciones de Netflix. Estas operaciones fundamentales sirven como pasos iniciales cruciales en cualquier flujo de trabajo de análisis de series temporales. Al dominar estas técnicas, los analistas pueden obtener información valiosa y extraer información significativa de sus datos. Otra forma en que podríamos utilizar estos datos sería para predecir los precios de las acciones de Netflix para los próximos días mediante el empleo de técnicas de aprendizaje automático. Esto sería especialmente valioso para los accionistas que buscan información y análisis.

El código y la implementación se cargan en Github en Análisis de Series Temporales de Netflix.

Espero que hayas encontrado útil este artículo. Conéctate conmigo en LinkedIn.

Preguntas Frecuentes

Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Búsqueda de empleo en Ciencia de Datos 5 libros que guiaron mi camino hacia el empleo

¡Sé que ha sido difícil! En medio de estos tiempos desafiantes, es innegable que estamos enfrentando dificultades sig...

Inteligencia Artificial

Aplicación del poder generativo de la inteligencia artificial en la modernización de aplicaciones

La IA generativa se está convirtiendo en un habilitador poderoso para impulsar el cambio en cómo se aceleran los prog...

Ciencias de la Computación

Cómo la I.A. está ayudando a los arquitectos a cambiar el diseño de los lugares de trabajo.

Con una mayor cantidad de trabajadores híbridos y nuevas necesidades de oficina, empresas como Zaha Hadid Architects ...

Inteligencia Artificial

Un lugar para el clustering de K-means

El Clustering K-Means es un algoritmo de aprendizaje no supervisado que nos ayuda a agrupar puntos de datos similares...

Inteligencia Artificial

Tendencias laborales en análisis de datos IA en análisis de las tendencias laborales

Realizar el análisis de tendencias laborales y verificar los resultados utilizando NLP.