# Description of the program: nstat_z

This program seeks for nonstationarity in a time series by dividing it into a number of segments and calculating the cross-forecast errors between the different segments. The model used for the forecast is zeroth order model as proposed by Schreiber.

Since the usage of some (two) of the flags of this program is a bit peculiar, here some more detailed information about them. Say, the number of segments chosen is N. Then for all possible combinations of the N segments the forecast errors are calculated. Means for N2 combinations. Since this can be a large number and one might be only interested in some of all possible combinations, the combinations can be reduced with the -1 and the -2 flags. The values these options can take are either single numbers, or ranges separated by commas. A range looks like n1-n2 or like +n. To give some examples:

- nstat_z file -# 10 -1 1
  means: Divide the data into 10 segments and use the first segment to forecast all segments.
- nstat_z file -# 10 -1 1,3,7-9
  means: Divide the data into 10 segments and use the first, the third and the seventh to the ninth segments to forecast all segments
- nstat_z file -# 10 -1 +2
  means: Divide the data into 10 segments and forecast all segments I using segments I-2 to I+2.

In other words the +n defines a time window around to segment to be forecasted and only segments lying in this window are used for the forecast. If the +n syntax is chosen, it can not be combined with other ranges or a number. The same works for the -2 flag, which specifies which segments are forecasted.

## Usage:

nstat_z -# [other options]

Everything not being a valid option will be interpreted as a potential datafile name. Given no datafile at all, means read stdin. Also - means stdin

Possible options are:

Option | Description | Default
--- | --- | ---
-## | number of segments the data should be divided into | no default. has to be given
-l# | number of points to use | whole file
-x# | number of lines to be ignored | 0
-c# | column to be read | 1
-m# | embedding dimension | 3
-d# | delay for the embedding | 1
-1# | which segments should be used to forecast the others | 1-(# of segments) (all)
-2# | which segments should be forecasted by the others | 1-(# of segments) (all)
-n# | for how many reference points should the error be calculated | all
-k# | minimal numbers of neighbors for the fit | 30
-r# | neighborhood size to start with | (data interval)/1000
-f# | factor to increase the neighborhood size if not enough neighbors were found | 1.2
-S# | step to be forecasted xn+step=av(xi+step) | 1
-o[#] | output file name | without file name: 'datafile'.nsz (or stdin.nsz if stdin was read) If no -o is given stdout is used
-V# | verbosity level 0: only panic messages 1: add input/output messages | 1
-h | show these options | none

## Description of the Output

The output consists of a number of lines each of which consists of three columns:
first column: The index of the segment used for the forecast second column: The index of the segment that was forecasted
third column: The cross-forecast error normalized to the standard deviation of the segment that was forecasted.

Before increasing the first index, an empty line is added to the file. Thus the file has a block structure which can be used to make 3d plots in gnuplot. Furthermore, the output format is suitable for clustering by cluster.

View the C-sources.

Table of Contents * TISEAN home