Fuente: IA, Gemini Notebook
La librería reliability es una herramienta especializada de Python creada específicamente para la ingeniería de confiabilidad y el análisis de supervivencia. Amplía sustancialmente las capacidades de librerías tradicionales como scipy.stats, ofreciendo funciones especializadas para el modelado probabilístico, el tratamiento de datos censurados y la optimización del mantenimiento.
A continuación se detalla cómo utilizar sus principales módulos y funciones con ejemplos de código listos para Google Colab.
1. Instalación e Importación
Para comenzar en Google Colab, se debe instalar la librería mediante pip:
!pip install reliability -q
Sus módulos principales se organizan en:
reliability.Fitters: Ajuste de distribuciones paramétricas a datos de fallas (Weibull, Exponencial, Lognormal, etc.).reliability.Distributions: Creación y evaluación directa de distribuciones probabilísticas.reliability.Other_functions: Herramientas auxiliares como generación y manejo de datos censurados.reliability.Repairable_systems: Modelos para sistemas reparables (ROCOF, tiempo óptimo de reemplazo).
2. Ajuste de Modelos de Falla (Fitters)
El caso de uso más común es ajustar un modelo estadístico a partir de los tiempos hasta la falla observados en campo.
Ejemplo A: Ajuste de Weibull de 2 Parámetros (Fit_Weibull_2P)
Permite calcular los parámetros de escala (\(\alpha\)) y forma (\(\beta\)) a partir de un conjunto de fallas y datos censurados:
from reliability.Fitters import Fit_Weibull_2P
from reliability.Other_functions import make_right_censored_data
import numpy as np
# 1. Tiempos de vida simulados
tiempos_originales = np.random.weibull(a=2, size=100) * 1000
# 2. Aplicar censura a la derecha (equipos que no han fallado al llegar a las 1500 horas)
datos_censurados = make_right_censored_data(tiempos_originales, threshold=1500)
# 3. Ajustar el modelo de Weibull de 2 parámetros
modelo_wb = Fit_Weibull_2P(
failures=datos_censurados.failures,
right_censored=datos_censurados.right_censored,
show_probability_plot=True,
print_results=True
)
Ejemplo B: Ajustar todas las distribuciones disponibles (Fit_Everything)
Si no sabes qué distribución se adecúa mejor a tus datos, Fit_Everything evalúa múltiples modelos (Weibull, Lognormal, Gamma, Normal, Exponencial) y los ordena según su ajuste estadístico (BIC/AIC):
from reliability.Fitters import Fit_Everything
# Evalúa y compara automáticamente todos los modelos de distribución disponibles
resultados = Fit_Everything(failures=datos_censurados.failures, right_censored=datos_censurados.right_censored)
3. Evaluación de Métricas de Confiabilidad y Tasa de Fallas
Una vez ajustado el modelo (objeto wb), puedes consultar métricas exactas en cualquier horizonte de tiempo \(t\):
- Función de Supervivencia / Confiabilidad \(R(t)\) (
.SF(t)): Mide la probabilidad de operar sin fallas más allá del tiempo \(t\). - Función de Riesgo / Tasa de Fallas \(h(t)\) (
.HF(t)): Mide la tasa instantánea de ocurrencia de fallas a las \(t\) horas. - Función de Densidad de Probabilidad (
.PDF(t)) y Acumulada (.CDF(t)).
tiempo_evaluación = 500 # horas
# Probabilidad de sobrevivir a las 500 horas
confiabilidad = modelo_wb.distribution.SF(tiempo_evaluación)
# Tasa instantánea de falla a las 500 horas
tasa_falla = modelo_wb.distribution.HF(tiempo_evaluación)
print(f"Confiabilidad a t={tiempo_evaluación}h: {confiabilidad:.4f}")
print(f"Tasa de fallas a t={tiempo_evaluación}h: {tasa_falla:.6f} fallas/hora")
4. Creación Directa de Distribuciones (Distributions)
Si ya conoces los parámetros del fabricante o de un estudio previo, puedes instanciar directamente el modelo sin necesidad de ajustar datos:
from reliability.Distributions import Weibull_Distribution
import matplotlib.pyplot as plt
# Definir una distribución Weibull conocida (alfa=escala=1200 hrs, beta=forma=2.5)
distribucion_bomba = Weibull_Distribution(alpha=1200, beta=2.5)
# Graficar la curva de densidad y supervivencia
distribucion_bomba.PDF.plot()
distribucion_bomba.SF.plot()
plt.show()
5. Análisis de Sistemas Reparables y Reemplazo Óptimo (Repairable_systems)
Para la gestión estratégica de activos, el módulo Repairable_systems ofrece algoritmos para calcular la frecuencia de reemplazo preventivo que minimice los costos acumulados:
optimal_replacement_time: Determina el intervalo óptimo de sustitución equilibrando el costo del mantenimiento preventivo frente al costo de una falla imprevista.ROCOF(Rate of Occurrence of Failures): Evalúa si la tasa de fallas de un sistema reparable está aumentando (degradación) o disminuyendo (aprendizaje/mejora) a lo largo del tiempo.
💡 ¿Te gustaría armar un cuaderno completo en Colab orientado a optimizar el intervalo de mantenimiento preventivo o a analizar diagramas de bloques de confiabilidad (RBD)?




Comentarios del módulo
Es importante incluir comentarios de encabezado en su módulo que expliquen lo que hace el módulo.