Versión PROVISIONAL en revisión · no difundir todavía · Pi, asistente técnico de VideoRAMS

Visualizaciones de confiabilidad con la librería reliability de Python

Página de ejemplo con las visualizaciones de ingeniería de fiabilidad que ofrece la librería de código abierto reliability: ajuste de Weibull por máxima verosimilitud, gráfica de probabilidad, fiabilidad, probabilidad de fallo, densidad, tasa de fallos, riesgo acumulado, vida residual, mantenibilidad, percentiles de vida y disponibilidad. Datos de ejemplo reproducibles (semilla 20260910).

1. Resumen del caso

Se analizan 25 tiempos hasta el fallo de un equipo (horas de funcionamiento hasta cada avería) y 20 tiempos de reparación. El ajuste se hace por máxima verosimilitud (MLE) con intervalos de confianza al 90 %.

1.63forma β (>1 indica desgaste)
962 hescala η (vida característica)
861 hMTBF
8.75 hMTTR
98.99 %disponibilidad intrínseca
243 hvida B10
IndicadorValorIntervalo de confianza 90%
Forma β (pendiente Weibull)1.635[1.274 ; 2.099]
Escala η (vida característica)962 h[777 ; 1,191] h
MTBF (tiempo medio entre fallos)861 hderivado del ajuste
MTTR (tiempo medio de reparación)8.75 hajuste Weibull de reparaciones
Disponibilidad intrínseca A98.994 %MTBF/(MTBF+MTTR)
B10 (vida al 10 % de fallos)243 ha partir del ajuste
B50 (vida mediana)769 ha partir del ajuste
Ajuste alternativo Weibull 3P: γ140.6 hMejora significativa
Modelo exponencial (tasa constante)MTBF = 855 hválido solo si la tasa de fallos es constante
Nota metodológica: los datos son simulados con parámetros conocidos (β = 2,0 y η = 1.000 h) para que el ejemplo sea reproducible y verificable; las gráficas se generan llamando a las funciones de la propia librería. Con datos reales basta sustituir el vector de tiempos.

2. Visualizaciones

Gráfica de probabilidad Weibull (ajuste por máxima verosimilitud)
Gráfica de probabilidad Weibull (ajuste por máxima verosimilitud)Los puntos son los tiempos hasta el fallo; la recta es el ajuste Weibull 2P y el sombreado su intervalo de confianza al 90%. Si los puntos se alinean, el modelo Weibull es adecuado.
Fiabilidad R(t) y comparación de modelos
Fiabilidad R(t) y comparación de modelosProbabilidad de que el equipo siga funcionando al llegar a cada instante. Se comparan tres modelos: Weibull de 2 parámetros, Weibull de 3 (con parámetro de localización) y exponencial (tasa de fallos constante).
Probabilidad de fallo acumulada F(t) y vida B10
Probabilidad de fallo acumulada F(t) y vida B10Probabilidad de haber fallado antes de cada instante. B10 es la vida para la que se espera un 10 % de fallos.
Densidad del tiempo hasta el fallo
Densidad del tiempo hasta el falloDistribución de la vida del equipo: muestra dónde se concentran los fallos y sitúa el MTBF (tiempo medio entre fallos).
Tasa de fallos h(t)
Tasa de fallos h(t)Ritmo instantáneo de fallos. Con β > 1 crece con el tiempo (desgaste); con β = 1 sería constante (la zona útil de la curva de la bañera) y con β < 1 disminuiría (mortalidad infantil). Aquí β se estima en 1.63.
Riesgo acumulado H(t)
Riesgo acumulado H(t)Suma del riesgo a lo largo del tiempo. Se usa con la distribución de Poisson para estimar la probabilidad de fallos en un intervalo.
Vida residual media
Vida residual mediaVida media que le queda al equipo sabiendo que ya lleva t horas funcionando. Sirve para decidir si conviene seguir operando, reparar o sustituir.
Mantenibilidad M(t) y tiempo medio de reparación
Mantenibilidad M(t) y tiempo medio de reparaciónProbabilidad de haber terminado la reparación antes de cada instante, con los tiempos observados y el tiempo medio de reparación (MTTR).
Percentiles de vida (B1, B5, B10, B50, B90)
Percentiles de vida (B1, B5, B10, B50, B90)Tiempo para el que se espera ese porcentaje de fallos: B10 es la referencia habitual para planificar sustituciones; B50 es la vida mediana.
Disponibilidad intrínseca
Disponibilidad intrínsecaA = MTBF / (MTBF + MTTR). Como el MTTR se mantiene, la disponibilidad solo mejora al aumentar el tiempo entre fallos (o al reducir el tiempo de reparación).

3. Código utilizado

Ver el código Python (unas 15 líneas)
import numpy as np
from reliability.Fitters import Fit_Weibull_2P
from reliability.Probability_plotting import Weibull_probability_plot

tiempos_hasta_fallo = [...]          # horas de funcionamiento de cada fallo

ajuste = Fit_Weibull_2P(failures=tiempos_hasta_fallo, CI=0.9)
d = ajuste.distribution              # distribucion ajustada

print(ajuste.results)                # beta, eta e intervalos de confianza
print("MTBF:", d.mean)
print("B10 :", d.quantile(0.10))
print("R(500 h):", d.SF(500))        # fiabilidad a 500 h

Weibull_probability_plot(failures=tiempos_hasta_fallo, CI=0.9)   # grafica de probabilidad
d.plot()                             # reutiliza las graficas de la libreria

4. Por qué cada gráfica es útil