I have data for pumps which have one or more sensors to record the air pressure. Apart from the sensor_id and timestamp, with three numeric variable current_air_pressure, min_air_pressure and max_air_pressure and the readings are recorded every minute. If the current air pressure within the min and max range then pump is working fine otherwise it will stop automatically and needs to be manually restarted. There is no other data and we don't when the pump/sensors previously stopped; at best we can infer it by comparing the readings with the limits.

My use case is to show the current health of each pump and predict when the pump will stop. The challenge is that air pressure can fluctuate up and down like the stock market i.e. reach near the max and when we think it will soon cross the max and stop the pump, it can suddenly drop and become stable (rid range). Similarly it can reach near the min and then climb up to be stable. So a reading near the max or min does not indicate that the pump will cross the limits and stop functioning.

The business users don't care if the pump stop due to low/high pressure.

Question: What is the best approach for this?

  • From the historical data, infer when pump stopped by comparing the readings with the limits and and use this as a target variable to formulate it as a predictive maintenance problem. Will this approach work pumps stop due to too low/high pressure and readings actually fluctuate
  • Or a ruled base model by profiling each sensor with info such as how long each sensor stays in the range, how often does it cross the min/max limits or falls back if it near the min/max etc.
  • Any other?

1 Answer 1


This is going to be a difficult task, but the good thing is that there are lots of different possibilities you can experiment with. If I were you I would start by trying multivariate time series.

If you believe that there is a seasonality effect you can include that - seasonality effect in this case would be if there are certain hours/days in which there are more incidents. You can also include a variable - time passed since last incident. However, if there is no seasonality effect and previous incidents do not determine new incidents that makes the whole project much more difficult.

You can also create another variable that is the standard deviation of the pressure in the previous X amount time. I cannot tell you how much time to include, as that is specific to the pumps.

If you do not like the idea with the standard deviation, you can try to include 2 other variables - how often the pressure goes above (for high pressure) and below (for low) certain thresholds that you have created. For example, if the normal pressure is 1 and the pumps stop working at 1.5 if it is too high, or 0.5 if it is too low, you can create artificial thresholds at 1.3 and 0.7 and see how often the pumps have crossed these thresholds in the previous X amount of time. It is possible that the pumps that cross these thresholds more often are more likely to fail.

If all of these ideas fail, you can always try running a univariate time series with just the pressure as a variable. Everything I have mentioned so far was for trying to predict when the pumps will stop.

For your other task - showing the current health of the pumps is going to be easy for you. Record how often each pump fails, plot them on a graph and everything that is an outlier is a bad pump.

It is always a good idea to speak to engineers that understand the pumps - they might give you a head start for your project.


Your Answer

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

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