Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Análisis de datos de supervivencia o confiabilidad

Este ejemplo muestra cómo analizar los datos de duración con censura. En aplicaciones biológicas o médicas, esto se conoce como análisis de supervivencia, y los tiempos pueden representar el tiempo de supervivencia de un organismo o el tiempo hasta que se cura una enfermedad. En las aplicaciones de ingeniería, esto se conoce como análisis de confiabilidad, y los tiempos pueden representar el tiempo hasta el fracaso de una pieza de equipo.

Nuestro ejemplo modela el tiempo al fracaso de un acelerador de un sistema de inyección de combustible de automóvil.

Propiedades especiales de datos de por vida

Algunas características de los datos de por vida los distinguen otros tipos de datos. Primero, los tiempos de vida son siempre valores positivos, usualmente representando el tiempo. En segundo lugar, algunas vidas pueden no observarse exactamente, por lo que se sabe que sólo son más grandes que algún valor. En tercer lugar, las distribuciones y técnicas de análisis que se utilizan habitualmente son bastante específicas para los datos de por vida

Vamos a simular los resultados de la prueba de 100 aceleradores hasta el fracaso. Generaremos datos que podrían observarse si la mayoría de las limitaciones tuvieran una vida útil bastante larga, pero un pequeño porcentaje tendía a fallar muy pronto.

rng(2,'twister'); lifetime = [wblrnd(15000,3,90,1); wblrnd(1500,3,10,1)]; 

En este ejemplo, supongamos que estamos probando las limitaciones en condiciones estresantes, de modo que cada hora de prueba equivale a 100 horas de uso real en el campo. Por razones pragmáticas, suele ser el caso de que las pruebas de confiabilidad se detengan después de una cantidad de tiempo fija. Para este ejemplo, usaremos 140 horas, lo que equivale a un total de 14.000 horas de servicio real. Algunos elementos fallan durante la prueba, mientras que otros sobreviven a las 140 horas enteras. En una prueba real, los tiempos para este último se registrarían como 14.000, y lo imitamos en los datos simulados. También es una práctica común ordenar los tiempos de falla.

T = 14000; obstime = sort(min(T, lifetime)); 

Sabemos que cualquier limitación que sobreviva a la prueba fracasará eventualmente, pero la prueba no es lo suficientemente larga para observar su tiempo real hasta el fracaso. Sus vidas sólo se sabe que son mayores de 14.000 horas. Se dice que estos valores son censurados. Esta gráfica muestra que alrededor del 40% de nuestros datos son censurados en 14.000.

failed = obstime(obstime<T); nfailed = length(failed); survived = obstime(obstime==T); nsurvived = length(survived); censored = (obstime >= T); plot([zeros(size(obstime)),obstime]', repmat(1:length(obstime),2,1), ...      'Color','b','LineStyle','-') line([T;3e4], repmat(nfailed+(1:nsurvived), 2, 1), 'Color','b','LineStyle',':'); line([T;T], [0;nfailed+nsurvived],'Color','k','LineStyle','-') text(T,30,'<--Unknown survival time past here') xlabel('Survival time'); ylabel('Observation number') 

Formas de mirar distribuciones

Antes de examinar la distribución de los datos, consideremos diferentes formas de ver una distribución de probabilidad.

  • Una función de densidad de probabilidad (PDF) indica la probabilidad relativa de error en momentos diferentes.

  • Una función de sobreviviente da la probabilidad de supervivencia como una función del tiempo, y es simplemente una menos la función de distribución acumulativa (1-CDF).

  • La tasa de peligro da la probabilidad instantánea de fracaso dada la supervivencia a un tiempo dado. Es el PDF dividido por la función de superviviente. En este ejemplo, las tasas de peligro resultan ser crecientes, lo que significa que los artículos son más susceptibles al fracaso a medida que pasa el tiempo (envejecimiento).

  • Una gráfica de probabilidad es un CDF reescalado y se utiliza para comparar datos con una distribución ajustada.

Estos son algunos ejemplos de esos cuatro tipos de trazado, utilizando la distribución de Weibull para ilustrar. Weibull es una distribución común para el modelado de datos de duración.

x = linspace(1,30000); subplot(2,2,1); plot(x,wblpdf(x,14000,2),x,wblpdf(x,18000,2),x,wblpdf(x,14000,1.1)) title('Prob. Density Fcn') subplot(2,2,2); plot(x,1-wblcdf(x,14000,2),x,1-wblcdf(x,18000,2),x,1-wblcdf(x,14000,1.1)) title('Survivor Fcn') subplot(2,2,3); wblhaz = @(x,a,b) (wblpdf(x,a,b) ./ (1-wblcdf(x,a,b))); plot(x,wblhaz(x,14000,2),x,wblhaz(x,18000,2),x,wblhaz(x,14000,1.1)) title('Hazard Rate Fcn') subplot(2,2,4); probplot('weibull',wblrnd(14000,2,40,1)) title('Probability Plot') 

El ajuste de una distribución de Weibull

La distribución de Weibull es una generalización de la distribución exponencial. Si los tiempos de vida siguen una distribución exponencial, entonces tienen una tasa de riesgo constante. Esto significa que no envejecen, en el sentido de que la probabilidad de observar un fallo en un intervalo, dada la supervivencia al inicio de ese intervalo, no depende de dónde comience el intervalo. Una distribución de Weibull tiene una tasa de peligro que puede aumentar o disminuir.

Otras distribuciones utilizadas para modelar datos de duración incluyen las distribuciones lognormal, gamma y Birnbaum-Saunders.

Trazaremos la función de distribución acumulativa empírica de nuestros datos, mostrando la proporción que falla hasta cada posible tiempo de supervivencia. Las curvas punteadas dan un 95% de intervalos de confianza para estas probabilidades.

subplot(1,1,1); [empF,x,empFlo,empFup] = ecdf(obstime,'censoring',censored); stairs(x,empF); hold on; stairs(x,empFlo,':'); stairs(x,empFup,':'); hold off xlabel('Time'); ylabel('Proportion failed'); title('Empirical CDF') 

Esta gráfica muestra, por ejemplo, que la proporción que falla por el tiempo 4.000 es de aproximadamente 12%, y una confianza del 95% para la probabilidad de fracaso en este momento es del 6% al 18%. Tenga en cuenta que debido a que nuestra prueba sólo funcionó 14.000 horas, el CDF empírico sólo nos permite calcular las probabilidades de error a ese límite. Casi la mitad de los datos fueron censurados a 14.000, por lo que el CDF empírico sólo asciende a alrededor de 0,53, en lugar de 1,0.

La distribución de Weibull es a menudo un buen modelo para la falla del equipo. La función se ajusta a la distribución de Weibull a los datos, incluyendo los datos con censura.wblfit Después de calcular las estimaciones de parámetros, evaluaremos el CDF para el modelo Weibull ajustado, utilizando esas estimaciones. Dado que los valores de CDF se basan en parámetros estimados, calcularemos los límites de confianza para ellos.

paramEsts = wblfit(obstime,'censoring',censored); [nlogl,paramCov] = wbllike(paramEsts,obstime,censored); xx = linspace(1,2*T,500); [wblF,wblFlo,wblFup] = wblcdf(xx,paramEsts(1),paramEsts(2),paramCov); 

Podemos superponer parcelas del CDF empírico y el CDF ajustado, para juzgar qué tan bien la distribución de Weibull modela los datos de confiabilidad del acelerador.

stairs(x,empF); hold on handles = plot(xx,wblF,'r-',xx,wblFlo,'r:',xx,wblFup,'r:'); hold off xlabel('Time'); ylabel('Fitted failure probability'); title('Weibull Model vs. Empirical') 

Tenga en cuenta que el modelo de Weibull nos permite proyectar y calcular las probabilidades de error para los tiempos más allá del final de la prueba. Sin embargo, parece que la curva ajustada no coincide con nuestro pozo de datos. Tenemos demasiados fracasos tempranos antes del tiempo 2.000 en comparación con lo que el modelo de Weibull predeciría, y como resultado, demasiado pocos para veces entre aproximadamente 7.000 y alrededor de 13.000. Esto no es sorprendente-recordemos que hemos generado datos con sólo este tipo de comportamiento.

Adición de una estimación no paramétrica suave

Las funciones predefinidas proporcionadas con las estadísticas y herramientas de aprendizaje automático™ no incluyen ninguna distribución que tenga un exceso de errores tempranos como este. En su lugar, podríamos querer dibujar una curva suave y no paramétrica a través de la CDF empírica, usando la función.ksdensity Eliminaremos las bandas de confianza para el CDF de Weibull y añadiremos dos curvas, una con el parámetro de suavizado predeterminado y otra con un parámetro de suavizado 1/3 el valor predeterminado. El parámetro de suavizado más pequeño hace que la curva siga los datos más estrechamente.

delete(handles(2:end)) [npF,ignore,u] = ksdensity(obstime,xx,'cens',censored,'function','cdf'); line(xx,npF,'Color','g'); npF3 = ksdensity(obstime,xx,'cens',censored,'function','cdf','width',u/3); line(xx,npF3,'Color','m'); xlim([0 1.3*T]) title('Weibull and Nonparametric Models vs. Empirical') legend('Empirical','Fitted Weibull','Nonparametric, default','Nonparametric, 1/3 default', ...        'location','northwest'); 

La estimación no paramétrica con el parámetro de suavizado más pequeño coincide con el pozo de datos. Sin embargo, al igual que para el CDF empírico, no es posible extrapolar el modelo no paramétrico más allá del final de la prueba--los niveles de CDF estimados se apagaron por encima de la última observación.

Calculemos la tasa de peligro para este ajuste no paramétrico y lo trazamos sobre el rango de los datos.

hazrate = ksdensity(obstime,xx,'cens',censored,'width',u/3) ./ (1-npF3); plot(xx,hazrate) title('Hazard Rate for Nonparametric Model') xlim([0 T]) 

Esta curva tiene un poco de una forma de "bañera", con una tasa de peligro que es alta cerca de 2.000, cae a valores más bajos, luego se eleva de nuevo. Esto es típico de la tasa de riesgo para un componente que es más susceptible al fracaso a principios de su vida (mortalidad infantil), y de nuevo más tarde en su vida (envejecimiento).

Observe también que la tasa de peligro no se puede estimar por encima de la observación sin censura más grande para el modelo no paramétrico, y el gráfico cae a cero.

Modelos alternativos

Para los datos simulados que hemos usado para este ejemplo, descubrimos que una distribución de Weibull no era un ajuste adecuado. Pudimos encajar bien los datos con un ajuste no paramétrico, pero ese modelo sólo era útil dentro del rango de los datos.

Una alternativa sería utilizar una distribución paramétrica diferente. El cuadro de herramientas estadísticas y aprendizaje automático incluye funciones para otras distribuciones comunes de por vida, como lognormal, gamma y Birnbaum-Saunders, así como muchas otras distribuciones que no se usan habitualmente en modelos de duración. También puede definir y ajustar modelos paramétricos personalizados a los datos de duración, como se describe en el ejemplo.Adaptación de distribuciones univariadas personalizadas, parte 2

Otra alternativa sería utilizar una mezcla de dos distribuciones paramétricas--una que represente una falla temprana y la otra represente el resto de la distribución. En el ejemplo se describe el ajuste de las mezclas de distribuciones.Adaptación de distribuciones univariadas personalizadas