testing for structural change -...

44
Testing for Structural Change Theory, Implementation and Applications Achim Zeileis Dortmund, 2003-11-14

Upload: tranngoc

Post on 15-Aug-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Testing for Structural Change

Theory, Implementation and Applications

Achim Zeileis

Dortmund, 2003-11-14

Page 2: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Testen auf Strukturveranderung

Theorie, Implementierung und Anwendungen

Achim Zeileis

Dortmund, 2003-11-14

Page 3: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Uberblick

❆ Theorie:

Verallgemeinerte M-Fluktuationstests auf Parameterinstabilitat

❆ Implementierung:

Strukturbruchtests im R-Paket strucchange

❆ Anwendung:

Testen und Datierung von Strukturbruchen

Page 4: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Was ist ein Strukturbruch?

Betrachtet wird das lineare Regressionsmodell

yi = x>i βi + ui (i = 1, . . . , n),

wobei zum Zeitpunkt i:

❆ yi — abhangige Variable,

❆ xi — Regressorvektor mit k Elementen,

❆ βi — Vektor von k unbekannten Regressionskoeffizienten,

❆ ui — Fehlerterm.

Page 5: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Was ist ein Strukturbruch?

Getestet wird die Nullhypothese

H0 : βi = β0 (i = 1, . . . , n)

gegen

H1 : βi andert sich mit der Zeit

→ verallgemeinerte Fluktuationstests.

Page 6: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Was ist ein Strukturbruch?

Getestet wird die Nullhypothese

H0 : βi = β0 (i = 1, . . . , n)

gegen

H1 : βi andert sich mit der Zeit

→ verallgemeinerte Fluktuationstests.

bzw.

H∗1 : βi =

{βA (1 ≤ i ≤ i0)βB (i0 < i ≤ n)

→ F -Tests.

Page 7: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Warum Strukturbruche?

Zeit

Nila

bflu

esse

1880 1900 1920 1940 1960

600

800

1000

1200

1400

Page 8: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Warum Strukturbruche?

Weshalb sollte man auf Strukturveranderung testen wollen?

❆ Zentrales Interesse in vielen Anwendungen: ob, wann und wieandert sich der datengeneriende Prozeß?

❆ Nachweis einer Anderung durch Signifikanztest,

❆ auch als diagnostischer Test, da Modelle mit nicht beachteter Pa-rameterinstabilitat zu uninterpretierbaren Parameterschatzungen,verzerrter Inferenz und ungenauen Prognosen fuhren,

❆ exploratives Hilfsmittel zur Entdeckung von Struktur-veranderungen.

Page 9: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verallgemeinerte Fluktuationstests

❆ Empirischer Fluktuationsprozeß spiegelt Fluktuation wider in

❖ Residuen,❖ Koeffizientenschatzungen,❖ M-scores (bspw. KQ or ML scores).

❆ Theoretischer Grenzprozeß ist bekannt.

❆ Wahl von Schranken, die vom Grenzprozeß (oder einem Funktionaldessen) mit einer bekannten Wahrscheinlichkeit α uberschrittenwerden.

❆ Uberschreitet der empirische Fluktuationsprozeß die theoretischenSchranken, so ist die Fluktuation unwahrscheinlich groß ⇒ Null-hypothese verwerfen.

Page 10: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Philosophie

The generalized fluctuation test framework ...

“... includes formal significance tests but its philosophy is basically

that of data analysis as expounded by Tukey. Essentially, the techni-

ques are designed to bring out departures from constancy in a graphic

way instead of parametrizing particular types of departure in advance

and then developing formal significance tests intended to have high

power against these particular alternatives.” (Brown, Durbin, Evans,

1975)

Page 11: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Generalisierte M-Fluktuationstests

Wie konnen Abweichungen von der Annahme θi = θ0 eingefangen

werden? Betrachte eine k- bzw. k + 1-dimensionale Score-Funktion

ψ(·) mit

Eθi=θ0[ψ(yi, xi, θ0)] = 0

Annahmen:

❆ Erwartungswert 0 bzgl. f(yi |xi, θ0)❆ Stabilisierende Varianzen:

1

n

n∑i=1

COV[ψ(yi, xi, θ0)] = Jnp−→ J,

Page 12: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Generalisierte M-Fluktuationstests

Typische Wahl fur ψ ist die partielle Ableitung einer Zielfunktion Ψ

ψ(y, x, θ) =∂Ψ(y, x, θ)

∂θ.

Beispielsweise: KQ oder ML.

Anstatt der Spezifikation einer vollen Likelihood:

❆ Mißpezifikationsmodelle: Quasi-ML, robuste M-Schatzung.

❆ Schatzgleichungen: Hilfsvariablen (IV), Verallgemeinerte Momen-tenmethode (GMM), Verallgemeinerte Schatzgleichungen (GEE).

Page 13: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Theor. M-Fluktuationsprozesse

Aggregation uber die Zeit zu einem kumulativen Fluktuationsprozeß:

Wn(t, θ) = n−1/2bntc∑i=1

ψ(yi, xi, θ).

Page 14: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Theor. M-Fluktuationsprozesse

Aggregation uber die Zeit zu einem kumulativen Fluktuationsprozeß:

Wn(t, θ) = n−1/2bntc∑i=1

ψ(yi, xi, θ).

Unter H0 gilt der folgende zentrale Grenzwertsatz:

J−1/2Wn(·, θ0)d−→ W (·).

Page 15: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Empirische M-Fluktuationsprozesse

Eine geeignete Schatzung θn von θ0 ist gegeben durch:

n∑i=1

ψ(yi, xi, θn) = 0.

Page 16: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Empirische M-Fluktuationsprozesse

Eine geeignete Schatzung θn von θ0 ist gegeben durch:

n∑i=1

ψ(yi, xi, θn) = 0.

Unter H0 gilt der folgende zentrale Grenzwertsatz:

J−1/2n Wn(·, θn) d−→ W0(·),

falls Jn ein konsistenter Schatzer der Kovarianzmatrix J.

Page 17: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Warum Implementierung?

❆ potentiellen Benutzern ermoglichen theoretische Resultate auf

Daten anzuwenden,

❆ Reproduzierbarkeit von Forschungsergebnissen,

❆ Kommunikation von statistischen Ideen und dem Verstandnis uber

die Umsetzung von Theorie in Praxis.

Page 18: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

strucchange

strucchange bietet vereinheitlichte und flexible Werkzeuge, um:

❆ Fluktuationsprozesse und F -Teststatistiken anzupassen,

❆ die Prozesse/Statistiken zusammen mit ihren Schranken darzu-

stellen,

❆ so potentielle Bruchpunkte graphisch zu illustrieren,

❆ Signifikanztests durchzufuhren.

Page 19: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

strucchange

Weitere Funktionalitat:

❆ Uberwachung von Strukturveranderung mit Fluktuationstests ba-

sierend auf:

❖ KQ-Residuen,

❖ Koeffizientenschatzungen.

❆ Datierung von Strukturbruchen:

❖ Bruchpunktschatzung,

❖ Konfidenzintervalle.

Page 20: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

Zeit

Nila

bflu

esse

1880 1900 1920 1940 1960

600

800

1000

1200

1400

Page 21: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> scus.nile <- efp(Nile ~ 1, type = "Score-CUSUM")R> plot(scus.nile)

Page 22: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> scus.nile <- efp(Nile ~ 1, type = "Score-CUSUM")R> plot(scus.nile)

Score−based CUSUM test

Time

empi

rical

fluc

tuat

ion

proc

ess

1880 1900 1920 1940 1960

0.0

0.5

1.0

1.5

2.0

2.5

Page 23: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> plot(scus.nile, functional = "meanL2")

Page 24: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> plot(scus.nile, functional = "meanL2")

Score−based CUSUM test with mean L2 norm

Time

empi

rical

fluc

tuat

ion

proc

ess

1880 1900 1920 1940 1960

02

46

8

Page 25: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> plot(scus.nile, functional = NULL)

Page 26: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> plot(scus.nile, functional = NULL)

0.0

1.0

2.0

(Int

erce

pt)

0.0

1.0

(Var

ianc

e)

1880 1900 1920 1940 1960

Time

Score−based CUSUM test

Page 27: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> sctest(scus.nile)

Score-based CUSUM test

data: scus.nilef(efp) = 2.6557, p-value = 2.992e-06

Page 28: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> sctest(scus.nile)

Score-based CUSUM test

data: scus.nilef(efp) = 2.6557, p-value = 2.992e-06

R> sctest(scus.nile, functional = "meanL2")

Score-based CUSUM test with mean L2 norm

data: scus.nilef(efp) = 3.08, p-value = 0.005

Page 29: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> bp.nile <- breakpoints(Nile ~ 1)R> plot(bp.nile)

Page 30: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> bp.nile <- breakpoints(Nile ~ 1)R> plot(bp.nile)

0 1 2 3 4 5

1270

1280

1290

1300

1310

1320

BIC and Residual Sum of Squares

Number of breakpoints

●● ●

BICRSS

1600

000

2000

000

2400

000

2800

000

Page 31: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> summary(bp.nile, breaks = 3)

Optimal (m+1)-segment partition:

Call:breakpoints.formula(formula = Nile ~ 1)

Breakpoints at observation number:

m = 1 28m = 2 28 83m = 3 28 68 83

Corresponding to breakdates:

m = 1 1898m = 2 1898 1953m = 3 1898 1938 1953

Fit:

m 0 1 2 3RSS 2835156.750 1597457.194 1552923.616 1538096.513BIC 1318.242 1270.084 1276.467 1284.718

Page 32: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

R> confint(bp.nile)

Confidence intervals for breakpointsof optimal 2-segment partition:

Call:confint.breakpointsfull(object = bp.nile)

Breakpoints at observation number:2.5 % breakpoints 97.5 %

1 24 28 31

Corresponding to breakdates:2.5 % breakpoints 97.5 %

1 1894 1898 1901

Page 33: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Nildaten

Zeit

Nila

bflu

esse

1880 1900 1920 1940 1960

600

800

1000

1200

1400

Page 34: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Bruchpunktschatzung

Segmentiertes Regressionsmodell:

yi = x>i βj + ui (i = ij−1 + 1, . . . , ij),

wobei j = 1, . . . ,m+ 1 der Segmentindex ist.

m-Partition: die Menge der Bruchpunkte Im,n = {i1, . . . , im}Konvention: i0 = 0 und im+1 = n

Page 35: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Bruchpunktschatzung

Segmentiertes Regressionsmodell:

yi = x>i βj + ui (i = ij−1 + 1, . . . , ij),

wobei j = 1, . . . ,m+ 1 der Segmentindex ist.

m-Partition: die Menge der Bruchpunkte Im,n = {i1, . . . , im}Konvention: i0 = 0 und im+1 = n

Die Fehlerquadratsumme des segmentierten Modells ist:

RSS(i1, . . . , im) =m+1∑j=1

rss(ij−1 + 1, ij)

Page 36: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Bruchpunktschatzung

Dabei ist rss(ij−1 +1, ij) die minimale Fehlerquadratsumme im j-ten

Segment.

Gesucht:

(ı1, . . . , ım) = argmin(i1,...,im)RSS(i1, . . . , im)

uber alle Partitionen (i1, . . . , im) mit ij − ij−1 ≥ bnhc ≥ k

Optimalitatsprinzip von Bellman:

RSS(Im,n) = minmnh≤i≤n−nh

[RSS(Im−1,i) + rss(i+ 1, n)]

Page 37: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

Zeit

log 1

0(Ver

kehr

stot

e)

1970 1975 1980 1985

3.1

3.2

3.3

3.4

Page 38: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

R> re.seat <- efp(y ~ ylag1 + ylag12, data = seatbelt, type = "RE")R> plot(re.seat)

Page 39: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

R> re.seat <- efp(y ~ ylag1 + ylag12, data = seatbelt, type = "RE")R> plot(re.seat)

Fluctuation test (recursive estimates test)

Time

empi

rical

fluc

tuat

ion

proc

ess

1970 1975 1980 1985

0.0

0.5

1.0

1.5

Page 40: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

R> fs.seat <- Fstats(y ~ ylag1 + ylag12, data = seatbelt, from = 0.1)R> plot(fs.seat)

Page 41: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

R> fs.seat <- Fstats(y ~ ylag1 + ylag12, data = seatbelt, from = 0.1)R> plot(fs.seat)

Time

F s

tatis

tics

1972 1974 1976 1978 1980 1982

05

1015

20

Page 42: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

R> bp.seat <- breakpoints(y ~ ylag1 + ylag12, data = seatbelt, h = 0.1)R> plot(bp.seat, breaks = 5)

Page 43: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

R> bp.seat <- breakpoints(y ~ ylag1 + ylag12, data = seatbelt, h = 0.1)R> plot(bp.seat, breaks = 5)

0 1 2 3 4 5

−60

0−

590

−58

0−

570

BIC and Residual Sum of Squares

Number of breakpoints

BICRSS

0.24

0.26

0.28

0.30

0.32

Page 44: Testing for Structural Change - eeecon.uibk.ac.ateeecon.uibk.ac.at/~zeileis/papers/Dortmund-2003.pdf · Testing for Structural Change Theory, Implementation and Applications Achim

Verkehrstote in Großbritannien

Zeit

log 1

0(Ver

kehr

stot

e)

1970 1975 1980 1985

3.1

3.2

3.3

3.4