Saltar al contenido
Portafolios de Inversión con Python

Obtener datos financieros con Python

Introducción

Python es un lenguaje de programación popular entre científicos de datos y financieros debido a su flexibilidad y amplia gama de bibliotecas específicas para el análisis financiero.

En el contexto de los portafolios de inversión, una tarea fundamental es obtener los datos de los activos financieros para análisis y evaluación. Para obtener datos financieros utilizando Python, podemos utilizar la librería Pandas.

Pandas nos permite importar los datos de varios tipos de archivo, incluyendo CSV y Excel, así como obtener datos directamente de fuentes en línea como Yahoo Finance y Google Finance. También es posible utilizar APIs de fuentes de datos financieros para obtener datos de tiempo real.

Una vez que tenemos los datos financieros, podemos utilizar técnicas de análisis como el análisis de series de tiempo, análisis de riesgo y optimización de portafolios para evaluar el rendimiento de cada activo y el rendimiento general del portafolio.

En resumen, obtener datos financieros con Python es una tarea fundamental para el análisis y evaluación de portafolios de inversión. Utilizando bibliotecas como Pandas y APIs de fuentes de datos, es posible obtener datos de alta calidad y aplicar técnicas de análisis para tomar decisiones informadas de inversión.

Resumen

Herramientas y Bibliotecas Comunes para Obtener Datos Financieros con Python

  1. Yahoo Finance API: Esta API proporciona datos financieros como precios de acciones, historial de negociaciones, información de dividendos, entre otros. Para acceder a ella, se puede utilizar la biblioteca yfinance de Python.

  2. Pandas DataReader: Es una biblioteca que permite la recolección de datos de diferentes fuentes, incluyendo Yahoo Finance, Google Finance, World Bank, entre otros. Esta biblioteca funciona en conjunto con la biblioteca pandas para procesar y manipular los datos.

  3. Alpha Vantage API: También proporciona datos financieros, incluyendo información de precios, volúmenes de operaciones, indicadores técnicos, entre otros. Para utilizarla, se puede utilizar la biblioteca alphavantage.

  4. Quandl: Es un servicio de datos financieros que proporciona acceso a una gran cantidad de datos financieros, incluyendo series temporales, indicadores técnicos, precios de futuros, entre otros. Para acceder a los datos de Quandl, se puede utilizar el paquete quandl de Python.

Para utilizar cualquiera de estas herramientas y bibliotecas, primero es necesario instalarlas en Python y luego utilizar la documentación y ejemplos proporcionados para el acceso a los datos financieros requeridos.

Aplicación teórica

Resumen Estadístico y Descriptivo

 

El resumen estadístico y descriptivo es una parte fundamental del análisis de datos que se centra en proporcionar una visión clara y concisa de las características principales de un conjunto de datos. Este tipo de resumen facilita la comprensión de la distribución y las tendencias dentro de los datos y sirve como base para inferencias más profundas. A continuación, se detallan los aspectos clave desde una perspectiva matemática.

1. Medidas de Tendencia Central

Las medidas de tendencia central resumen el valor típico de un conjunto de datos. Los tres principales indicadores son:

- Media Aritmética (\(\bar{x}\)): Se calcula sumando todos los valores de la variable y dividiendo entre el número total de observaciones. Matemáticamente, se define como:

  \[
  \bar{x} = \frac{1}{N} \sum_{i=1}^{N} x_i
  \]

  donde \( x_i \) representa cada valor individual y \( N \) el número total de observaciones.

- Mediana: Es el valor que divide el conjunto de datos en dos partes iguales. Para un conjunto de datos ordenado, la mediana se encuentra en la posición central. Si el número de observaciones es par, se promedia los dos valores centrales.

- Moda: Es el valor que aparece con mayor frecuencia en el conjunto de datos. Un conjunto de datos puede tener una moda, más de una moda, o ninguna moda si todos los valores tienen la misma frecuencia.

2. Medidas de Dispersión

Las medidas de dispersión cuantifican la variabilidad de los datos, es decir, cuánto se desvían los valores respecto a la media.

- Varianza (\(\sigma^2\)): Es el promedio de las diferencias cuadradas entre cada valor y la media. Se define como:

  \[
  \sigma^2 = \frac{1}{N} \sum_{i=1}^{N} (x_i - \bar{x})^2
  \]

  donde \( \bar{x} \) es la media aritmética y \( N \) el número total de observaciones.

- Desviación Estándar (\(\sigma\)): Es la raíz cuadrada de la varianza y proporciona una medida de dispersión en las mismas unidades que los datos originales:

  \[
  \sigma = \sqrt{\sigma^2}
  \]

- Rango: Es la diferencia entre el valor máximo y el valor mínimo del conjunto de datos:

  \[
  \text{Rango} = x_{\text{max}} - x_{\text{min}}
  \]

- Coeficiente de Variación (CV): Es una medida de dispersión relativa que se calcula como la desviación estándar dividida entre la media, expresada como un porcentaje:

  \[
  CV = \frac{\sigma}{\bar{x}} \times 100
  \]

3. Medidas de Posición

Estas medidas indican la ubicación relativa de un dato dentro del conjunto.

- Cuartiles: Dividen el conjunto de datos en cuatro partes iguales. El primer cuartil (Q1) es el 25% de los datos menores, el segundo cuartil (Q2) es la mediana, y el tercer cuartil (Q3) es el 75% de los datos menores.

- Percentiles: Dividen el conjunto de datos en 100 partes iguales. El percentil 90, por ejemplo, es el valor bajo el cual se encuentra el 90% de los datos.

4. Distribución y Forma

- Simetría: Refleja si la distribución de los datos es simétrica respecto a la media. La asimetría (skewness) mide esta desviación de la simetría.

- Curtosis: Evalúa la "altitud" de la distribución de los datos, comparado con una distribución normal. La curtosis positiva indica colas más pesadas, mientras que la curtosis negativa indica colas más ligeras.

5. Representación Gráfica

Las herramientas gráficas complementan el resumen estadístico:

- Histogramas: Muestran la distribución de los datos en intervalos.
- Diagramas de Caja (Boxplots): Representan la mediana, los cuartiles y los valores atípicos.

Conclusión

El resumen estadístico y descriptivo proporciona una visión clara del comportamiento de los datos a través de medidas matemáticas que describen la tendencia central, la dispersión y la forma de la distribución. Estos conceptos son fundamentales para el análisis de datos y la interpretación de resultados en estadísticas y econometría.

Visualización de Datos

 

La visualización de datos es una herramienta crucial en el análisis estadístico y descriptivo que permite representar gráficamente la información para facilitar su interpretación y comunicación. A través de gráficos y otras representaciones visuales, los analistas pueden identificar patrones, tendencias y anomalías en los datos de manera más efectiva. A continuación, se detallan los principales tipos de visualización de datos y sus aplicaciones.

1. Histogramas

Un histograma es un gráfico que muestra la distribución de una variable continua dividiendo el rango de valores en intervalos o "bins". Cada barra en el histograma representa la frecuencia de los datos dentro de un intervalo específico.

- Aplicación: Ideal para observar la forma de la distribución de los datos, identificar sesgos y detectar la presencia de outliers.

- Matemáticamente: La altura de cada barra se calcula como la frecuencia de los datos que caen dentro de cada intervalo.

2. Diagramas de Caja (Boxplots)

Un diagrama de caja muestra la mediana, los cuartiles y los valores atípicos de un conjunto de datos. Se utiliza para visualizar la dispersión y la simetría de los datos.

- Componentes:
  - Caja: Representa el rango intercuartílico (IQR), que abarca desde el primer cuartil (Q1) hasta el tercer cuartil (Q3).
  - Líneas (bigotes): Extienden desde los cuartiles hasta los valores mínimos y máximos dentro de 1.5 veces el IQR.
  - Puntos: Representan valores atípicos, que se encuentran fuera del rango de los bigotes.

- Aplicación: Útil para comparar distribuciones entre diferentes grupos y detectar outliers.

3. Diagramas de Dispersión (Scatter Plots)

Un diagrama de dispersión muestra la relación entre dos variables continuas. Cada punto en el gráfico representa una observación en el conjunto de datos.

- Aplicación: Permite identificar correlaciones o patrones de relación entre las dos variables. Es útil para la regresión y el análisis de correlaciones.

- Matemáticamente: Cada punto se coloca en un plano cartesiano según los valores de las dos variables.

4. Gráficos de Barras

Los gráficos de barras representan datos categóricos o discretos mediante barras. La altura de cada barra indica la frecuencia o la medida de la variable para cada categoría.

- Aplicación: Adecuado para comparar diferentes categorías o grupos y observar la distribución de frecuencias en datos categóricos.

- Matemáticamente: La altura de cada barra se basa en la frecuencia de los datos en cada categoría.

5. Gráficos de Líneas

Los gráficos de líneas muestran la evolución de una variable a lo largo del tiempo o de otra variable continua. Conectan los puntos de datos con líneas, permitiendo observar tendencias y cambios a lo largo del tiempo.

- Aplicación: Ideal para el análisis de series temporales y para visualizar tendencias a largo plazo.

- Matemáticamente: Cada punto en el gráfico representa un valor de la variable en un momento específico, y las líneas conectan estos puntos para mostrar la tendencia.

6. Gráficos de Torta (Pie Charts)

Los gráficos de torta representan la proporción de cada categoría dentro de un conjunto total. Cada porción de la torta muestra la proporción que representa cada categoría con respecto al total.

- Aplicación: Útil para visualizar la composición de un total y comparaciones simples entre partes de un todo.

- Matemáticamente: Cada porción del gráfico de torta se calcula como la proporción del total representada por cada categoría.

7. Mapas de Calor (Heat Maps)

Un mapa de calor muestra la intensidad de los datos en una matriz mediante colores. Cada celda de la matriz está coloreada según el valor de la variable.

- Aplicación: Eficaz para visualizar la densidad de datos y detectar patrones o correlaciones en grandes conjuntos de datos.

- Matemáticamente: Los colores representan diferentes rangos de valores, permitiendo observar variaciones en la intensidad de los datos.

8. Gráficos de Áreas (Area Charts)

Los gráficos de áreas son similares a los gráficos de líneas, pero el área debajo de la línea está rellena, lo que permite visualizar el volumen total de datos a lo largo del tiempo o de otra variable continua.

- Aplicación: Ideal para mostrar la acumulación de valores y observar la evolución en el tiempo o la relación entre varias variables.

- Matemáticamente: El área bajo la línea representa la magnitud de los datos, permitiendo comparar la suma de valores a través del tiempo o categorías.

Conclusión

La visualización de datos es una herramienta poderosa para comprender y comunicar la información contenida en los datos. Elegir el tipo de gráfico adecuado depende del tipo de datos y del objetivo del análisis. Cada tipo de visualización proporciona una perspectiva única y ayuda a destacar diferentes aspectos de los datos, facilitando la interpretación y la toma de decisiones basada en datos.

Análisis de Correlación y Dependencia

 

El análisis de correlación y dependencia es fundamental para comprender la relación entre dos o más variables en un conjunto de datos. Este análisis permite determinar cómo se mueven las variables en relación unas con otras y si existe una relación significativa entre ellas. A continuación, se exploran los conceptos clave y las herramientas matemáticas para el análisis de correlación y dependencia.

1. Correlación

La correlación mide la fuerza y la dirección de una relación lineal entre dos variables. El coeficiente de correlación proporciona una medida cuantitativa de esta relación.

- Coeficiente de Correlación de Pearson (r): Es el indicador más común para evaluar la correlación lineal entre dos variables continuas. Se define como:

  \[
  r = \frac{\sum_{i=1}^{N} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{N} (x_i - \bar{x})^2 \sum_{i=1}^{N} (y_i - \bar{y})^2}}
  \]

  donde \( x_i \) y \( y_i \) son los valores de las variables, y \( \bar{x} \) y \( \bar{y} \) son las medias de las variables. El coeficiente de correlación de Pearson varía entre -1 y 1, donde:
  - \( r = 1 \) indica una correlación positiva perfecta.
  - \( r = -1 \) indica una correlación negativa perfecta.
  - \( r = 0 \) indica ausencia de correlación lineal.

- Coeficiente de Correlación de Spearman: Utilizado para datos ordinales o cuando los datos no cumplen los supuestos de normalidad necesarios para el coeficiente de Pearson. Se basa en los rangos de los valores y se define como:

  \[
  \rho = 1 - \frac{6 \sum_{i=1}^{N} d_i^2}{N(N^2 - 1)}
  \]

  donde \( d_i \) es la diferencia entre los rangos de las dos variables y \( N \) es el número de observaciones.

2. Regresión

La regresión analiza la relación entre una variable dependiente y una o más variables independientes para modelar y predecir valores.

- Regresión Lineal Simple: Examina la relación entre dos variables mediante una línea recta. La ecuación de la línea de regresión es:

  \[
  y = \beta_0 + \beta_1 x + \epsilon
  \]

  donde \( y \) es la variable dependiente, \( x \) es la variable independiente, \( \beta_0 \) es el intercepto, \( \beta_1 \) es el coeficiente de la pendiente y \( \epsilon \) es el error residual.

- Regresión Lineal Múltiple: Extiende la regresión lineal simple para incluir múltiples variables independientes. La ecuación general es:

  \[
  y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_k x_k + \epsilon
  \]

  donde \( x_1, x_2, \ldots, x_k \) son las variables independientes.

3. Dependencia

La dependencia entre variables puede ser evaluada más allá de la correlación lineal, utilizando diferentes herramientas y métodos.

- Análisis de Dependencia Causal: Utiliza técnicas como modelos de ecuaciones estructurales (SEM) para evaluar relaciones causales entre variables. SEM permite modelar y probar hipótesis sobre las relaciones causales.

- Pruebas de Independencia: Para evaluar si dos variables son independientes, se pueden utilizar pruebas estadísticas como la prueba de Chi-cuadrado para variables categóricas.

4. Visualización de la Relación entre Variables

- Diagramas de Dispersión: Ayudan a visualizar la relación entre dos variables y detectar posibles patrones, tendencias o correlaciones.

- Matriz de Correlación: Muestra las correlaciones entre varias variables en una tabla, facilitando la identificación de relaciones significativas entre pares de variables.

- Gráficos de Regresión: Muestran la línea de regresión ajustada sobre un diagrama de dispersión, proporcionando una representación visual de la relación entre las variables.

 

Aplicación práctica

Un ejemplo práctico de cómo obtener datos financieros utilizando Python y la librería yfinance:

 

Primero, asegúrate de tener instalada la librería yfinance. Si no la tienes instalada, puedes hacerlo con el siguiente comando en la terminal:

pip install yfinance

Ahora, para obtener datos financieros de una acción en específico, puedes utilizar el siguiente código:


import yfinance as yf

# Definir el símbolo de la acción
symbol = "AAPL"

# Obtener los datos financieros de la acción
stock_data = yf.Ticker(symbol)

# Obtener el historial de precios (de la última sesión hasta 5 años atrás)
stock_prices = stock_data.history(period="5y")

# Imprimir los últimos 5 registros de precios
print(stock_prices.tail())

Este código nos devolverá los últimos 5 años de precios de la acción de Apple (AAPL). La salida será similar a la siguiente:


Open High Low Close Volume Dividends Stock Splits Date
2021-09-02 152.830002 153.869995 152.419998 153.649994 71115500 0.0 0.0
2021-09-03 153.759995 154.630005 153.089996 154.300003 57808700 0.0 0.0
2021-09-07 154.970001 157.259995 154.389999 156.690002 82278300 0.0 0.0
2021-09-08 156.979996 157.039993 153.979996 155.110001 74420200 0.0 0.0
2021-09-09 154.970001 156.110001 153.949997 154.070007 129728700 0.0 0.0

Como puedes ver, hemos obtenido los datos financieros de la acción AAPL utilizando la librería yfinance y Python.