3
$\begingroup$

This is crossposted from StackOverflow. Someone suggested I should post it here. Though I don't have enough karma to post images.

I'm working with gathering data from a biological monitoring system. They need to know the average value of the plateaus after changes to the system are made.

enter image description here

This is data for about 4 minutes. There is decent lag time between the event and the steady state response.

These values won't always be this level. They want me to find where the steady-state response starts and average the values during that time. My boss, who is a biologist, said there may be overshoot and random fluctuations... and that I might need to use a z-transform. Unfortunately he wasn't more specific than that.

I feel decently competent as a programmer, but wasn't sure what the most efficient way would be to go about finding these values.

Any algorithms, insights or approaches would be greatly appreciated. Thanks.

$\endgroup$
4
  • 1
    $\begingroup$ Please don't cross-post in future; and the proper way to move to other site is by asking for migrate using flag. $\endgroup$
    – user88
    Commented Jul 2, 2011 at 20:07
  • $\begingroup$ @svaha: Do you know when the level-changes occur? $\endgroup$
    – cardinal
    Commented Jul 3, 2011 at 16:08
  • $\begingroup$ @svaha: Can you describe the monitoring system a little more? Is it assumed/known to be (approximately) a linear time-invariant system? If so, do you have any information on the zeros and poles of the system? If so, that would tell you quite a lot about the associate time constants of the system. $\endgroup$
    – cardinal
    Commented Jul 3, 2011 at 16:16
  • $\begingroup$ Sure. Basically the events would be where air is moving in and out of a chamber. We know the first $\endgroup$ Commented Jul 3, 2011 at 19:51

1 Answer 1

1
$\begingroup$

What you have is a time series interrupted by level shifts. These level shifts are often (in your case definitely!) not known a priori. I suggest that you investigate by googling "automatic intervention detection". This and other intelligent searches for intervention detection in time series should yield some results. The bottom line is to characterize/model your time series with both ARIMA and outlier detection. Outliers can be either pulses, level shifts, seasonal pulses and/or local time trends. Care should be taken to investigate the detection of interventions both using the observed data to build an ARIMA first and alternatively subsequent to the detection of the interventions. You might review some of my other postings on the subject of time series ; Outliers ; Exception Reporting particularly Outlier detection for generic time series .

$\endgroup$
2
  • 2
    $\begingroup$ I've taken the liberty of removing some of the capitalization of whole words and phrases, which is often interpreted as "shouting". Please check that I have not altered the intended content. I won't make further edits if you choose to rollback or edit my changes. Cheers. $\endgroup$
    – cardinal
    Commented Jul 3, 2011 at 16:13
  • $\begingroup$ cardinal: I appreciate your corrections and your very friendly approach to needed improvements. You style is to be commended as it leads to "happy and prosperous villagers" hoping to help others. $\endgroup$
    – IrishStat
    Commented Jul 3, 2011 at 16:38

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.