GermanM1 {strucchange} | R Documentation |
German M1 money demand.
data(GermanM1)
GermanM1
is a data frame containing 12 quarterly time series
from 1961(1) to 1995(4) and two further variables. historyM1
is the subset of GermanM1
up to 1990(2), i.e., the data before
the German monetary unification on 1990-06-01. monitorM1
is the complement of historyM1
, i.e., the data after
the unification. All three data frames contain the variables
m
,y
,R
,R
,p
,m
,y
,R
,Lütkepohl et al. (1999) investigate the linearity and stability of German M1 money demand: they find a stable regression relation for the time before the monetary union on 1990-06-01 but a clear structural instability afterwards.
Zeileis et al. (2005) use a model with
ecm.res
instead of m1
, y1
and R1
, which
leads to equivalent results in the history period but slightly
different results in the monitoring period. The reason for the
replacement is that stationary regressors are needed for the
structural change tests. See references and the examples below for
more details.
The data is provided by the German central bank and is available online in the data archive of the Journal of Applied Econometrics http://qed.econ.queensu.ca/jae/1999-v14.5/lutkepohl-terasvirta-wolters/.
Lütkepohl H., Teräsvirta T., Wolters J. (1999), Investigating Stability and Linearity of a German M1 Money Demand Function, Journal of Applied Econometrics, 14, 511-525.
Zeileis A., Leisch F., Kleiber C., Hornik K. (2005), Monitoring Structural Change in Dynamic Econometric Models, Journal of Applied Econometrics, 20, 99–121.
data(GermanM1) ## Lütkepohl et al. (1999) use the following model LTW.model <- dm ~ dy2 + dR + dR1 + dp + m1 + y1 + R1 + season ## Zeileis et al. (2005) use M1.model <- dm ~ dy2 + dR + dR1 + dp + ecm.res + season ## historical tests ols <- efp(LTW.model, data = GermanM1, type = "OLS-CUSUM") plot(ols) re <- efp(LTW.model, data = GermanM1, type = "fluctuation") plot(re) fs <- Fstats(LTW.model, data = GermanM1, from = 0.1) plot(fs) ## monitoring M1 <- historyM1 ols.efp <- efp(M1.model, type = "OLS-CUSUM", data = M1) newborder <- function(k) 1.5778*k/118 ols.mefp <- mefp(ols.efp, period = 2) ols.mefp2 <- mefp(ols.efp, border = newborder) M1 <- GermanM1 ols.mon <- monitor(ols.mefp) ols.mon2 <- monitor(ols.mefp2) plot(ols.mon) lines(boundary(ols.mon2), col = 2) ## dating bp <- breakpoints(LTW.model, data = GermanM1) summary(bp) plot(bp) plot(fs) lines(confint(bp))