Fstats              package:strucchange              R Documentation

_F _S_t_a_t_i_s_t_i_c_s

_D_e_s_c_r_i_p_t_i_o_n:

     Computes a series of F statistics for a specified data window.

_U_s_a_g_e:

     Fstats(formula, from = 0.15, to = NULL, data = list(), vcov = NULL)

_A_r_g_u_m_e_n_t_s:

 formula: a symbolic description for the model to be tested

from, to: numeric. If 'from' is smaller than 1 they are interpreted as
          percentages of data and by default 'to' is taken to be 1 -
          'from'. F statistics will be calculated for the observations
          '(n*from):(n*to)', when 'n' is the number of observations in
          the model. If 'from' is greater than 1 it is interpreted to
          be the index and 'to' defaults to 'n - from'. If 'from' is a
          vector with two elements, then 'from' and 'to' are
          interpreted as time specifications like in 'ts', see also the
          examples.

    data: an optional data frame containing the variables in the model.
          By default the variables are taken from the environment which
          'Fstats' is called from.

    vcov: a function to extract the covariance matrix for the
          coefficients of a fitted model of class '"lm"'.

_D_e_t_a_i_l_s:

     For every potential change point in 'from:to' a F statistic (Chow
     test statistic) is computed. For this an OLS model is fitted for
     the observations before and after the potential change point, i.e.
     '2k' parameters have to be estimated, and the error sum of squares
     is computed (ESS). Another OLS model for all obervations with a
     restricted sum of squares (RSS) is computed, hence 'k' parameters
     have to be estimated here. If 'n' is  the number of observations
     and 'k' the number of regressors in the model, the formula is:


                     F = (RSS-ESS)/ESS * (n-2*k)

_V_a_l_u_e:

     'Fstats' returns an object of class '"Fstats"', which contains
     mainly a time series of F statistics. The function 'plot' has a
     method to plot the F statistics or the corresponding p values;
     with 'sctest' a supF-, aveF- or expF-test on structural change can
     be performed.

_R_e_f_e_r_e_n_c_e_s:

     Andrews D.W.K. (1993), Tests for parameter instability and
     structural change with unknown change point, _Econometrica_, *61*,
     821-856.

     Hansen B. (1992), Tests for parameter instability in regressions
     with I(1) processes, _Journal of Business & Economic Statistics_,
     *10*, 321-335.

     Hansen B. (1997), Approximate asymptotic p values for
     structural-change tests, _Journal of Business & Economic
     Statistics_, *15*, 60-67.

_S_e_e _A_l_s_o:

     'plot.Fstats', 'sctest.Fstats', 'boundary.Fstats'

_E_x_a_m_p_l_e_s:

     if(! "package:stats" %in% search()) library(ts)

     ## Nile data with one breakpoint: the annual flows drop in 1898
     ## because the first Ashwan dam was built
     data(Nile)
     plot(Nile)

     ## test the null hypothesis that the annual flow remains constant
     ## over the years
     fs.nile <- Fstats(Nile ~ 1)
     plot(fs.nile)
     sctest(fs.nile)
     ## visualize the breakpoint implied by the argmax of the F statistics
     plot(Nile)
     lines(breakpoints(fs.nile))

     ## UK Seatbelt data: a SARIMA(1,0,0)(1,0,0)_12 model
     ## (fitted by OLS) is used and reveals (at least) two
     ## breakpoints - one in 1973 associated with the oil crisis and
     ## one in 1983 due to the introduction of compulsory
     ## wearing of seatbelts in the UK.
     data(UKDriverDeaths)
     seatbelt <- log10(UKDriverDeaths)
     seatbelt <- cbind(seatbelt, lag(seatbelt, k = -1), lag(seatbelt, k = -12))
     colnames(seatbelt) <- c("y", "ylag1", "ylag12")
     seatbelt <- window(seatbelt, start = c(1970, 1), end = c(1984,12))
     plot(seatbelt[,"y"], ylab = expression(log[10](casualties)))

     ## compute F statistics for potential breakpoints between
     ## 1971(6) (corresponds to from = 0.1) and 1983(6) (corresponds to
     ## to = 0.9 = 1 - from, the default)
     ## compute F statistics
     fs <- Fstats(y ~ ylag1 + ylag12, data = seatbelt, from = 0.1)
     ## this gives the same result
     fs <- Fstats(y ~ ylag1 + ylag12, data = seatbelt, from = c(1971, 6),
                  to = c(1983, 6))
     ## plot the F statistics
     plot(fs, alpha = 0.01)
     ## plot F statistics with aveF boundary
     plot(fs, aveF = TRUE)
     ## perform the expF test
     sctest(fs, type = "expF")

