Längsschnittanalyse kategorialer Daten Datenaufbereitung Als Beispiel verwende ich den Datensatz über Gewerkschaftsmitgliedschaften, den wir auch in einer Übung verwendet haben. Zunächst schneide ich mir die Daten zurecht: . use http://eswf.uni-koeln.de/daten/stata/union.dta, clear (NLS Women 14-24 in 1968) Ich benutze nur die ersten vier Wellen … . drop if year>73 (18734 observations deleted) . tsset idcode year panel variable: time variable: idcode (unbalanced) year, 70 to 73, but with gaps . xtdes idcode: year: 1, 2, ..., 5157 n = 70, 71, ..., 73 T = Delta(year) = 1; (73-70)+1 = 4 (idcode*year uniquely identifies each observation) Distribution of T_i: min 1 5% 1 25% 1 50% 2 75% 3 3214 4 95% 4 max 4 Freq. Percent Cum. | Pattern ---------------------------+--------700 21.78 21.78 | 1111 387 12.04 33.82 | ...1 346 10.77 44.59 | ..11 265 8.25 52.83 | .111 259 8.06 60.89 | 1... 193 6.00 66.89 | ..1. 188 5.85 72.74 | 111. 185 5.76 78.50 | .1.. 179 5.57 84.07 | 11.. 512 15.93 100.00 | (other patterns) ---------------------------+--------3214 100.00 | XXXX . egen nwaves=count(union), by(id) . tab nwaves nwaves | Freq. Percent Cum. ------------+----------------------------------1 | 1,024 13.72 13.72 2 | 1,656 22.18 35.90 3 | 1,986 26.60 62.50 4 | 2,800 37.50 100.00 ------------+----------------------------------Total | 7,466 100.00 … und verwende nur die Personen, die auch an allen vier Panelwellen teilgenommen haben. . keep if nwaves==4 (4666 observations deleted) 1 So, und jetzt geht’s los. Das Beispiel ist ganz simpel, denn es besteht nur aus einer dichotomen abhängigen Variablen. Ausgehend von dieser Basisinformation ergeben sich verschiedene Auswertungsstrategien. Trendanalyse Die simpelste ist die Verwendung der Panelwellen als Serie von Querschnitten zur Beschreibung von Trends auf der Makro- oder Gruppenebene (Trendanalyse). . . tab year union, row +----------------+ | Key | |----------------| | frequency | | row percentage | +----------------+ interview | 1 if union year | 0 1 | Total -----------+----------------------+---------70 | 535 165 | 700 | 76.43 23.57 | 100.00 -----------+----------------------+---------71 | 534 166 | 700 | 76.29 23.71 | 100.00 -----------+----------------------+---------72 | 535 165 | 700 | 76.43 23.57 | 100.00 -----------+----------------------+---------73 | 542 158 | 700 | 77.43 22.57 | 100.00 -----------+----------------------+---------Total | 2,146 654 | 2,800 | 76.64 23.36 | 100.00 Dazu bräuchte man eigentlich nicht Paneldaten, gleichwohl werden sie oft dafür benutzt (z.B. um Fragen sozialen Wandels mit Kohortenanalysen zu untersuchen). Wenn man aber – wie in diesem Fall – Paneldaten verwendet, dann muss man berücksichtigen, dass es sich dabei nicht um unabhängige Beobachtungen handelt (wie bei unabhängigen Querschnitten). Die Beobachtung, dass der Anteil der Gewerkschaftsmitglieder im letzten Jahr um einen Prozentpunkt zurückgegangen ist, sollte also daraufhin getestet werden, dass der Vergleichswert aus dem Vorjahr bereits durch die gleichen Personen bestimmt wurde. Geeignete Schätzverfahren (mit jeweils spezifischen Annahmen) sind Schätzverfahren mit zufälligen und fixen Effekten (random and fixed effects). Analyse individueller Veränderungen Eine zweite Möglichkeit ist die Betrachtung von individuellen Veränderungen. Die simpelste Annahme ist hier, dass Veränderungen nur von dem in der Vorwelle vorliegenden Zustand abhängen. . . gen vorher=L.union (700 missing values generated) . gen nachher=union Die folgende Tabelle zeigt die drei Übergangsmatrizen. . table vorher nachher year 2 -------------------------------------------------| interview year and nachher | --- 71 ----- 72 ----- 73 --vorher | 0 1 0 1 0 1 ----------+--------------------------------------0 | 492 43 496 38 498 37 1 | 42 123 39 127 44 121 -------------------------------------------------- Schaut man einmal genauer hin (z.B. für den Übergang 1970-71), ergeben sich in den Randverteilungen wieder die Anteile der Gewerkschaftsmitglieder, die wir bereits aus der Trendanalyse kennen. . tab vorher nachher if year==71, row +-------------------+ | Key | |-------------------| | frequency | | row percentage | +-------------------+ | nachher vorher | 0 1 | Total -----------+----------------------+---------0 | 492 43 | 535 | 91.96 8.04 | 100.00 -----------+----------------------+---------1 | 42 123 | 165 | 25.45 74.55 | 100.00 -----------+----------------------+---------Total | 534 166 | 700 | 76.29 23.71 | 100.00 Solche Übergangsmatrizen werden mit Markov-Modellen untersucht, die wir nicht besprochen haben. Ist man bspw. der Ansicht, dass die Annahme gerechtfertigt ist, nur y t −1 habe einen Einfluss, dann kann man alle drei Übergangsmatrizen in einer zusammenfassen und daraus die Parameter des Prozesses (den Regressionskoeffizienten von y t −1 ) schätzen. Die Annahme bezeichnet man übrigens als Markov-Prozess erster Ordnung. . tab vorher nachher, row +----------------+ | Key | |----------------| | frequency | | row percentage | +----------------+ | nachher vorher | 0 1 | Total -----------+----------------------+---------0 | 1,486 118 | 1,604 | 92.64 7.36 | 100.00 -----------+----------------------+---------1 | 125 371 | 496 | 25.20 74.80 | 100.00 -----------+----------------------+---------Total | 1,611 489 | 2,100 | 76.71 23.29 | 100.00 Gleiches macht das Kommando xttrans. . xttrans union, freq 3 | 1 if union 1 if union | 0 1 | Total -----------+----------------------+---------0 | 1,486 118 | 1,604 | 92.64 7.36 | 100.00 -----------+----------------------+---------1 | 125 371 | 496 | 25.20 74.80 | 100.00 -----------+----------------------+---------Total | 1,611 489 | 2,100 | 76.71 23.29 | 100.00 Analyse des Verbleibs im Ausgangszustand Eine dritte Analysemöglichkeit ergibt sich schließlich, wenn man nach dem Gegenteil von individueller Veränderung fragt: der Stabilität. Ausgehend von einem bestimmten Ausgangszustand (z.B. Gewerkschaftsmitglied zu sein) fragt man sich, wie lange eine Untersuchungseinheit in diesem Zustand verbleibt. Hier ergibt sich die so genannte Ereignisanalyse oder Verweildaueranalyse. Der Name hängt damit zusammen, dass sich die Untersuchungsobjekte im Zeitablauf verändern und daher bei einem Teil im Untersuchungszeitraum ein Abgang aus dem Ausgangszustand beobachtet werden kann. Das Ende des Verbleibs im Ausgangszustand bezeichnet man auch als Ereignis. Ereignisanalyse verwendet wiederum nur einen bestimmten Teil der Ausgangsinformationen. Wir betrachten dazu alle in den Daten vorkommenden Sequenzen: . gen komb=1000*L3.union + 100*L2.union + 10*L1.union + union (2100 missing values generated) . tab komb komb | Freq. Percent Cum. ------------+----------------------------------0 | 442 63.14 63.14 1 | 24 3.43 66.57 10 | 19 2.71 69.29 11 | 7 1.00 70.29 100 | 21 3.00 73.29 101 | 3 0.43 73.71 110 | 4 0.57 74.29 111 | 15 2.14 76.43 1000 | 27 3.86 80.29 1001 | 3 0.43 80.71 1010 | 4 0.57 81.29 1011 | 8 1.14 82.43 1100 | 8 1.14 83.57 1101 | 7 1.00 84.57 1110 | 17 2.43 87.00 1111 | 91 13.00 100.00 ------------+----------------------------------Total | 700 100.00 Wenn man sich für die Dauer der Mitgliedschaft in der Gewerkschaft interessiert, dann interessieren nur die mit einer „1“ beginnenden Sequenzen: Danach haben 42 Personen nach einem Jahr ihre Gewerkschaftsmitgliedschaft aufgegeben, 15 nach zwei Jahren, weitere 17 nach drei Jahren, und 91 Personen haben die Gewerkschaft im Untersuchungszeitraum nicht verlassen. 535 Personen waren zu Beginn der Untersuchung (1970) gar nicht in einer Gewerkschaft (vgl. die folgende Tabelle). 4 Tabelle 1: Zeitdiskrete Ereignisdaten Jahr 1970 1971 1972 1973 Summe Mitglieder 165 123 108 91 487 Sequenz 1xxx 11xx 111x 1111 Pr Austritte Sequenz Pr 74.5% 87.8% 84.3% 42 15 17 74 10xx 110x 1110 25.5% 12.2% 15.7% kein Mitglied 535 Sequenz 0xxx Im nächsten Untersuchungsschritt bereite ich die Daten für eine Ereignisanalyse auf. Das bedeutet, dass (i) nur Beobachtungen von Personen berücksichtigt werden, deren Mitgliedschaftsverlauf (Sequenz) mit einer „1“ beginnt (n=165 Personen). Bei diesen Personen werden aber alle Beobachtungen gelöscht, die nach dem Austritt aus der Gewerkschaft auftreten (z.B. bei Personen mit der Sequenz 110x alle Informationen für das Jahr 1973). Mit welchen Stata-Kommondos ich das gemacht habe, soll hier nicht interessieren. Es verbleiben jedenfalls 165 Personen mit insgesamt 561 (=487+74) Beobachtungen im Datensatz. Jede der Untersuchungspersonen ist mit so vielen Beobachtungen im Datensatz vertreten, wie es gedauert hat, bis entweder ein Austritt aus der Gewerkschaft oder das Untersuchungsende eintrat. Für die diskrete Ereignisanalyse wird (hilfsweise) ein logistisches Regressionsmodell verwendet. Da es uns um den Abgang aus dem Ausgangszustand „Gewerkschaftsmitglied“ geht, bilden wir eine abhängige Variable austritt, die genau umgekehrt wie Gewerkschaftsmitgliedschaft kodiert ist und rechnen los: . gen austritt=1 . replace austritt=0 if union==1 Dabei nehmen wir an, dass die Untersuchungspersonen erst im Jahr 1970 in die Gewerkschaft eingetreten sind (eine heroische Annahme, andernfalls müssten wir uns aber mit dem Problem linkszensierter Beobachtungen herumschlagen). Das Jahr 1970 lassen wir dann in der folgenden Analyse aus, weil nach dieser Annahme alle Mitgliedschaften erst in diesem Jahr beginnen und sich Austritte frühestens 1971 ereignen (s. auch folgende Tabelle). . tab year austritt interview | austritt year | 0 1 | Total -----------+----------------------+---------70 | 165 0 | 165 71 | 123 42 | 165 72 | 108 15 | 123 73 | 91 17 | 108 -----------+----------------------+---------Total | 487 74 | 561 . drop if year==70 (165 observations deleted) Im folgenden logistischen Regressionsmodell unterstellen wir durch Verwendung entsprechender Wellendummies eine Abgangsrate, die sich von Jahr zu Jahr verändert. . xi: logit austritt i.year i.year _Iyear_71-73 Logistic regression Log likelihood = -186.22528 (naturally coded; _Iyear_71 omitted) Number of obs LR chi2(2) Prob > chi2 Pseudo R2 = = = = 396 9.02 0.0110 0.0236 5 -----------------------------------------------------------------------------austritt | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Iyear_72 | -.8995663 .3284287 -2.74 0.006 -1.543275 -.2558578 _Iyear_73 | -.6031314 .3189861 -1.89 0.059 -1.228333 .0220699 _cons | -1.074515 .1787165 -6.01 0.000 -1.424793 -.7242367 ------------------------------------------------------------------------------ Die logistische Regression unterstellt folgendes Modell: ⎛ λ(t i ) ⎞ ⎟⎟ = δ 1 + δ 2 d 72 t + δ 3 d 73t . ln⎜⎜ ⎝ 1 − λ(t i ) ⎠ Die bekannte Umformung liefert eine Bestimmungsgleichung für die geschätzten bedingten Abgangswahrscheinlichkeiten (zeitdiskrete Abgangsraten): λ(t i ) = exp(δ 1 + δ 2 d 72 t + δ 3 d 73t ) . 1 + exp(δ 1 + δ 2 d 72 t + δ 3 d 73t ) Unter Verwendung der geschätzten Regressionskoeffizienten (δˆ1 , δˆ2 , δˆ3 ) lassen sich die Abgangswahrscheinlichkeiten berechnen: . dis exp(_b[_cons]) / (1 + exp(_b[_cons])) .25454545 . dis exp(_b[_cons]+_b[_Iyear_72]) / (1 + exp(_b[_cons]+_b[_Iyear_72])) .12195122 . dis exp(_b[_cons]+_b[_Iyear_73]) / (1 + exp(_b[_cons]+_b[_Iyear_73])) .15740741 Es ergeben sich exakt die drei Abgangswahrscheinlichkeiten, die man sich auch „zu Fuß“ anhand der Fallzahlen ausrechnen kann (vgl. Tabelle 1). Die Likelihood des Untersuchungsergebnisses errechnet sich aus der Wahrscheinlichkeit, dass 42 Personen nach einem Jahr die Gewerkschaft verlassen haben und 123 Personen im ersten Jahr in der Gewerkschaft verblieben sind und 15 Personen nach zwei Jahren die Gewerkschaft verlassen haben und ... usw.: L = 0,255 42 ⋅ (1 − 0,255)123 ⋅ 0,12215 ⋅ (1 − 0,122)108 ⋅ 0,15717 ⋅ (1 − 0,157) 91 . Da die Maximierung eines solchen Produktes aus Potenzen sehr unhandlich ist, betrachtet man den natürlichen Logarithmus der Likelihood-Funktion, der an der gleichen Stelle wie L sein Maximum hat: ln L = 42 ⋅ ln(0,255) + 123 ⋅ ln(1 − 0,255) + 15 ⋅ ln(0,122) + 108 ⋅ ln(1 − 0,122) + 17 ⋅ ln(0,157) + 91 ⋅ ln(1 − 0,157) Wenn man diese Formel ausrechnet ergibt sich lnL=-186,2 – genau der Wert, der auch in der obigen logistischen Regression ausgedruckt ist. Würde irgendwelche anderen Werte für die drei Abgangswahrscheinlichkeiten einsetzen, ergäben sich in allen Fällen ein niedrigerer Wert der Log-Likelihoodfunktion, was darauf hinweist, dass die drei Abgangswahrscheinlichkeiten 0,255, 0,122 und 0,157 (bzw. die logistischen Regressionskoeffizienten) die MaximumLikelihood-Schätzer sind. 6 Das Maximum-Likelihood-Prinzip kann man sich auch noch einmal an einem einfacheren Regressionsmodell überlegen, das für alle Zeitpunkte die gleiche Abgangsrate unterstellt: ⎛ λ(t i ) ⎞ ⎟⎟ = δ 1 . ln⎜⎜ ⎝ 1 − λ(t i ) ⎠ Hier können wir den Maximum-Likelihood-Schätzer auch selber durch Probieren bestimmen. Es geht nur darum, den Wert für δ 1 zu finden, der folgende Gleichung maximiert: ln L = 42 ⋅ ln(δ 1 ) + 123 ⋅ ln(1 − δ 1 ) + 15 ⋅ ln(δ 1 ) + 108 ⋅ ln(1 − δ 1 ) + 17 ⋅ ln(δ 1 ) + 91 ⋅ ln(1 − δ 1 ) = 74 ⋅ ln(δ 1 ) + 322 ⋅ ln(1 − δ 1 ) Ein bisschen Probieren zeigt, dass δˆ1 = 0,187 einen Wert von lnL=-190,7 liefert, der durch keinen anderen δˆ − Wert überschritten wird (siehe auch die folgende Abbildung, in der 1 0,187 rot markiert ist). . dis 74*ln(.187) + 322*ln(1-.187) -190.73364 . dis 74*ln(.180) + 322*ln(1-.180) -190.79629 . dis 74*ln(.190) + 322*ln(1-.190) -190.74628 -800 Log-Likelihood -600 -400 -200 . graph twoway function y=74*ln(x) + 322*ln(1-x), range(0.01 0.9) xline(0.187) > ytitle("Log-Likelihood") xtitle("Abgangswahrscheinlichkeit") 0 .2 .4 .6 Abgangswahrscheinlichkeit .8 1 Das gleiche Schätzergebnis liefert die Regressionsprozedur von Stata: . logit austritt 7 Logistic regression Log likelihood = -190.73361 Number of obs LR chi2(0) Prob > chi2 Pseudo R2 = = = = 396 -0.00 . -0.0000 -----------------------------------------------------------------------------austritt | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_cons | -1.470486 .1289151 -11.41 0.000 -1.723155 -1.217817 -----------------------------------------------------------------------------. dis exp(_b[_cons]) / (1 + exp(_b[_cons])) .18686869 Allerdings liefert das Modell eine signifikant schlechtere Erklärung als das vorherige, wie man anhand eines Likelihood-Verhältnistest leicht nachprüfen kann: LR = 2 ⋅ ([− ln( Lr )] − [− ln( Lur )]) = 2 ⋅ ([− (−190 ,73361)] − [− (−186.22528)]) = 9,02 Bei zwei Freiheitsgraden ist dieser Testwert hochgradig signifikant. Testverteilung ist die Chi-Quadrat-Verteilung. Der p-Wert beträgt laut Stata: . dis chi2tail(2, 2*(190.73361-186.22528)) .01101684 8