# Residual Useful Life estimation from multivariate time series with lots of missing data and censoring, using neural networks

I have a set of industrial machines, for which I collect measurements from a few sensors (say, $d=20$) in time. So I have a $d-$variate time series for each machine. Let $t=0$ denote the start of my study: machine $j$ starts working at $t^j_{start}\geq 0$, and it either fails at $t^j_{fail}\geq t^j_{start}$, or it keeps working until the end of my study (so I have right-censored data). The machines work in very harsh environments, and often sensors measurement are temporarily not available. In other words, I have many missing data (say, about 50% of all sensor measurements are missing). Sensor time series are extremely long (say, one measurement/minute), but I can downsample them to daily measurements if necessary, maybe increasing $d$ to compensate (i.e., instead than $d$ instantaneous measurements per minute, $4d$ measurements for day, i.e., min, max, median and IQR for each sensor). After this downsampling, the lengths of the time series go from $50$ to $730^+$, more or less (i.e., the "worst" machines die after less than two months of operation, and the "best" ones are still running at the end of the study, after 2 years).

I would like to predict the Residual Useful Life, i.e., the remaining days until failure for a new machine. If $T$ is the useful life of a machine (thus a random variable) then

$$\text{RUL}(t)=\mathbf{E}[T|T\geq t]$$

In other words, let $\mathbf{x}(t)=(x_1(t),\dots,x_d(t))$ be the set of sensor measurements at time $t$ for the new machine, where possibly $x_i(t)=NA$ for one or more $i$: given in input the sequence $T=[\mathbf{x}(t_0),\dots,\mathbf{x}(t)]$, I want to estimate $\text{RUL}(t)\geq 0$, and as new data $\mathbf{x}(t)$ come in, I want to update my estimate $\text{RUL}(t)$.

I would like to use a Neural Network to do this: I was thinking of a Recurrent Neural Networks, because it's the architecture I'm more familiar with, for what it concerns time series forecasting, but I'm open to other suggestions, as long as open source implementations are available. I found this paper, but the authors are not willing to share code, and I feel the description is not detailed/clear enough to reimplement the code on my own. Can you help me? I'll also accept other suggestions.

PS for now I don't have static covariates for each machine, but in the future I'd like to include them in the analysis, things like for example the coordinates of the installation site of the machine, the type of the design of the machine, etc. In a "classical" survival analysis, these would correspond to things like height, weight, age, sex, etc. of each individual, while the sensor data would be for example time series of blood pressure, heart rate, body temperature, etc. Thus I'd like an approach which in the future can be extended by including such covariates.

• This problem is unclear to me. How do you define 'failure of a machine' and how does it relate to the data $\mathbf{x}(t)$? Do you want to predict 'when a sensor is gonna fail', 'when a sensor on a machine is gonna fail' or 'when a machine is gonna stop working'? Another point is that your data structure and gathering is not clear. For instance one of many questions is whether you have a one sensor for each of $d$ machines or $d$ sensors for each machine (of unspecified number). May 20 '18 at 12:19
• @martijinweterings you could have found the answers to some of your many questions, had you read my question more carefully. For example it's obvious that I have d sensors for each machine because I wrote it explicitly right at the beginning of my question: "So I have a d−variate time series for each machine". May 20 '18 at 18:16
• Hello @DeltaIV, did you solve your problem? Do you have some codes/documents that would be helpful? Jun 22 at 12:52