@FLUX is a general procedure for implementing the fluctuations test proposed by Nyblom(1989). The inputs are either the set of scores from instructions like MAXIMIZE or GARCH or the derivatives of u from instructions like NLLS, which you can obtain with the DERIVES option on those instructions. It computes both individual and joint test statistics and gives an approximate significance level for each.

The use of the @FLUX procedure and related analysis is covered in the Structural Breaks and Switching Models course.

@FLUX( options ) start end

# list of score series

Parameters

start end |
range to analyze. By default, the common range of list of score series |

Options

[PRINT]/NOPRINT

SMPL=SMPL Series

TITLE=title for report ["Fluctuation Tests"]

GRAPH/[NOGRAPH]

If GRAPH, generates a graph of the joint fluctuations.

LABELS=VECT[STRING] of labels for the individual coefficients

Ordinarily, those are labeled just with the sequence number in the regression. If you provide labels, they are used with the sequence number added to the end. %REGLABELS() is the VECT[STRING] of coefficient labels from the most recent regression, and so would be the most common choice for this.

Variables Defined

%HJOINT |
overall test statistic (REAL) |

%HSTATS |
VECTOR with the tests on the individual components |

%CDSTAT |
overall test statistic (REAL) |

%SIGNIF |
significance level of overall test statistic (REAL) |

Example

This estimates a GARCH model on the log of the Deutsche mark/US$ exchange rate and does a fluctuations test.

garch(p=1,q=1,derives=dd) / dlogdm

@flux(labels=%reglabels())

# dd

Sample Output

This is the output from the example above. This shows a joint stability test that is just at the margin of being significant at conventional levels. Of the four parameters, the one that is most significant is the series mean which suggests that there might be a break in the mean of the series around entry 1296. Note that the 1296 is only a rough guess as to the date of the break (if any). Also, sometimes a break in a model suggests not some patch to the model (which here could be done fairly easily with a dummy in the mean model), but the need for a different model entirely.

Test Statistic P-Value MaxBreak

Joint 1.25368599 0.05 1296

1. Mean(DLOGDM) 0.71222462 0.01 1296

2. C 0.35758891 0.09 1009

3. A 0.13840253 0.41 1296

4. B 0.18261598 0.29 1009