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
AutoRegenstatsmodels: 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óncolor='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()enbenford-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-pypara 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-pyque 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.