Fundamentos de Programación en Python y Herramientas de Ciencia de Datos con Pandas y Modelos Financieros

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 12,79 KB

Conceptos Fundamentales de Python

A continuación, se resumen datos y funciones esenciales en el lenguaje de programación Python:

  • Dato que almacena texto: str
  • Función utilizada para imprimir un mensaje en consola: print()
  • Operador utilizado para comparar dos valores: == (Igualdad)
  • Palabra clave utilizada para definir una función: def
  • Estructura utilizada para almacenar una colección de datos: list
  • Método que se utiliza para añadir un elemento al final de una lista: append()
  • Estructura utilizada para iterar sobre elementos de una lista: for
  • Operador utilizado para concatenar cadenas en Python: +
  • Método para ordenar una lista: sort()
  • Estructura de datos inmutable: tuple
  • Símbolo que define un comentario en línea: # comentario
  • Valor booleano de 0: False
  • Bucle utilizado cuando no se sabe el número exacto de iteraciones: while
  • Comando para detener un bucle: break
  • Estructura de datos que almacena pares clave-valor: dict (Diccionario)

Manipulación de Datos con Pandas

Estructuras de Datos Principales

Pandas se basa en dos estructuras fundamentales para el manejo de datos:

  • Serie (Series): Estructura unidimensional que puede contener cualquier tipo de dato. Se accede a un elemento usando su índice: serie[indice].
  • DataFrame: Representa una tabla de dos dimensiones con filas y columnas.

Operaciones Comunes en DataFrames

Las siguientes operaciones son cruciales para la gestión y limpieza de datos:

Carga y Exportación de Datos

  • Cargar archivo CSV en Pandas: pd.read_csv() (Crea un DataFrame desde un archivo CSV).
  • Guardar DataFrame en Excel: df.to_excel() (Exportar DataFrame a archivo Excel).
  • Propósito de pd.DataFrame(): Crear un nuevo DataFrame a partir de un conjunto de datos.
  • Archivo usado para cargar datos en un notebook (formato binario): .pkl.
  • Formato de dato cargado usando 'pickle': diccionario.
  • Librería utilizada para cargar datos desde archivo pickle: 'pickle'.
  • Función utilizada para cargar archivo de datos en formato pickle: 'pickle.load()'.

Selección y Filtrado

  • Acceder a una columna: df["column_name"].
  • Método para seleccionar varias columnas: df[["columna1", "columna2"]].
  • Acceder a filas y columnas por su posición numérica: .iloc[].
  • Verificar dos valores iguales: ==.
  • Operación !=: No igual a.
  • Filtrar filas donde ingresos son mayores a 5000: df["ingresos"] > 5000.
  • Operación para detectar valores anómalos en un DataFrame: df[condition].

Limpieza y Transformación

  • Eliminar una columna: df.drop("columna", axis=1).
  • Rellenar valores nulos: df.fillna(value).
  • Detectar valores duplicados: df.duplicated().
  • Eliminar filas con valores nulos en Pandas: df.dropna().
  • Método utilizado para acceder a valores desplazados en una columna: .shift().
  • Comando para calcular la suma de elementos en una columna: .sum().
  • Operación para calcular la diferencia entre dos Series: .diff().
  • Operación para eliminar el índice y crear uno nuevo basado en filas consecutivas: .reset_index().

Agregación y Combinación

  • Agrupar datos en función de una columna: df.groupby("columna").
  • Tabla dinámica: pivot_table().
  • Aplicar funciones de agregación: df.agg().
  • Mostrar resumen estadístico del DataFrame: df.describe().
  • Combinar dos DataFrames en Pandas: pd.merge() (Utilizado para agregar datos basados en clave común).
  • Combinar dos o más DataFrames a lo largo de un eje: pd.concat().
  • Unir una serie de datos proyectados con datos históricos: pd.concat().
  • Función Pandas para agregar una nueva fila (obsoleto en versiones recientes): pd.append().

Conceptos Adicionales de Python/Pandas

  • Índice en un DataFrame: Identificador único para cada fila.
  • Acceder al tercer elemento de una lista llamada operaciones: operaciones[2].
  • Almacenar pares clave-valor: Diccionario.
  • Acceder al valor de una clave en un diccionario: diccionario[clave].
  • Método .mean() en Pandas: Calcula el valor medio de columna o fila.

Modelos de Detección de Fraude y Salud Financiera

Modelos de Detección de Manipulación de Ganancias

M-Score de Beneish

Este modelo evalúa la probabilidad de manipulación de ganancias.

  • M-Score de Beneish superior a -1.78: Alta probabilidad manipulación ganancias.
  • M-Score de Beneish, ¿qué sugiere un valor alto de DSRI?: Ventas dudosas o de mala calidad.
  • Empresa inflando ingresos según M-Score: SGI creciente.
  • Resultado directo de DEPI creciente: La empresa está depreciando sus activos más lentamente.
  • Índice AQI en M-Score: Calidad del activo.
  • Fórmula de fraude (Modelo de Detección): 𝑃 = 1 / (1+𝑒5.678−4.263× 𝐼𝑁𝑉/𝑇𝐴)
  • Ratio ‘INV/TA’: Inventories / Total Assets.
  • Ratio ‘TL/TA’: Total Liabilities / Total Assets.
  • Empresas incluidas en el análisis de fraude (ejemplo): Tesla, Nvidia, Digital Realty Trust, Western Digital.
  • Diferencia entre Beneish y Altman: Beneish predice manipulación de ganancias y Altman predice bancarrota.

Z-Score de Altman

  • Propósito principal del modelo Z de Altman: Evaluar la probabilidad de bancarrota de empresas.
  • Componente clave del Z-Score no usado en M-Score: Nivel de endeudamiento.

Modelos de Calidad del Accrual

  • Componente de accrual en el modelo de calidad: Cambio en los activos operativos netos actuales.
  • Término ‘CIE’ en el cálculo: Componente implícito de efectivo.
  • Término ‘WC’ en el modelo: Capital circulante.
  • Fórmula para medir calidad del accrual: Flujo de efectivo operativo del año en curso + ΔCapital circulante / (Activos totales del año en curso + Activos totales del año anterior).
  • Resultado de tsla_bal['total_assets'] - tsla_bal['total_liabilities']: Activos netos operativos actuales.
  • Herramienta gráfica para comparar calidad del accrual con ingreso neto: Gráfico de doble eje.
  • Función para crear gráficos con múltiples ejes: 'plt.twinx()'.

Técnicas de Winsorización

  • Qué hace mstats.winsorize(): Ajusta valores extremos dentro de los percentiles límite.
  • Diferencia entre winsorización y truncamiento: Winsorización ajusta valores extremos, el truncamiento elimina.

Series Temporales y Proyecciones

Conceptos de Series Temporales

  • Proyectar ingresos futuros (método simple): Multiplicando ingreso actual por tasa de crecimiento en cada periodo.
  • Método para predecir próximos valores con modelo autorregresivo: forecast().
  • Propósito de AutoReg en statsmodels: Ajustar un modelo autorregresivo para series temporales.
  • Librería utilizada para ajustar modelo de regresión autorregresiva: Statsmodels.
  • Predecir los próximos 5 periodos con un modelo AR(2): Usar forecast(steps=5).
  • Gráfico para mostrar resultados históricos y proyecciones: Gráfico de barras.
  • Añadir puntos verdes a gráfico de línea para valores proyectados: Usando plot() con la opción color='green'.
  • Objetivo de proyección de ventas con AR(2): Predecir ventas futuras basándose en dos últimas observaciones.
  • Cálculo de tasa crecimiento media en Pandas: Usando .mean().

Análisis de Benford

La Ley de Benford describe la frecuencia de los primeros dígitos en muchos conjuntos de datos naturales.

Aplicación de la Ley de Benford

  • Dígito con mayor frecuencia según la Ley de Benford: 1.
  • Librería para realizar análisis de Benford: benford-py.
  • Propósito de fit() en benford-py: Ajustar los datos a la distribución teórica de la Ley de Benford.
  • Función para calcular el logaritmo en base 10: np.log10().
  • Objetivo de la prueba de Chi-cuadrado en Benford: Verificar si datos siguen la Ley de Benford.
  • Función de benford-py para generar gráfico comparativo: plot().
  • Métrica que mide la diferencia media absoluta entre distribuciones: MAD (Mean Absolute Deviation).
  • Métrica que NO es una función en benford-py: correlation().
  • Gráfico usado para visualizar distribuciones observada y teórica: Gráfico de barras.
  • Fórmula del coeficiente de Bhattacharyya: Σ √𝑃(𝑥)𝑄(𝑥)
  • Valor del Coeficiente de Bhattacharyya para distribuciones idénticas: 1.
  • Rango de valores del Coeficiente de Bhattacharyya: Entre 0 y 1.
  • Valor de MAD que indica mejor conformidad con Ley de Benford: Un valor cercano a 0.
  • Método de benford-py que devuelve resumen estadístico: summary().
  • Métodos que realizan prueba estadística de conformidad: chi_squared().
  • Valor de p que indica conformidad con Ley de Benford: p > 0.05.
  • Distribución esperada de los primeros dígitos: Distribución logarítmica.
  • Prueba para comparar frecuencias observadas y teóricas: Chi-cuadrado.

Conceptos Adicionales de Finanzas y Datos

  • Qué es Pandas: Biblioteca de Python para análisis de datos.
  • Acceder a valor de clave en diccionario: diccionario[clave].
  • Estructura de datos que almacena pares clave-valor: Diccionario.
  • Estructura utilizada para almacenar operaciones financieras (ingresos, gastos): Lista.
  • Función utilizada para imprimir mensaje en consola: print.

Entradas relacionadas: