either a function for aggregating fluctuation processes
or a list with two functions names "comp" and "time".
boundary
a boundary function.
computePval
a function for computing p values. If neither
computePval nor computeCritval are specified
critical values are simulated with settings as specified below.
computeCritval
a function for computing critical values. If neither
computePval nor computeCritval are specified
critical values are simulated with settings as specified below.
plotProcess
a function for plotting the empirical process,
if set to NULL a suitable function is set up.
lim.process
a string specifying the limiting process.
nobs
integer specifying the number of observations of each
Brownian motion simulated.
nrep
integer specifying the number of replications.
nproc
integer specifying for which number of processes
Brownian motions should be simulated. If set to NULL only
nproc = 1 is used and all other values are derived from
a Bonferroni correction.
h
bandwidth parameter for increment processes.
probs
numeric vector specifying for which probabilities
critical values should be tabulated.
Details
efpFunctional computes an object of class "efpFunctional"
which then knows how to do inference based on empirical fluctuation processes
(currently only for gefp objects and not yet for efp
objects) and how to visualize the corresponding processes.
efpFunctionals for many frequently used test statistics are provided:
maxBB for the double maximum statistic, meanL2BB for the Cramer-von Mises
statistic, or rangeBB for the range statistic. Furthermore, supLM
generates an object of class "efpFunctional" for a certain trimming parameter,
see the examples. More details can be found in Zeileis (2006). Based on
Merkle, Fan, and Zeileis (2014), further efpFunctional generators for
aggregating along (ordered) categorical variables have been added:
catL2BB, ordL2BB, ordwmax.
For setting up an efpFunctional, the functions
computeStatistic, computePval, and plotProcess need to be
supplied. These should have the following interfaces:
computeStatistic should take a single argument which is the process
itself, i.e., essentially a n x k matrix where n is the number of
observations and k the number of processes (regressors).
computePval should take two arguments: a scalar test statistic and the
number of processes k.
plotProcess should take two arguments: an object of class "gefp"
and alpha the level of significance for any boundaries or critical
values to be visualized.
Value
efpFunctional returns a list of class "efpFunctional" with components including:
plotProcess
a function for plotting empirical fluctuation processes,
computeStatistic
a function for computing a test statistic from an empirical fluctuation process,
computePval
a function for computing the corresponding p value,
computeCritval
a function for computing critical values.
References
Merkle E.C., Zeileis A. (2013), Tests of Measurement Invariance without Subgroups:
A Generalization of Classical Methods. Psychometrika, 78(1), 59–82.
doi:10.1007/S11336-012-9302-4
Merkle E.C., Fan J., Zeileis A. (2014), Testing for Measurement Invariance with
Respect to an Ordinal Variable. Psychometrika, 79(4), 569–584.
doi:10.1007/S11336-013-9376-7.
Zeileis A. (2005), A Unified Approach to Structural Change Tests Based on
ML Scores, F Statistics, and OLS Residuals. Econometric Reviews, 24,
445–466. doi:10.1080/07474930500406053.
Zeileis A. (2006), Implementing a Class of Structural Change Tests: An
Econometric Computing Approach. Computational Statistics & Data Analysis,
50, 2987–3008. doi:10.1016/j.csda.2005.07.001.
Zeileis A., Hornik K. (2007), Generalized M-Fluctuation Tests for Parameter
Instability, Statistica Neerlandica, 61, 488–508.
doi:10.1111/j.1467-9574.2007.00371.x.
See Also
gefp, supLM, catL2BB, sctest.default
Examples
data("BostonHomicide")
gcus <- gefp(homicides ~ 1, family = poisson, vcov = kernHAC,
data = BostonHomicide)
plot(gcus, functional = meanL2BB)
gcus
sctest(gcus, functional = meanL2BB)
y <- rnorm(1000)
x1 <- runif(1000)
x2 <- runif(1000)
## supWald statistic computed by Fstats()
fs <- Fstats(y ~ x1 + x2, from = 0.1)
plot(fs)
sctest(fs)
## compare with supLM statistic
scus <- gefp(y ~ x1 + x2, fit = lm)
plot(scus, functional = supLM(0.1))
sctest(scus, functional = supLM(0.1))
## seatbelt data
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))
scus.seat <- gefp(y ~ ylag1 + ylag12, data = seatbelt)
## double maximum test
plot(scus.seat)
## range test
plot(scus.seat, functional = rangeBB)
## Cramer-von Mises statistic (Nyblom-Hansen test)
plot(scus.seat, functional = meanL2BB)
## supLM test
plot(scus.seat, functional = supLM(0.1))