Maggio 2019
Volume 34 Numero 5
[Machine Learning]
Uso delle analisi di sopravvivenza per la manutenzione predittiva
Dal Zvi Topol | Maggio 2019
Alcuni anni fa, ho introdotto le nozioni di base di analisi di sopravvivenza e descritto come implementare un algoritmo non parametrici denominato Kaplan Meier in C# (msdn.com/magazine/dn630650). A questo punto, devo esaminare un altro in analisi di sopravvivenza, in particolare in due metodologie più avanzate che sono immediatamente disponibili su due piattaforme diffuse per machine learning, libreria Spark di Machine Learning (MLLib) e h2o.ai, che sono entrambi supportati da Azure HDInsight. Si utilizzerà un caso d'uso di manutenzione predittiva, come illustrato nell'esempio in corso.
Manutenzione predittiva per l'Industrial Internet delle cose
L'idea principale il settore IOT (IIoT) consiste nel connettere i computer, dispositivi, sensori e apparecchiature industriali e le applicazioni all'interno dell'organizzazione e a continuamente raccoglierne i dati, ad esempio errori di sistema e telemetria automatica, tutti i Questi valori con l'obiettivo di l'analisi e i dati per ottimizzare l'efficienza operativa.
L'obiettivo della manutenzione predittiva consiste nello stimare con precisione quando una macchina o uno qualsiasi dei relativi componenti non riuscirà. Se è possibile farlo, è possibile eseguire la manutenzione subito prima, secondo la stima tali errori si verificano. Questo è più efficiente rispetto a non eseguire le operazioni di manutenzione, fino a quando non si verifica un errore, nel qual caso la macchina o il componente non sarà disponibile finché non viene risolto l'errore, se davvero è reversibile. Tali tempi di inattività non pianificato è probabilmente molto costosi.
Manutenzione predittiva è anche più efficace rispetto all'esecuzione di attività di manutenzione preventiva a intervalli frequenti, che può anche essere costlier manutenzione superflua può essere applicata.
L'esempio e i dati che utilizzerò sono una versione modificata dell'esempio nella bit.ly/2J4WnbN. L'esempio include 100 computer di produzione, con nessuna interdipendenze tra le macchine. Ogni macchina è uno dei quattro modelli possibili.
I dati per le macchine virtuali includono una cronologia degli errori, operazioni di manutenzione e i dati di telemetria di sensore, nonché informazioni relative al modello e il periodo di validità (in anni) dei computer. Questi dati sono disponibili nei file CSV scaricabili dalla risorsa di cui è indicata in precedenza. Fornirà anche un file di dati trasformati (comp1_df.csv) che è "pronto per analisi di sopravvivenza" e verrà illustrato come eseguire le trasformazioni in un secondo momento.
Ogni computer nell'esempio originale include quattro componenti diversi, ma voglio lo stato attivo solo in un componente. Il componente può essere gestito in modo proattivo prima di un errore, o mantenuto dopo l'errore per il ripristino.
Analisi di sopravvivenza
Nel mio articolo precedente sulle analisi di sopravvivenza, ho presentato importanti concetti di base che è possibile utilizzare ed estendere in questo articolo. Consiglia di leggere l'articolo per acquisire familiarità con questi concetti, tra cui le funzioni di sopravvivenza e pericolo, censoring e non parametrici stimatore Kaplan Meier (KM).
In questo articolo verrà illustrato come estendere il concetto di strumento di stima della KM includere covariate o variabili (noto anche come caratteristiche) che possono avere effetti su sopravvivenza o, in questo caso, in caso di errore dei componenti della macchina. Nell'esempio, verrà utilizzare modelli di machine, macchina età e i dati di telemetria di macchina come covariate e utilizzare i modelli di regressione di sopravvivenza per valutare gli effetti di questo tipo covariate in caso di errore macchina.
La nozione di stimare gli effetti di covariate in una variabile di destinazione, in questo caso il tempo necessario per errore, di pericolo o le probabilità di sopravvivenza, non è univoca per l'analisi di sopravvivenza e costituisce la base per i modelli di regressione in generale.
Quando si compilano modelli statistici, noterete che covariate dei tre tipi di dati primario: categoriche, ordinale e continuo. I tipi di dati categorici sono tali che rientrano in alcune categorie discrete. In questo caso, un modello è un tipo di dati categorici, sono disponibili quattro modelli di computer diverso. Tipi di dati ordinali sono tipi di dati categorici che dispongono di un ordine significativo. Ad esempio valutazioni di film da uno a 10, in cui 10 è il più divertente e uno minore. Infine, tipi di dati continui sono quelli che rappresentano numeri continui. Quelli sarebbe macchina telemetria letture in questo caso, costituiti da numeri continui campionati in determinati orari (in questo caso, ogni ora).
Dopo aver identificato i tipi di dati e la metodologia da usare, è consigliabile codificare i vari tipi di dati in covariate. In genere, per i modelli di regressione, le variabili continue sono naturalmente codificate come covariate continui, mentre i tipi di dati categorici richiederà qualche tipo di codifica. È un'opzione diffusa per questo tipo di codifica, che utilizzerò in questo articolo, in cui, per i tipi di dati categorici con categorie N, vengono create covariate n-1, e una categoria i verrà rappresentata impostando relativo covariati specifico del valore e tutti gli altri a zero. La categoria ennesima verrà rappresentata impostando tutti covariate su zero. Si tratta in genere una scelta ideale per i modelli di regressione con una linea di base definito in modo esplicito, in cui tutti covariate possono essere uguale a zero. Questo è il formato che usa il linguaggio di programmazione R per codificare variabili categoriche o fattori.
Questa codifica per categoricals dispone di una semplice interpretazione per che cosa significa per alcuni o tutti covariate sia impostato su zero. Tuttavia, per i tipi di dati continui, l'impostazione di un determinato covariati a zero non siano sempre significativo. Ad esempio, se un covariati rappresenta computer altezza o larghezza, impostazione di tali covariati su zero sarebbe inutili, poiché in realtà non siano presenti tali macchine.
Un modo risolvere questo problema consiste nell'usare covariate continua centrati mean, in cui per un determinato covariati, relativa Media sul training set viene sottratto dal valore. Quindi, quando si imposta tali covariati trasformato a zero, è equivalente all'impostazione di covariati originali al valore medio. Questa tecnica è detta "significa ruotava" e che utilizzerò qui per i covariate macchina età e i dati di telemetria.
È importante tenere presente che, dopo questa trasformazione, è necessario utilizzare sempre covariate centrati mean come input al modello. Ciò si verifica anche quando si applica il modello di regressione per un nuovo set di dati di test.
Una volta che i valori dei dati sono codificati come covariate, i modelli di regressione di sopravvivenza intraprendere tali covariate e determinate forme di variabili di destinazione di sopravvivenza (cui parlerò a breve) e specificare un modello che collega gli effetti di questo tipo covariate sopravvivenza/ora-a-evento .
Trasformazione dei dati nel formato di sopravvivenza e progettazione di funzionalità
Per usare i modelli di regressione di sopravvivenza che descriverò, i dati devono avere almeno due campi: il timestamp dell'evento di interesse (, errore del computer) e un campo booleano che indica se censoring si è verificato. (In questo caso, censoring descrive una situazione in cui non si è verificato errore in corrispondenza o prima un tempo specificato. Nel mio esempio, la manutenzione in corso in maniera preventiva, anziché come una risposta all'errore, viene considerata per essere censoring.
I modelli di regressione di sopravvivenza che mi occuperò hanno diverse ipotesi effettuate per semplificare la derivazione matematica. Alcuni di questi presupposti potrebbe non essere valido in questo caso, ma è comunque utile applicare sopravvivenza di modellazione per questo esempio.
La documentazione di analisi di sopravvivenza è molto dettagliata e molti avanzati modelli di regressione di sopravvivenza e tecniche sono state sviluppate all'indirizzo e sostituire alcuni di tali ipotesi. Altre informazioni su tali modelli e le tecniche del libro, "L'analisi di errore tempo dati statistici" Kalbfleisch e Prentice (Wiley-Interscience, 2002), alla bit.ly/2TACdLR.
Sarà si basano sul presupposto che ogni operazione di manutenzione eseguiti in un componente machine completamente Reimposta il componente in questione e possono pertanto essere trattato in modo indipendente. È quindi possibile usare la regressione di sopravvivenza in due tipi di intervalli (rappresentati figura 1):
- L'intervallo tra un errore e la precedente operazione di manutenzione (ora evento).
- L'intervallo tra operazioni di manutenzione successiva (censoring).
Figura 1 sopravvivenza rappresentazione degli errori di computer
In ogni intervallo figura 1 inizia con un'operazione di manutenzione. Il primo tipo di intervallo termina con X, che indica un errore, mentre il secondo tipo termina con O, che indica un'altra operazione di manutenzione prima di un errore (si tratta essenzialmente un'operazione di manutenzione proattiva), ovvero in questo caso un'osservazione censored.
Di conseguenza, i dati originali devono essere trasformati in questo formato con i due campi obbligatori. Il campo "time_to_event" rappresenta l'ora in ore fino a quando non si verifica un errore o la successiva manutenzione. Il campo "event" è impostato su uno di un errore e su zero per un'operazione di manutenzione prima dell'errore.
È spesso opportuno eseguire ulteriori trasformazioni su covariate, che viene spesso definito "progettazione di funzionalità". Lo scopo di questo processo è generare covariate con meglio le potenzialità predittive. Ad esempio, è possibile creare un altro covariati calcolare la media della pressione in 10 ore prima dell'errore. Sono disponibili molte opzioni diverse per le funzioni e finestre temporali possibili per creare questo tipo covariate e sono disponibili alcuni strumenti utilizzabili per automatizzare questo processo, ad esempio il tsfresh pacchetti Python open source (tsfresh.readthedocs.io/en/ più recente).
Ora voglio discutere i modelli di regressione di due sopravvivenza: il modello di rischio proporzionale Cox (o PH Cox) disponibile in h2o.ai e il modello di Weibull accelerata errore ora disponibile in MLLib di Spark.
Regressione Cox positive proporzionale
È importante ricordare che una funzione di pericolo determina la frequenza degli eventi in fase di t per singoli utenti attivi al momento t o gli oggetti. Ad esempio la manutenzione predittiva, può essere descritto come la probabilità di errore nell'ora successiva, per un determinato momento t e per tutti i computer in cui non si è verificato errore componente 1 poiché relativa manutenzione ultimo. La velocità di pericolo implica un rischio maggiore di riscontra un errore. La regressione Cox PH stima gli effetti di covariate sulla percentuale di rischio in base al modello seguente:
In questo caso, h(t) è la funzione di rischio in fase di t, h0(t) è il pericolo di linea di base in fase di t, le variabili Xi sono i diversi covariate e le versioni Beta corrispondente sono coefficienti corrispondente per i covariate (altre informazioni sono disponibili un po' più avanti). Il rischio della linea di base è il pericolo quando covariate tutti sono uguali a zero. Si noti che questo è strettamente correlato all'intercetta in altri modelli di regressione, ad esempio la regressione lineare o logistica.
In base a questo modello, non vi è alcuna relazione diretta tra i covariate e l'ora di sopravvivenza. Questo modello viene chiamato semi-parametrico perché la velocità di pericolo ora t è una funzione di un tasso di rischio per la linea di base che viene stimato dai dati e non dispone di una forma chiusa parametrica sia un componente di moltiplicazione che dispone di parametri.
Il motivo di che questo modello viene chiamato un modello di rischio proporzionale è perché consente di confrontare il rapporto tra due funzioni di pericolo. In questo caso, dato un modello stimato, è il rapporto tra due punti dati diverse:
La frequenza di rischio per la linea di base viene cancellato e il rapporto risulta tra i pericoli è solo una funzione di coefficienti e covariate e anche in questo caso non dipende dal tempo. Si tratta in cui viene stimato il log di quante probabilità ci strettamente correlate a logistic regression. Inoltre, il modello di regressione PH Cox non specifica direttamente la sopravvivenza (funzione) e le informazioni che fornisce gli elementi attivi nel rapporto o proporzione di funzioni di pericolo. Pertanto, viene principalmente usato per comprendere gli effetti di covariate sulla capacità di sopravvivenza, anziché direttamente stimare la funzione di sopravvivenza.
Con il PH Cox modello specificato, i coefficienti e il rischio non parametrici della linea di base può essere stimate tramite diverse tecniche. Una tecnica comune è la stima di probabilità massima parziale (utilizzata anche in h2o.ai).
Il frammento di codice seguente è uno script R che esegue una stima del modello Cox PH usando h2o.ai nei covariate centrati mean (telemetria automatica ed età) e il modello di machine covariati organizzato per categorie:
library(h2o)
localH2O <- h2o.init()
inputFileName<-'comp1_df.csv'
df<-read.csv(inputFileName, header=TRUE, stringsAsFactors=TRUE)
df.hex <- as.h2o(df, key = "df.hex")
model <- h2o.coxph(x = c("age_mean_centered", "model","volt_mean_centered",
"rotate_mean_centered","pressure_mean_centered", "vibration_mean_centered"),
event_column = "event", stop_column ="time_to_event" ,training_frame = df.hex)
summary(model)
Al momento della stesura di questo articolo, il modello di PH Cox h2o.ai non è disponibile per l'uso di Python, pertanto viene fornito il codice R. Le istruzioni di installazione sono disponibili in bit.ly/2z2QweL, o, per h2o.ai con Azure HDInsight, alla bit.ly/2J7nXp6.
Esegue il frammento di codice genera l'output illustrato nella figura 2.
Figura 2 Output per la regressione Cox PH
Surv(time_to_event, event) ~ model + volt_mean_centered + rotate_mean_centered +
pressure_mean_centered + vibration_mean_centered + age_mean_centered
n= 709, number of events= 192
coef exp(coef) se(coef) z Pr(>|z|)
model.model2 -0.066955 0.935237 0.257424 -0.260 0.795
model.model3 -0.021837 0.978400 0.215614 -0.101 0.919
model.model4 0.308878 1.361896 0.227469 1.358 0.174
volt_mean_centered 0.031903 1.032418 0.003990 7.995 1.33e-15 ***
rotate_mean_centered 0.001632 1.001633 0.001362 1.199 0.231
pressure_mean_centered -0.008164 0.991869 0.005768 -1.415 0.157
vibration_mean_centered 0.018220 1.018387 0.013866 1.314 0.189
age_mean_centered 0.004804 1.004815 0.013293 0.361 0.718
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
model.model2 0.9352 1.0692 0.5647 1.549
model.model3 0.9784 1.0221 0.6412 1.493
model.model4 1.3619 0.7343 0.8720 2.127
volt_mean_centered 1.0324 0.9686 1.0244 1.041
rotate_mean_centered 1.0016 0.9984 0.9990 1.004
pressure_mean_centered 0.9919 1.0082 0.9807 1.003
vibration_mean_centered 1.0184 0.9819 0.9911 1.046
age_mean_centered 1.0048 0.9952 0.9790 1.031
Rsquare= 0.094 (max possible= 0.941 )
Likelihood ratio test= 70.1 on 8 df, p=4.69e-12
Wald test = 70.19 on 8 df, p=4.514e-12
La prima cosa importante da notare è i coefficienti dei covariate stimati. Covariati il modello machine viene codificato come un tipo di dati categorici. La linea di base per questa categoria è model1, che vengono rappresentati impostando la tre covariate codifica di altri tre modelli di machine (model.model2, model.model3 e model.model4) su zero. Ogni covariati Ottiene un proprio coefficiente. È importante comprendere come interpretare i coefficienti.
Se si applica la funzione esponenziale per i coefficienti per i covariate modello macchina (exp(coeff) nell'output), viene visualizzato che tale model.model2 ha il valore 0.9352, mentre model.model4 ha un valore di 1.3619. Ciò significa che le macchine di model2 abbiano una velocità pericolo 6,5% inferiore rispetto alla velocità di pericolo del modello di macchina della linea di base (modello 1) e che le macchine di model.model4 dispongano di un rischio di 36.2 percentuale rispetto alle macchine di model.model1 nettamente superiore. In altre parole, le macchine di model.model4 presentano il maggior rischio di errore, mentre le macchine di model.model2 hanno il più basso rischio di errori. Pertanto, quando l'assegnazione delle priorità delle operazioni di manutenzione, il modello del computer deve essere un fattore importante da prendere in considerazione.
Tutte le altre covariate sono mean covariate continua centrati. L'interpretazione dei coefficienti affiliato a essi è che ora il rapporto tra il pericolo applicando il valore esponenziale dei covariate intorno a loro possibilità. Pertanto, aumentando valore covariati di un'unità (mantenere tutte le altre covariate fissate), il rapporto tra il pericolo aumenta o diminuisce base il valore esponenziale del coefficiente (in modo analogo a quello della variabile categorica). Quindi, ad esempio, aumentando la tensione di un'unità, aumenta il rischio di errore 3.2 percento.
Un altro punto importante da citare qui riguarda le tecniche di diagnostica del modello. Tali tecniche forniscono una base per capire se il modello considerato (in questo caso, il modello PH Cox) è appropriato. In questo caso, il valore di Rsquare (un valore compreso tra zero e uno, maggiore sarà la migliore) è relativamente basso (0.094) e la maggior parte dei punteggi z dei coefficienti non indicano che i coefficienti sono statisticamente significativi (non c'è sufficiente evidenza per il supporto che si tratta di diversi da zero). Entrambi questi indicatori portare alla conclusione che ci sia spazio per analisi utilizzo software, ad esempio tramite la progettazione di funzionalità. Esistono anche altri test statistici che sono specifici per il modello Cox PH che deve essere eseguito. È possibile consultare la letteratura di analisi di sopravvivenza menzionato in precedenza per altri dettagli.
Il modello temporale di errore accelerata
Il modello di regressione di sopravvivenza in MLLib di Spark è il modello con accelerazione errore tempo (AFT). Questo modello consente di specificare una funzione essenziale da una determinata distribuzione teorico math (Weibull) direttamente e ha la proprietà della fase errore accelerata.
Il modello Site viene definito come indicato di seguito. Si supponga che un oggetto è caratterizzato da usando il covariate (lineare) e coefficienti:
Anche presuppongono che l'oggetto ha s(t) una funzione essenziale parametriche, indicato da s0(t), la funzione di riferimento di base di un oggetto di base (con covariate tutti impostati su zero). Il modello Site definisce la relazione tra s(t) e s0(t) come:
Da questa definizione è possibile visualizzare il motivo per cui il modello è denominato modello temporale di un errore con accelerazione. È perché la funzione di riferimento di base include un fattore di tasti di scelta rapida, la funzione esponenziale delle combinazioni di covariate, lineare che moltiplica il sopravvivenza ora t.
Questo tipo di modello è utile quando sono presenti determinati covariate, come la validità (nel set di dati, machine età), che potrebbe causare l'accelerazione monotona o decelerazione della fase di sopravvivenza/non riuscito.
Distribuzione di Weibull è una generalizzazione delle distribuzione esponenziale ed è una distribuzione continua più diffusa nei modelli di sopravvivenza parametriche. Esistono alcune varianti su come ne impostano i parametri. In questo caso, si utilizzerà la versione di distribuzione di Weibull due parametri seguente per t > = 0:
(Sono presenti anche le versioni con tre parametri.) I due parametri della distribuzione sono la forma su cui è determinata dal k e la scala è determinata dall'espressione lambda. Un'analogia approssimativa è il modo in cui che una distribuzione a campana presenta una caratteristica deviazione media e standard.
Tenere presente che la relazione tra f (t) funzione di densità distribuzione, il h(t) funzione pericolo e s(t) la funzione sopravvivenza è dato dai f (t) = h(t)s(t).
Di seguito sono le funzioni di pericolo e sopravvivenza Weibull:
A differenza del modello PH Cox, sia il riferimento di base e le funzioni di pericolo completamente specificate e hanno rappresentazioni parametriche. Consultare figura 3 e figura 4 per le visualizzazioni delle funzioni di sopravvivenza e di distribuzione di Weibull per diversi valori di k e lambda.
Figura 3 Weibull distribuzione forma come una funzione di diversi valori di K e Lambda
Figura 4 Weibull sopravvivenza funzione forma per diversi valori di K e Lambda
Figura 5 vengono illustrati gli effetti che covariate Site modello hanno la forma della funzione di sopravvivenza di Weibull.
Figura 5 accelerata ora dell'errore per la funzione di probabilità di sopravvivenza Weibull
Viene eseguita la stima dei coefficienti per il modello AFT Weibull in MLLib di Spark usando l'algoritmo stima la probabilità massima. Altre informazioni sul modo in cui si esegue al bit.ly/2XSauome trovare il codice di implementazione al bit.ly/2HtJw0v.
A differenza di stima del modello PH Cox, in cui vengono segnalati solo i coefficienti dei covariate (insieme ad alcune funzionalità di diagnostica), i risultati ottenuti dalla stima report modello Weibull AFT i coefficienti del covariate, nonché parametri specifici per la distribuzione di Weibull, ovvero un intercettazione e un parametro della scala. Verrà illustrato come convertire quelli k e lambda in un bit.
I risultati per l'implementazione di Weibull AFT in Spark MLLib corrispondono ai risultati per l'implementazione di Weibull AFT utilizzando la funzione survreg dalla libreria R più diffusi "sopravvivenza" (ulteriori dettagli sono disponibili nella bit.ly/2XSxkw8).
È possibile eseguire lo script R seguente per il Weibull AFT la stima del modello (il codice viene eseguito su un MLLi Spark installato in locale, ma è anche possibile usare Spark in HDInsight in bit.ly/2u2U5Qf):
library(survival)
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session(master = "local[*]")
inputFileName<-'comp1_df.csv'
df<-read.csv(inputFileName, header=TRUE, stringsAsFactors=TRUE)
aftMachineDF<-suppressWarnings(createDataFrame(df))
aftMachineModel <- spark.survreg(aftMachineDF,Surv(time_to_event, event) ~ model +
age_mean_centered + volt_mean_centered + rotate_mean_centered +
pressure_mean_centered + vibration_mean_centered)
summary(aftMachineModel)
Lo script genera solo i coefficienti stimati senza informazioni aggiuntive. È possibile ottenere tali informazioni eseguendo survreg (perché i risultati corrispondono):
library(survival)
machineModel<-survreg(Surv(time_to_event, event) ~ model + age_mean_centered +
volt_mean_centered+rotate_mean_centered + pressure_mean_centered +
vibration_mean_centered, df, dist='weibull')
summary(machineModel)
In questo caso, lo script R genera l'output di più elaborato visualizzato in figura 6.
Figura 6 Output per la regressione Site Weibull
survreg(formula = Surv(time_to_event, event) ~ model + age_mean_centered +
volt_mean_centered + rotate_mean_centered + pressure_mean_centered +
vibration_mean_centered, data = df, dist = "weibull")
Value Std. Error z p
(Intercept) 8.172991 0.119133 68.6040 0.00e+00
modelmodel2 0.040289 0.154668 0.2605 7.94e-01
modelmodel3 0.027225 0.129629 0.2100 8.34e-01
modelmodel4 -0.163865 0.136382 -1.2015 2.30e-01
age_mean_centered -0.000753 0.007960 -0.0946 9.25e-01
volt_mean_centered -0.019731 0.002583 -7.6391 2.19e-14
rotate_mean_centered -0.000767 0.000821 -0.9334 3.51e-01
pressure_mean_centered 0.005173 0.003496 .4795 1.39e-01
vibration_mean_centered -0.008214 0.008391 -0.9789 3.28e-01
Log(scale) -0.508060 0.051963 -9.7773 1.41e-22
Scale= 0.602
Weibull distribution
Loglik(model)= -1710.3 Loglik(intercept only)= -1747.2
Chisq= 73.73 on 8 degrees of freedom, p= 8.9e-13
Number of Newton-Raphson Iterations: 8
n= 709
Prima di procedere descrivere l'output, è importante menzionare che la parametrizzazione Weibull in MLLib di Spark e survreg è leggermente diversa da quello la parametrizzazione discusso.
Una trasformazione è obbligatorio e può essere eseguita come indicato di seguito. Indicare i parametri segnalate, ovvero intercetta m e s della scala, ovvero quindi k = 1/sec, lambda = exp(-m/s) e ogni coefficiente deve essere moltiplicato con (-1/s). Vi sia un pacchetto R denominato SurvRegCensCov che possono eseguire questa conversione automaticamente, usando ConvertWeibull sul modello che survreg stimato:
$vars
Estimate SE
lambda 1.260459e-06 8.642772e-07
gamma 1.662064e+00 8.636644e-02
modelmodel2 -6.696297e-02 2.569595e-01
modelmodel3 -4.524990e-02 2.155000e-01
modelmodel4 2.723541e-01 2.268785e-01
age_mean_centered 1.251958e-03 1.322780e-02
volt_mean_centered 3.279500e-02 3.947495e-03
rotate_mean_centered 1.274045e-03 1.365339e-03
pressure_mean_centered -8.598142e-03 5.807130e-03
vibration_mean_centered .365213e-02 1.391255e-02
In questo caso, gamma è uguale a k dalla parametrizzazione Weibull precedente. (Per altre informazioni su SurvRegCensCov, vedere bit.ly/2CgcSMg.)
Base ai parametri stimati, a differenza con il modello PH Cox, è ora possibile ottenere la funzione di sopravvivenza (è la funzione di sopravvivenza AFT Weibull) e usarlo per prevedere le probabilità di sopravvivenza per qualsiasi covariate direttamente. Supponendo che il primo punto nel set di dati è un nuovo punto dati, è possibile eseguire quanto segue:
predict(machineModel, newdata=df[1,], type='quantile')
Il risultato è il tempo all'evento (in ore) per i quantili compresa tra 0.1 e 0.9 (predefiniti), come illustrato di seguito:
807.967 5168.231
Ciò significa che dato il covariate del primo punto dati (elencate di seguito), la probabilità di guasto è 10% in corrispondenza o appena prima 807.967 ore dopo un'operazione di manutenzione e la probabilità di guasto è 90 per cento in corrispondenza o appena prima 5168.231 ore Dopo l'operazione di manutenzione:
model age volt_mean_centered rotate_mean_centered
model3 18 3.322762 51.8113
pressure_mean_centered vibration_mean_centered age_mean_centered
10.10773 11.4267 6.488011
È anche possibile usare parametro "p" per ottenere l'ora di sopravvivenza per tutti i quantili compreso tra zero e uno; ad esempio, aggiungendo il parametro "p = 0,5" fornirà l'errore mediano orario, ovvero, per il primo punto dati, ore 2509.814 dopo un'operazione di manutenzione.
Come con la stima modello di PH Cox, la colonna p nell'output di survreg fornisce informazioni su della rilevanza statistica dei coefficienti stimato, anche se in questo caso le figure sono preferibili (p-i valori più bassi). C'è ancora spazio per la funzionalità di progettazione come descritto in precedenza per il modello Cox PH.
È anche importante eseguire la diagnostica del modello in questo caso, come avveniva nella regressione PH Cox, assicurarsi che il modello AFT Weibull è una scelta ideale per i dati, confrontati, ad esempio, per altri modelli parametriche. Anche se non verranno descritte in questo processo in questo caso, sono disponibili ulteriori informazioni, facendo riferimento a del libro "Analisi di sopravvivenza" ho menzionato in precedenza.
Conclusioni
Che ho presentato l'utilizzo della manutenzione predittiva per il IIoT come un esempio di motivazione per l'adozione di due modelli di regressione sopravvivenza sono disponibili nel h2o.ai e MLLib Spark. Ho illustrato come modellare un problema di manutenzione predittiva di errore macchina nel framework di analisi di sopravvivenza dalle variabili di codifica come covariate e trasformare i dati delle serie temporali in formato di sopravvivenza. Anche descritti i modelli di due sopravvivenza, la differenza tra loro e come applicarli ai dati. Infine, si è parlato brevemente interpretazione dei risultati e la diagnostica del modello. È importante notare che appena sfiorati di questo argomento molto interessante e molto avanzato e ti invitiamo a esplorare altri. Punto di partenza per tale operazione è così facendo riferimento alla documentazione di cui che ho accennato nell'articolo.
Zvi Topolha lavorato come un data scientist in vari settori industriali verticali, tra cui marketing analitica, media e intrattenimento e Internet delle cose industriale. Egli ha recapitato e causare più machine learning e analitica progetti, tra cui il linguaggio naturale e interfacce vocali, ricerca cognitiva, analisi video, sistemi di raccomandazione e sistemi di supporto decisionale di marketing. Topol è attualmente con MuyVentive LLC, un'analitica avanzata R & società D ed è possibile contattarlo zvi.topol@muyventive.com.
Grazie al seguente esperto tecnico Microsoft per la revisione dell'articolo: James McCaffrey