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

I'm able to build fairly good models based on LSTM's and GRU's to perform this task for a single patient, that is, given two time series (ECG and PPG) I'm able to predict a third time series (ABP).

However, my current objective is to take several sets of ECG and PPG time series (each one corresponding to a different patient) and predict the ABP of a patient that is not in the mentioned set.

So, to make myself clear, I have 10 sets of time series of the kind [PPG, ECG, ABP] and I have an 11th set of the kind [PPG, ECG]. My wish is to obtain (predict) the ABP time series of the 11th set.

Summarizing, the question is: how can I assemble the 10 time series data I have for this prediction task? By assemble I mean, should I concatenate the 10 series in order to get one big [PPG, ECG, ABP] series? If not, then what is the best practice in this kind of situation?

  • $\begingroup$ I think I don't understand your problem, since the answer seems very simple. Use the 10 sets to train the RNN with [PPG, ECG] as inputs and (the known) [ABP] as output (use 9/1 or 8/2 corss-validation or something like that) and then input your eleventh data set to predict your unknown [ABP]. $\endgroup$ – Skander H. Apr 10 '18 at 3:05
  • $\begingroup$ Regarding the title, this looks like prediction (of a new series) rather than forecasting (of future values in a given series). $\endgroup$ – Richard Hardy Apr 10 '18 at 5:19
  • $\begingroup$ @Alex I just edited the question, I hope my problem has been made clearer now. Thanks for the comment. $\endgroup$ – Jose Bueno Apr 10 '18 at 10:56

I don't think you need to concatenate or group the time series in any way.

Just train your NNet on the 10 data sets, with [PPG, ECG] as inputs and [ABP] as the outputs. Then use it to predict the [ABP] for the eleventh data set.

So your data should look like:

Patient #.    Input       Target 
    1      [PPG1, ECG1]   [ABP1]
    2      [PPG2, ECG2]   [ABP2]
   ...          ...         ...
   10      [PPG10,ECG10]  [ABP10]

You only have 10 data sets for training so you should use cross validation.

Then feed

[PPG11, ECG11] to your NNet to predict your new [ABP].

| cite | improve this answer | |
  • $\begingroup$ I am attempting to do something similar. In my case, I would just need 1-time series per row instead of 2 to make a prediction. Do you know where or can you share an example of how this is implemented? What if the [Input] time series are not all the same length? Will that work? $\endgroup$ – alex Apr 16 at 16:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.