El diagrama de Weibull es una técnica gráfica para determinar si el conjunto de datos proviene de una población que lógicamente se ajusta a una distribución de Weibull de 2 parámetros. Antes de discutir el diagrama de Weibull en detalle, primero debemos conocer la distribución de Weibull.
Distribución Weibull:
La fórmula para la distribución de densidad de probabilidad para la distribución de Weibull es:
donde, Y (gamma) es el parámetro de forma, u (mu) se llama parámetro de ubicación y ∝ (alfa) se llama parámetro de escala. El caso en el que u=0 y ∝ =1 se denomina distribución estándar de Weibull.
Distribución de Weibull de dos parámetros:
La distribución Weibull de dos parámetros es el caso especial de la distribución Weibull en la que u=0. En este caso, la ecuación para la distribución estándar de Weibull se reduce a:
La fórmula para la función de distribución acumulativa de la distribución de Weibull es:
diagrama de Weibull
El diagrama de Weibull tiene escalas especiales de ejes que si el conjunto de datos está en la distribución de Weibull, entonces los puntos estarán en una línea casi recta. El ajuste de mínimos cuadrados de la línea da la forma y el parámetro de escala de la distribución de Weibull considerando que el parámetro de ubicación es 0.
La distribución de Weibull también tiene la propiedad de que un parámetro de escala supera el 63,2% de los puntos independientemente del valor del parámetro de forma. En este gráfico, dibujamos una línea horizontal en el 63,2 % del eje y. El componente del eje x del punto donde se cruza con la línea ajustada por mínimos cuadrados se denomina parámetro de escala.
El diagrama de Weibull está formado por los siguientes dos ejes:
- Eje vertical: probabilidad acumulada de Weibull en términos de porcentaje
- Eje Horizontal: Tiempos de falla ordenados (en escala Log10).
La escala vertical se obtiene mediante la fórmula:
Donde, i es el rango de la observación.
El diagrama de Weibull se usa para responder las siguientes preguntas:
- ¿La distribución siguió una distribución de Weibull de 2 parámetros?
- ¿Cuál es la mejor estimación para el parámetro de forma de la distribución de Weibull de 2 parámetros?
- ¿Cuál es la mejor estimación para el parámetro de escala de la distribución de Weibull de 2 parámetros?
Aplicaciones:
El diagrama de Weibull se usa generalmente en las siguientes áreas:
- En análisis de fallas e ingeniería de confiabilidad.
- Análisis de garantía
- Estimación del tiempo de vida de diferentes aleaciones e implantes.
Implementación
- En esta implementación, también usaremos la biblioteca Weibull , así como algunos paquetes comunes de ciencia de datos (Numpy, Pandas y Seaborn). Todas estas bibliotecas están preinstaladas en Colab y se pueden instalar en el entorno local con pip install .
- Para este código, utilizaremos un conjunto de datos de resistencia a la tracción de VANGEL. El conjunto de datos se puede descargar desde aquí .
Python3
# code import pandas as pd import matplotlib.pyplot as plt import scipy.stats as ss import numpy as np import seaborn as sns import weibull # generate standard weibull distribution of different Shape parameter gamma_1 = np.random.weibull(a=1,size=1000) gamma_half = np.random.weibull(a=0.5,size=1000) gamma_5 = np.random.weibull(a=5,size=1000) gamma_10 = np.random.weibull(a=10,size=1000) # plot different Weibull distribution sns.set_style('darkgrid') fig, ax = plt.subplots(2,2) sns.histplot(gamma_1,kde=True,ax= ax[0,0] ) ax[0,0].set_title('Gamma = 1 ') sns.histplot(gamma_half,kde=True, ax= ax[0,1], legend='Y=0.5') ax[0,1].set_ylim([0,200]) ax[0,1].set_title('Gamma = 0.5 ') sns.histplot(gamma_5,kde=True, ax= ax[1,0], legend='Y=5') ax[1,0].set_title('Gamma = 5 ') sns.histplot(gamma_10,kde=True, ax= ax[1,1], legend='Y=10') ax[1,1].set_title('Gamma = 10 ') plt.show() # load dataset specimen_strength = pd.read_csv('tensile strength.txt', header=None) specimen_strength.head() # perform weibull analysis analysis=weibull.Analysis(specimen_strength[0]) # Here, we can fit using two method, mle (maximum likelihood) # and lr (linear regression). Generally mle is better fit analysis.fit(method='lr') # print shape parameter (Beta) and scale parameter (eta) print(f'shape Parameter: {analysis.beta: .02f}') print(f'Scale Parameter: {analysis.eta: .02f}') # print values of different parameters confidence interval analysis.stats # generate Weibull probplot analysis.probplot()
0 ----------------- 0 25.722681 1 24.319706 2 31.007387 3 25.240414 4 35.406261
shape Parameter: 3.55 Scale Parameter: 31.87
r_squared 0.96102 p_value 7.32837e-71 fit method linear regression confidence 0.9 beta lower limit 3.1598 beta nominal 3.55485 beta upper limit 3.9993 eta lower limit 30.284 eta nominal 31.8747 eta upper limit 33.5488 mean life 28.7029 median life 28.7521 b10 life 16.9246 dtype: object
- Del gráfico anterior, podemos inferir que los datos siguen de cerca la distribución de Weibull con el valor dado del parámetro de forma y escala.