• Data: Online (continuous) stream of multivariate time series data (>5 channels)
  • The measurements from one of the channels (Channel F in example below) are irregular and (very) infrequent.
  • I would like to predict the current value (now) of the channel with infrequent measurements (Channel F in example) every day.

Example of data:

  • x indicates that a data point is present for a given timestep.
  • In reality, the number of time steps since start of measuring is ~1e6 but only about 200 data points are available in column F.
Time A B C D E F
t0 x x x x x x
t1 x x x x x x
t2 x x x x x
t3 x x x x x
t4 x x x x x x
t5 x x x x x
t6 x x x x x x
t7 x x x x x

In other words, given a multivariate time series from $t_{start}$ to the current time step $t_{current}$ I have many consecutive samples for columns A-E x but only a few irregularly spaced samples for column F.

I know that there is likely a strong relationship between F and the the other channels.

How do I predict the value of column F for the current time step? (t7 in example).

Which approach should I take? My current idea:

  • Use Gaussian process regression (GPR) model to fit a measurement model F = h(A,B,C,D,E) that is updated at every timestep where a new measurement becomes available in channel F.
  • Model all Channels A->F as a state-space model that receives low noise measurements from channels A-E and noisy measurements (estimates) from the GPR model for channel F (Unless a measurement for F is available in which case the measurement with have low noise). The state transition function is however not known. How can it be estimated from the data as more measurements become available?
  • Make forecasts / imputations using the current best version of the state space model.

Other (less important) thoughts:

  • In my view, creating a simple regression model F = f(A,B,C,D,E) using only the data points at time steps where F is known is wasteful since data at time-steps where measurements for F are not available (ie. t2,t3,t5 in example) remain unused.
  • Using the A-E samples that have no associated F data points in a semi-supervised sense (ie. contributing to dimension reduction of A-E with PCA) could be useful, but does not incorporate time series information (A measurement at t3 will likely be related to a measurement at t2).

I will appreciate any recommendations and corrections to the terminology I used.


1 Answer 1


My current best answer to my own question:

Bayesian structural models can be useful for time series imputation and time series forecasting. One way to implement Bayesian structural models is using the TensorFlow probability library (Others include Stan and Pyro).

  • In TensorFlow probability, missing values can be included using MaskedTimeSeries.
  • One way to include the time series nature of the missing channel is with an auto-regressive component. Depending on the the series you want to model other options include for instance LocalLevel or LocalLinearTrend.
  • One way to model the relationship between the channel with missing values and the other channels is with a linear regression component. See the second part of this example.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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