Testing for Partial Structural Break in R I want to test for a partial unknown structural break in a time series.  By this I mean that I want to test $H_0: \beta_{1} = \beta_{2}$ such that $Y_t = \beta_{0}^{'}X_t + \beta_{1}^{'}Z_t(t<T) + \beta_{2}^{'}Z_t(t>T) + e_t)$.  Intuitively, this is accomplished by rolling a Wald Statistic over the data.  However, in R I can not find a way to do this.  Both strucchange::Fstats and gap::chowtest appear to only test the case of a full structural break (i.e. $Y_t = \beta_{1}^{'}Z_t(t<T) + \beta_{2}^{'}Z_t(t>T) + e_t$.  Is there a way to test a partial structural break in R?  
I think my best solution will be to roll aod::wald.test over the sample and obtain the critical values from Andrew (1993).  
 A: It is correct that strucchange::Fstats() does not support testing of partial structural changes. However, instead of the supF (or supWald) test you can also compute the supLM test via strucchange::gefp() and this also allows to assess partial structural change hypotheses.
Example with artificial data and partial change in z but not x:
set.seed(0)
d <- data.frame(x = runif(200), z = runif(200), err = rnorm(200))
d$y <- 0 + 0 * d$x + rep(c(0, 1), each = 100) * d$z + d$err

Then you can compute the generalized empirical fluctuation process for the model under the null hypothesis of no change. Either for all three parameters or only for the slope of the regressor z:
efp_all <- gefp(y ~ x + z, data = d)
efp_z <- gefp(y ~ x + z, data = d, parm = "z")

The latter, however, is essentially only the third component of the full fluctuation process. plot(efp_all, aggregate = FALSE, ylim = c(-2, 2)) yields:

This shows that there is somewhat increased fluctuation in the process related to z (but not with respect to x) which is not significant at the 5% level when using a double maximum test:
sctest(efp_all, functional = maxBB)
##         M-fluctuation test
## 
## data:  efp_all
## f(efp) = 1.3601, p-value = 0.1412

Similarly a supLM test would not be significant:
sctest(efp_all, functional = supLM(0.15))
##         M-fluctuation test
## 
## data:  efp_all
## f(efp) = 11.037, p-value = 0.1476

yielding a similar p-value. However, when focusing on the z coefficient only, the p-values clearly decrease:
sctest(efp_z, functional = maxBB)
##         M-fluctuation test
## 
## data:  efp_z
## f(efp) = 1.3601, p-value = 0.04947
sctest(efp_z, functional = supLM(0.15))
##         M-fluctuation test
## 
## data:  efp_z
## f(efp) = 7.3998, p-value = 0.08646

However, whether your power really increases a lot by this is a different question. In my experience, I often find that the differences between the partial and full tests are smaller than the power of the different kind of test statistics (supF, double maximum, Cramer-von Mises, MOSUM, etc.). And which of these is really most powerful depends on the kind of alternative which you rarely know well enough in advance... For example in this data set (which I have tweaked somewhat, of course), the full sample supWald or Cramer-von Mises tests are both significant:
sctest(Fstats(y ~ x + z, data = d))
##         supF test
## 
## data:  Fstats(y ~ x + z, data = d)
## sup.F = 15.077, p-value = 0.03075
sctest(efp_all, functional = meanL2BB)
##         M-fluctuation test
## 
## data:  efp_all
## f(efp) = 1.0978, p-value = 0.03209

For more details on the gefp() framework, see Achim Zeileis (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
If you want to use your own partial supWald test, I would just use stats::anova() (rather than the aod package) and get the p-values from strucchange::pvalue.Fstats().
