naginterfaces.library.nonpar.randtest_runs¶
- naginterfaces.library.nonpar.randtest_runs(cl, x, m, nruns, ncount, comm)[source]¶
randtest_runs
performs a runs up (or a runs down) test on a sequence of observations.For full information please refer to the NAG Library document for g08ea
https://support.nag.com/numeric/nl/nagdoc_30.1/flhtml/g08/g08eaf.html
- Parameters
- clstr, length 1
Must specify the type of call to
randtest_runs
.This is the one and only call to
randtest_runs
(single call mode). All data are to be input at once. All test statistics are computed after the counting of runs is complete.This is the first call to the function. All initializations are carried out and the counting of runs begins. The final test statistics are not computed since further calls will be made to
randtest_runs
.This is an intermediate call during which the counts of runs are updated. The final test statistics are not computed since further calls will be made to
randtest_runs
.This is the last call to
randtest_runs
. The test statistics are computed after the final counting of runs is completed.- xfloat, array-like, shape
The sequence of observations.
- mint
The maximum number of runs to be sought. If then no limit is placed on the number of runs that are found.
must not be changed between calls to
randtest_runs
.- nrunsint
If or , need not be set.
If or , must contain the value returned by the previous call to
randtest_runs
.- ncountint, array-like, shape
If or , need not be set.
If or , must contain the values returned by the previous call to
randtest_runs
.- commdict, communication object, modified in place
Communication structure.
On initial entry: need not be set.
- Returns
- nrunsint
The number of runs actually found.
- ncountint, ndarray, shape
The counts of runs of the different lengths, , for .
- exfloat, ndarray, shape
If or , (i.e., if it is the final exit) then contains the expected values of the counts, , for .
Otherwise the elements of are not set.
- covfloat, ndarray, shape
If or (i.e., if it is the final exit) then contains the covariance matrix of the counts, .
Otherwise the elements of are not set.
- chifloat
If or (i.e., if it is the final exit), contains the approximate test statistic, .
Otherwise is not set.
- dffloat
If or (i.e., if it is the final exit) then contains the degrees of freedom of the statistic.
Otherwise is not set.
- probfloat
If or , (i.e., if it is the final exit) then contains the upper tail probability corresponding to the test statistic, i.e., the significance level.
Otherwise is not set.
- Raises
- NagValueError
- (errno )
On entry, .
Constraint: , , or .
- (errno )
On entry, .
Constraint: if , , otherwise .
- (errno )
On entry, and .
Constraint: if , .
- (errno )
On entry, and .
Constraint: if , .
- (errno )
On entry, .
Constraint: .
- (errno )
There is a tie in the sequence of observations.
- (errno )
The total length of the runs found is less than .
whereas the total length of all runs is .
- (errno )
The covariance matrix stored in is not positive definite, thus the approximate test statistic cannot be computed.
This may be because is too large relative to the length of the full sequence.
- Warns
- NagAlgorithmicWarning
- (errno )
The number of runs requested were not found, only out of the requested where found.
All statistics are returned and may still be of use.
- Notes
Runs tests may be used to investigate for trends in a sequence of observations.
randtest_runs
computes statistics for the runs up test. If the runs down test is desired then each observation must be multiplied by beforerandtest_runs
is called with the modified vector of observations.randtest_runs
may be used in two different modes:a single call to
randtest_runs
which computes all test statistics after counting the runs;multiple calls to
randtest_runs
with the final test statistics only being computed in the last call.
The second mode is necessary if all the data do not fit into the memory. See argument in Parameters for details on how to invoke each mode.
A run up is a sequence of numbers in increasing order. A run up ends at when and the new run then begins at .
randtest_runs
counts the number of runs up of different lengths. Let denote the number of runs of length , for . The number of runs of length or greater is then denoted by .An unfinished run at the end of a sequence is not counted unless the sequence is part of an initial or intermediate call to
randtest_runs
(i.e., unless there is another call torandtest_runs
to follow) in which case the unfinished run is used together with the beginning of the next sequence of numbers input torandtest_runs
in the next call. The following is a trivial example.Suppose we called
randtest_runs
twice with the following two sequences:( ) and
( ).
Then after the second call
randtest_runs
would have counted the runs up of the following lengths:, , , , , and .
When the counting of runs is complete
randtest_runs
computes the expected values and covariances of the counts, . For the details of the method used see Knuth (1981). An approximate statistic with degrees of freedom is computed, wherewhere
is the vector of counts, , for ,
is the vector of expected values,
, for , where is the expected value for under the null hypothesis of randomness, and
is the covariance matrix of under the null hypothesis.
The use of the -distribution as an approximation to the exact distribution of the test statistic, , improves as the length of the sequence relative to increases and hence the expected value, , increases.
You may specify the total number of runs to be found. If the specified number of runs is found before the end of a sequence
randtest_runs
will exit before counting any further runs. The number of runs actually counted and used to compute the test statistic is returned via .
- References
Dagpunar, J, 1988, Principles of Random Variate Generation, Oxford University Press
Knuth, D E, 1981, The Art of Computer Programming (Volume 2), (2nd Edition), Addison–Wesley
Morgan, B J T, 1984, Elements of Simulation, Chapman and Hall
Ripley, B D, 1987, Stochastic Simulation, Wiley