Skip to content

Offline change detection methods?

4 messages · Henrik Bengtsson, Thomas Lumley, Achim Zeileis +1 more

#
Dear [R] people, I am looking for a method to test if there are any
changes (jump points) in a time series data set or not. If there are, I
would like to identify the jump points. All the data is available from the
beginning so an offline method could be used.

The current data set that I have could be seen as a time series with
five almost equally sized segments that stands out to have different
(constant) means and possibly different variances. All 10000 data points
can be considered independent and containing 1-2 percent outliers.
Actually, the data set contains not only one variable, but several
variables that are all known to have the same jump point positions, if
any. I believe that several variables could be used in a multivariate
approach to improve the identification of the jump points, but a 
univariate method is ok too.

It would also be possible to identify the positions visually, but I am
looking for a method that could be applied automatically. It should 
ofcourse also be applicable to new data sets, which could have totally
different number of jump points, jump point positions, and different means
and variances. Between different data sets there is little or nothing in
common and for this reason, I believe, methods like HMM won't work
since I have no test data to learn the models. Also, even though the jump
points are within about the same distance from each other in the current
data set, this might not always be case. 

The current reference I have is "Detection of Abrupt Changes - Theory and
Application" by Basseville & Nikiforov. They explain several methods which
seems promising to me, even a few offline methods. Do anyone know about
other references? Do anyone know if B&N's methods (or others) are 
implemented in [R] or S-Plus? If not, maybe someone knows about other
implementations that I could port?

Thank you

Henrik Bengtsson

Dept. of Mathematical Statistics @ Centre for Mathematical Sciences 
Lund Institute of Technology/Lund University, Sweden (+2h UTC)
Office: P316, +46 46 222 9611 (phone), +46 46 222 4623 (fax)
hb at maths.lth.se, http://www.maths.lth.se/matstat/staff/hb/



-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
On Mon, 10 Sep 2001, Henrik Bengtsson wrote:

            
The strucchange package may be helpful here.

	-thomas

Thomas Lumley			Asst. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
Henrik Bengtsson wrote:
The package "strucchange" offers a couple of methods to test whether
there are any jump points or not. In the regression context it's just
regression with a constant, i.e. formulas of type y ~ 1.
With the methods in "strucchange" you can do so visually by interpreting
empirical fluctuation processes, see efp() in "strucchange".
An algorithm for estimating the number/location of the breakpoints is
not implemented (yet). But I've got a preliminary version of a function
for this task, which I can send you.

You will also find some references for structural change tests in the
help pages of "strucchange".

Achim
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
A simple method for detecting (even subtle) change in the mean in a time
serie is by using cumulate sums (cumsum). A reference:

Ibanez, F., J.M. Fromentin & J. Castel, 1993. Application de la methode des
sommes cumulees a l'analyse des series chronologiques oceanographiques. C.
R. Acad. Sci. Paris, Life Sciences, 316:745-748.


A powerful multivariate method for detecting changes in time series is 'D2
to the center'. Reference:

Ibanez, F., 1981. Immediate detection of heterogeneities in continuous
multivariate oceanographic recordings. Application to time series analysis
of changes in the bay of Villefranche sur mer. Limnol. Oceanogr.,
26:336-349.

Best regards,

Philippe Grosjean


...........]<(({?<...............<?}))><...............................
 ) ) ) ) )	 __               	 __
( ( ( ( ( 	|__)              	|  _
 ) ) ) ) )	|   hilippe       	|__)rosjean
( ( ( ( ( 	Marine Biol. Lab., ULB, Belgium
 ) ) ) ) )	                  	 __
( ( ( ( ( 	|\  /|            	|__)
 ) ) ) ) )	| \/ |ariculture &	|__)iostatistics
( ( ( ( (
 ) ) ) ) )	e-mail: phgrosje at ulb.ac.be or phgrosjean at sciviews.org
( ( ( ( ( 	SciViews project coordinator (http://www.sciviews.org)
 ) ) ) ) )      tel: 00-32-2-650.29.70 (lab), 00-32-2-673.31.33 (home)
( ( ( ( (
 ) ) ) ) )      "I'm 100% confident that p is between 0 and 1"
( ( ( ( (                                  L. Gonick & W. Smith (1993)
 ) ) ) ) )
.......................................................................



-----Message d'origine-----
De : owner-r-help at stat.math.ethz.ch
[mailto:owner-r-help at stat.math.ethz.ch]De la part de Henrik Bengtsson
Envoye : lundi 10 septembre 2001 17:44
A : R-help at stat.math.ethz.ch
Objet : [R] Offline change detection methods?


Dear [R] people, I am looking for a method to test if there are any
changes (jump points) in a time series data set or not. If there are, I
would like to identify the jump points. All the data is available from the
beginning so an offline method could be used.

The current data set that I have could be seen as a time series with
five almost equally sized segments that stands out to have different
(constant) means and possibly different variances. All 10000 data points
can be considered independent and containing 1-2 percent outliers.
Actually, the data set contains not only one variable, but several
variables that are all known to have the same jump point positions, if
any. I believe that several variables could be used in a multivariate
approach to improve the identification of the jump points, but a
univariate method is ok too.

It would also be possible to identify the positions visually, but I am
looking for a method that could be applied automatically. It should
ofcourse also be applicable to new data sets, which could have totally
different number of jump points, jump point positions, and different means
and variances. Between different data sets there is little or nothing in
common and for this reason, I believe, methods like HMM won't work
since I have no test data to learn the models. Also, even though the jump
points are within about the same distance from each other in the current
data set, this might not always be case.

The current reference I have is "Detection of Abrupt Changes - Theory and
Application" by Basseville & Nikiforov. They explain several methods which
seems promising to me, even a few offline methods. Do anyone know about
other references? Do anyone know if B&N's methods (or others) are
implemented in [R] or S-Plus? If not, maybe someone knows about other
implementations that I could port?

Thank you

Henrik Bengtsson

Dept. of Mathematical Statistics @ Centre for Mathematical Sciences
Lund Institute of Technology/Lund University, Sweden (+2h UTC)
Office: P316, +46 46 222 9611 (phone), +46 46 222 4623 (fax)
hb at maths.lth.se, http://www.maths.lth.se/matstat/staff/hb/



-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._