# Scaling unknown time series for prediction with RNN

I'm trying to build a RNN model to predict arterial blood pressure (ABP) time series based on two other time series, namely, ECG and PPG.

It is available to me a set of multivariate time series of the form [ECG, PPG, ABP]. I use these multivariate time series to train an RNN model (inputs: [PPG, ECG], output [ABP]). The final objective of the model is to predict a [ABP] series that is not in the initial set ([PPG, ECG] series are to be collected in real time through sensors in order to a unknown [ABP] series to be predicted).

To train the RNN model successfully I have to scale (normalize) all the series available in the set (if I don't do this, i.e., don't scale the ABP series, the model outputs a constant).

The problem is that the different available ABP series have different scales, so I cant't simply use the scaling factors of these series to "inverse" scale the series obtained when the model is fed by the sensor's PPG and ECG signals.

Bottom line, I don't know how to "inverse" scale the output of my model and this is a fundamental task for the problem. So the questions are: how can I work this situation around? What is the best practice in this case?

• It's not clear what you mean by "scale (normalize)" the ABP series. Are you just scaling to the maximum and minimum value of each individual series? It seems strange that you are having trouble with ABP values in particular, unless they aren't already expressed in standard units like mm Hg. – EdM May 10 '18 at 20:03

I was working on similar type of problem where i had to predict Y waveform based on X1, X2, X3 waveforms. I had 70 sets for train and 6 for test. My target variable generally ranges from 100-1000 and inputs range from 0-10 based on the domain knowledge. So, i divided the target by 1000 and input by 10 and it worked.

In case if you are looking for more guided way to do the scaling, check this link. The author states that choosing right activation function should help. Since the waveform values are real-valued, linear activation function can be used.

What I meant by scaling is mean subtraction and division by variance (standard scaling).

My problem is that I don't know what is the best practice to infer the mean and variance of the output [ABP] series. I need to infer these values since the RNN outputs a scaled series (zero mean and unit variance) and, in order to this output series be a valid [ABP] series I need to "unscale" it (multiply by a variance and add a mean).

Currently I'm using some statistics of the input [PPG, ECG] series (namely mean, variance, skewness and kurtosis) to predict the mean and variance of the output [ABP] series through a dense ANN, training it with values obtained from my set of available [PPG, ECG, ABP] series.

I'm getting somewhat good results but with significant variability (the predicted mean and variance values are sometimes close to the real values but sometimes differs slightly but in a non-acceptable way for my application).

More comments and ideas are always welcome.