621 109 7MB
German Pages 526 Year 2016
Ulrich Kohler, Frauke Kreuter Datenanalyse mit Stata
Ulrich Kohler, Frauke Kreuter
Datenanalyse mit Stata Allgemeine Konzepte der Datenanalyse und ihre praktische Anwendung 5. aktualisierte Auflage
ISBN 978-3-11-047290-5 e-ISBN (PDF) 978-3-11-046950-9 e-ISBN (EPUB) 978-3-11-046973-8 Library of Congress Cataloging-in-Publication Data A CIP catalog record for this book has been applied for at the Library of Congress. Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de abrufbar. © 2017 Walter de Gruyter GmbH, Berlin/Boston Druck und Bindung: CPI books GmbH, Leck ♾ Gedruckt auf säurefreiem Papier Printed in Germany www.degruyter.com
Vorwort Die fünfte Auflage von „Datenanalyse mit Stata“ enthält eine Reihe von Modernisierungen der Stata-Syntax und anderen Darstellungen um den Text lesefreundlicher zu machen. Eine Reihe von Fehlern wurden korrigiert und die Datensätze in das neue Stata 14 Format überführt, welches Unicode unterstützt und daher Umlaute in Variablennamen zulässt. Nutzer älterer Stata-Versionen (12 und 13) können die Daten der Daten der vorangegangenen Auflage ohne Einschränkung verwenden. Darüber hinaus haben wir uns bei der Gliederung von Kapitel 5 zum „Erstellen und Verändern von Variablen“ stärker an den Bedürfnissen von Neueinsteigern orientiert indem wir das schwierige Thema zum rekodieren mit by, _n, _N und expliziten Subscripten weiter nach hinten gerückt haben. Wir bieten nun einen systematischeren Zugang zum Umgang mit „Missing Values“ und haben einen neuen Abschnitt zum Thema „Unicode“ in Kapitel „Daten lesen und schreiben“ erstellt (Abschnitt 11.7). Lehrbücher, und besonders solche, die als Texte zum Selbstlernen angelegt sind, profitieren immer vom Feedback durch Leser. Ausdrücklich bedanken wollen wir uns daher für die Zuschriften folgender Personen: T. Bock, B. Boessl, T. Creutz, I. Dammasch, J. Demuth, Y. Eggenschwiler, T. Fechner, A. von Flüe, J. Galanis, V. Jovic, A. Kadow, K. Kriemann, S. Krückel, P. Leppert, M. Sarközi, A. Schmidt, S. Scheurle, J. Schulz, A. Sehnert, M. Siahpush, F. Simmen, S. Späthe, B. Sulayman-Willie, H. Tauchmann, und F. Wieser. Besonderern Dank schulden wir D. Enzmann und M. Krawietz, die uns beide eine besonders lange Fehlerliste zukommen haben lassen. Viele Faktoren tragen dazu bei, dass aus einem Lehrbuch ein gutes Lehrbuch wird. Ein Lehrbuch in Datenanalyse braucht gute Daten. Dank gebührt deshalb der SOEP-Gruppe am Deutschen Institut für Wirtschaftsforschung (DIW), und ganz besonders Jan Goebel. Unseren Arbeitgebern, der Universität Potsdam, dem JPSM, dem IAB und der Universität Mannheim, danken wir dafür, dass sie so wunderbare Arbeitsbedingungen für uns bereitstellen. Unseren Kollegen S. Grau, M. Krawietz, S. Munnes, A. Rolf, C. Saalbach, T. Sawert, C. Thewes danken wir für Ihre Kritik und Mitarbeit. Unseren Familien und Freunden danken wir für ihre Unterstützung und Geduld. Für den Inhalt – und die Fehler – aller Teile dieses Buches sind wir beide zu gleichen Teilen verantwortlich. Sie erreichen uns unter der E-Mail-Adresse [email protected], und wir freuen uns über alle Hinweise auf Fehler und Verbesserungsvorschläge. Ulrich Kohler Frauke Kreuter Oktober 2016
Inhalt Vorwort | V Zu diesem Buch | 1 1 1.1 1.2 1.3 1.4 1.5 1.6
„Das erste Mal“ | 9 Aufruf von Stata | 9 Gestalten der Bildschirmansicht | 10 Erste Analysen | 11 Do-Files | 29 Stata verlassen | 31 Übungen | 32
2 2.1 2.2 2.2.1 2.2.2 2.2.3 2.3 2.4
Arbeiten mit Do-Files | 34 Von der interaktiven Arbeit zum Do-File | 34 Do-Files sinnvoll gestalten | 40 Kommentare | 41 Zeilenwechsel | 41 Befehle, die in keinem Do-File fehlen sollten | 43 Arbeitsorganisation | 46 Übungen | 51
3 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.2 3.2.1 3.2.2 3.2.3 3.3 3.4
Die Stata-Grammatik | 52 Elemente der Stata-Kommandos | 52 Der Befehl | 52 Die Variablenliste | 54 Optionen | 57 Die in-Bedingung | 58 Die if-Bedingung | 60 Ausdrücke | 62 Die Nummernliste | 68 Dateinamen | 69 Wiederholung ähnlicher Befehle | 70 Das by-Präfix | 71 Die foreach-Schleife | 72 Die forvalues-Schleife | 76 Die Gewichtungsanweisung | 77 Übungen | 82
VIII | Inhalt 4 4.1 4.2 4.3
Eine allgemeine Bemerkung zu den Statistik-Kommandos | 84 Herkömmliche Statistikbefehle | 84 Modellbefehle | 87 Übungen | 89
5 5.1 5.1.1 5.1.2 5.1.3 5.2 5.3 5.4 5.4.1 5.4.2 5.5 5.5.1 5.5.2 5.6 5.7 5.7.1 5.7.2 5.8 5.9
Erstellen und Verändern von Variablen | 91 Die Befehle generate und replace | 92 Variablennamen | 93 Einige Beispiele | 94 Nützliche Funktionen | 98 Missings zuweisen und aufheben | 101 Beschriftung von Variablen | 105 Spezielle Recodierungs-Befehle | 108 recode | 108 egen | 109 Recodieren für Fortgeschrittene | 111 Recodieren mit by, _n und _N | 112 Explizite Subscripte | 114 Recodieren von String-Variablen | 116 Recodierung von Datums- und Zeitangaben | 121 Datumsangaben | 121 Zeit | 126 Storage-Types oder: der Geist in der Maschine | 128 Übungen | 130
6 6.1 6.2 6.2.1 6.2.2 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.4 6.4.1 6.4.2 6.4.3 6.5 6.6
Erstellen und Verändern von Grafiken | 131 Eine Vorbemerkung zur Syntax | 131 Typen von Grafiken | 132 Beispiele | 133 Spezielle Grafiken | 133 Elemente der Grafiken | 135 Erscheinungsbild der Daten | 137 Grafik- und Plotregion | 146 Informationen innerhalb der Plotregion | 149 Informationen außerhalb der Plotregion | 154 Multiple Grafiken | 161 Überlagerung mehrerer twoway-Grafiken | 162 Befehlsoption by() | 163 Zusammenführung von Grafiken | 164 Speichern und Drucken von Grafiken | 166 Übungen | 169
Inhalt
7 7.1 7.2 7.2.1 7.2.2 7.3 7.3.1 7.3.2 7.3.3 7.4
Die Beschreibung von Verteilungen | 170 Wenige oder viele Ausprägungen? | 171 Variablen mit wenigen Ausprägungen | 172 Tabellarische Darstellungen | 172 Grafische Verfahren | 177 Variablen mit vielen Ausprägungen | 183 Häufigkeitsverteilung gruppierter Daten | 184 Beschreibung durch Maßzahlen | 187 Grafische Verfahren | 198 Übungen | 210
8 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.3 8.3.1 8.3.2 8.3.3 8.4
Grundlagen statistischer Inferenz | 211 Zufallsstichproben und Stichprobenverteilungen | 212 Erzeugung von Zufallszahlen | 212 Erzeugung fiktiver Datensätze | 213 Ziehung von Stichproben | 217 Die Stichprobenverteilung | 219 Deskriptive Inferenz | 223 Standardfehler für einfache Zufallsstichproben | 224 Standardfehler für komplexe Stichproben | 225 Standardfehler bei fehlenden Daten | 233 Verwendungen für Standardfehler | 242 Kausale Inferenz | 254 Grundlegende Konzepte | 254 Der Effekt der dritten Klasse | 259 Einige Probleme der kausalen Inferenz | 261 Übungen | 263
9 9.1 9.1.1 9.1.2 9.2 9.2.1 9.2.2 9.2.3 9.3 9.3.1 9.3.2 9.3.3 9.4 9.4.1
Einführung in die Regressionstechnik | 265 Lineare Einfachregression | 268 Das Grundprinzip | 268 Lineare Regression mit Stata | 272 Die multiple Regression | 282 Multiple lineare Regression mit Stata | 283 Spezielle Kennzahlen der multiplen Regression | 286 Was bedeutet eigentlich „unter Kontrolle“? | 288 Regressionsdiagnostik | 290 Die Verletzung von E(ϵi ) = 0 | 291 Heteroskedastizität | 307 Autokorrelation | 309 Verfeinerte Modelle | 310 Kategoriale unabhängige Variablen | 311
| IX
X | Inhalt 9.4.2 9.4.3 9.5 9.5.1 9.5.2 9.5.3 9.6 9.6.1 9.6.2 9.7
Interaktionseffekte | 314 Regressionsmodelle mit transformierten Daten | 319 Darstellung von Regressionsergebnissen | 324 Tabellen ähnlicher Regressionsmodelle | 324 Koeffizienten-Plots | 327 Conditional-Effects-Plots | 332 Weiterführende Verfahren | 335 Median-Regression | 335 Regressionsmodelle für Paneldaten | 337 Übungen | 348
10 Regressionsmodelle für kategoriale abhängige Variablen | 350 10.1 Das lineare Wahrscheinlichkeitsmodell | 351 10.2 Grundkonzepte | 355 10.2.1 Odds, Log-Odds und Odds-Ratios | 355 10.2.2 Exkurs: Das Maximum-Likelihood-Prinzip | 360 10.3 Logistische Regression mit Stata | 364 10.3.1 Der Koeffizientenblock | 366 10.3.2 Der Iterationsblock | 372 10.3.3 Der Modellfit-Block | 373 10.4 Diagnostik der logistischen Regression | 379 10.4.1 Linearität | 379 10.4.2 Einflussreiche Fälle | 383 10.5 Likelihood-Ratio-Test | 387 10.6 Verfeinerte Modelle | 389 10.7 Weiterführende Verfahren | 394 10.7.1 Probit-Modelle | 395 10.7.2 Multinomiale logistische Regression | 397 10.7.3 Ordinale Logit-Modelle | 401 10.8 Übungen | 404 11 Daten lesen und schreiben | 406 11.1 Das Ziel: Die Datenmatrix | 406 11.2 Import maschinenlesbarer Daten | 408 11.2.1 Einlesen von System-Files anderer Programme | 409 11.2.2 Einlesen von Textdateien | 413 11.3 Dateneingabe | 421 11.3.1 Dateneingabe über den Editor | 422 11.3.2 Der input-Befehl | 423 11.4 Zusammenführung von Datensätzen | 427 11.4.1 Die Datenstruktur des GSOEP | 428 11.4.2 Der Befehl merge | 430
Inhalt
11.4.3 11.5 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8
Der Befehl append | 441 Datensätze speichern und exportieren | 444 Zum Umgang mit großen Datensätze | 445 Regeln zum Umgang mit dem Arbeitsspeicher | 445 Die Verwendung zu großer Datensätze | 446 Unicode | 447 Datencodierungen | 448 Kompatibilitätsprobleme | 451 Babylon | 455 Übungen | 459
12 Do-Files für Fortgeschrittene und eigene Programme | 460 12.1 Zwei Anwendungsbeispiele | 460 12.2 Vier Programmierwerkzeuge | 462 12.2.1 Makros | 462 12.2.2 Do-Files | 466 12.2.3 Programme | 466 12.2.4 Ado-Files | 469 12.3 Selbst programmierte Stata-Befehle | 473 12.3.1 Konzept der Syntax | 475 12.3.2 Erstellen eines ersten Ado-Files | 475 12.3.3 Weitergabe von Variablenlisten | 477 12.3.4 Weitergabe von Optionen | 478 12.3.5 Weitergabe von if und in | 480 12.3.6 Bilden von Variablen unbekannter Anzahl | 481 12.3.7 Voreinstellungen | 484 12.3.8 Erweiterte Makrofunktionen | 486 12.3.9 Veränderungen am Datensatz vermeiden | 488 12.3.10 Help-Files | 489 12.4 Übungen | 491 13 Rund um Stata | 492 13.1 Ressourcen mit Informationen | 492 13.2 Pflege von Stata | 493 13.3 Zusätzliche Prozeduren | 494 13.3.1 Stata Journal-Ados | 494 13.3.2 SSC-Ados | 497 13.3.3 Andere Ados | 497 13.4 Bezugsquellen | 499
| XI
XII | Inhalt Literatur | 501 Stichwortverzeichnis | 505
Zu diesem Buch Das vorliegende Lehrbuch behandelt Datenanalyse, Stata und insbesondere Datenanalyse mit Stata. Es ist die einzige deutschsprachige Einführung in Stata und zugleich das einzige Buch über Stata, das auch Anfängern eine ausreichende Erklärung der Datenanalysetechniken liefert. „Datenanalyse mit Stata“ ist kein reines Befehls-Handbuch, vielmehr werden an praktischen Beispielen alle Schritte einer Datenanalyse vorgeführt und erklärt. Die Beispiele beziehen sich auf Themen der öffentlichen Diskussion (Einkommensungleichheit zwischen Männern und Frauen, Wahlergebnisse etc.) oder der direkten Umgebung der meisten Leser (z.B. Mieten und Wohnbedingungen). Dies erlaubt den Verzicht auf sozialwissenschaftliche Theorien zur Begründung der Analysebeispiele und den Rückgriff auf den „gesunden Menschenverstand“. Betonen möchten wir, dass dieser lediglich als Platzhalter für fundiertere Theorie steht, ohne die Datenanalyse unmöglich ist. Wir haben in unseren Lehrveranstaltungen die Erfahrung gemacht, dass dieses Vorgehen eine interdisziplinäre Anwendung erleichtert. Damit ist dieses Buch auch für Biometriker, Ökonometriker, Psychometriker und andere „Metriker“ geeignet kurz für alle, die Daten analysieren möchten. Die Auswahl der Befehle, Optionen und statistischen Verfahren ist keineswegs erschöpfend, soll aber ein grundlegendes Verständnis von Stata an die Hand geben. Die meisten Stata-Fragen, die über dieses Buch hinaus auftreten, sollten nach der Lektüre selbstständig gelöst werden können. Allen Lesern, Anfängern wie auch Fortgeschrittenen, empfehlen wir eindringlich diese Einleitung und das Kapitel „Das erste Mal“ aufmerksam zu lesen, denn beide dienen als Hilfe und Wegweiser für das gesamte Buch. Anfänger sollten das Buch „von vorne nach hinten“ durcharbeiten und dabei am Rechner unsere Beispiele nachvollziehen. „Umsteiger“ von anderen Statistikprogrammen können sich mit Hilfe der zahlreichen Querverweise des Kapitels ihren eigenen Weg durch das Buch bahnen. Versierte Stata-Nutzer werden von dem ausführlichen Index profitieren und beim Nachschlagen vielleicht die eine oder andere bisher nicht bekannte „Zauberei“ entdecken oder sich auf die Programmierung eigener Befehle stürzen. Alle, denen Stata (noch) nicht zur Verfügung steht, sind eingeladen, die Analysekapitel zu lesen und vielleicht sogar den einen oder anderen Hinweis (z.B. zur Diagnostik) in die Sprache des ihnen verfügbaren Statistikprogramms zu übersetzen.
Aufbau „Das erste Mal“ (Kapitel 1) zeigt die Durchführung einiger typischer Arbeiten statistischer Datenanalyse mit Stata. Anfänger der Datenanalyse bekommen dabei ein Gespür für Stata vermittelt und einige Grundbegriffe wie z.B. Variablen, Fälle oder feh-
2 |
Zu diesem Buch
lende Werte erläutert. Erfahrenen Anwendern anderer Datenanalyseprogramme ermöglicht dieses Kapitel einen raschen Einstieg in Stata. Sie finden zahlreiche Querverweise, wodurch es als ausführliches Inhaltsverzeichnis verwendet werden kann. Das übrige Buch gliedert sich daran anschließend in drei Teile: Die Kapitel 2–6 dienen der Einführung in die grundlegenden Werkzeuge von Stata. In den übrigen Teilen des Buches werden diese Werkzeuge als bekannt vorausgesetzt bzw. wird auf die entsprechenden Stellen in diesem Teil verwiesen. Die Darstellung der Stata-Grundlagen kann nicht ohne Verfahren erfolgen, die erst im zweiten Teil des Buches erklärt werden. Wir haben uns jedoch bemüht, für diesen Zweck nur leicht Verständliches wie Mittelwerte und Kreuztabellen zu verwenden. Kapitel 2 zeigt, wie Datenanalyse – nicht nur mit Stata – betrieben werden sollte: nachvollziehbar und jederzeit reproduzierbar. Die hierfür notwendigen Hilfsmitteln in Stata sind „DoFiles“, ohne die eine ernstzunehmende Datenanalyse nicht denkbar ist. Kapitel 3 führt in die allgemeine Befehlssprache von Stata ein. Es kann zügig gelesen und im Verlauf des Buches zum Nachschlagen verwendet werden. Kapitel 4 zeigt, wie die Ergebnisse statistischer Berechnungen in Stata für spätere Befehle genutzt werden können. In Kapitel 5 werden die Befehle zum Erstellen und Verändern von Variablen vorgestellt. Den Abschluss des ersten Teils bildet Kapitel 6, das Grafiken einführt. Wir betrachten Grafiken als ein wichtiges Hilfsmittel moderner Datenanalyse, auf das wir im zweiten Teil des Buches häufig zurückgreifen werden. Einige der in Kapitel 6 beschriebenen Möglichkeiten werden erst bei der Präsentation der Ergebnisse relevant. Dieses Kapitel kann deshalb zunächst relativ rasch durchgearbeitet und später bei Bedarf genauer gelesen werden. In den Kapiteln 7–10 wird gezeigt, wie Datenanalyse konkret aussehen kann. Den Anfang macht Kapitel 7 mit der Darstellung von Techniken zur Beschreibung und zum Vergleich von Verteilungen. Kapitel 8 behandelt das Thema der statistischen Inferenz, d.h., die Frage, inwiefern Statistiken, die in einem Datensatz berechnet werden, eine Aussage erlauben, die über den jeweiligen Datensatz hinausgehen. Kapitel 9 führt in die lineare Regressionsanalyse ein. Dabei wird das Verfahren zunächst allgemein erläutert und dann an einem praktischen Beispiel vorgeführt. Daran anschließend werden die statistischen Voraussetzungen für die Gültigkeit der Ergebnisse und die Möglichkeiten zu ihrer Überprüfung aufgezeigt. Die Verfeinerung der Modelle sowie ein Ausblick auf weiterführende Verfahren runden das Kapitel ab. Kapitel 10, in dem Regressionsmodelle für kategoriale abhängige Variablen beschrieben werden, hat zur Betonung der Ähnlichkeiten dieser Verfahren den gleichen Aufbau. In den Kapiteln 11–13 behandeln wir Inhalte, die nicht von allen Stata-Anwendern benötigt werden, für viele aber früher oder später von Interesse sein dürften. Kapitel 11 erläutert das „Lesen“ und „Schreiben“ von Daten, die nicht als Stata-Dateien vorliegen. In den meisten Lehrbüchern zu Datenanalyseprogrammen steht dieses Kapitel am Anfang. Wir haben jedoch die Erfahrung gemacht, dass die meisten Anfänger zunächst nicht mit systemfremden Daten oder der Eingabe selbst erhobener Daten konfrontiert werden wollen. Kapitel 12 stellt zunächst einige spezielle Konzepte vor,
Zu diesem Buch
| 3
mit denen Do-Files für aufwendige Datenanalysen optimiert werden können. Die hierzu verwendeten Werkzeuge können auch dazu genutzt werden, eigene Stata-Befehle in Form sog. „Ado-Files“ zu schreiben. Diese werden in der zweiten Hälfte des Kapitels behandelt. Die Tatsache, dass jeder Anwender von Stata eigene Stata-Befehle programmieren kann, hat dazu geführt, dass es zusätzlich zum offiziellen Stata eine Vielzahl von Befehlen gibt, die kostenfrei über das Internet bezogen werden können. Die Fundstellen für diese Befehle sowie weitere Ressourcen rund um Stata finden Sie in Kapitel 13.
Material und Hinweise zur Benutzung Datenanalyse lernt man nur, indem man Daten selbst analysiert. Deshalb liefern wir Ihnen über das Internet Datensätze, mit denen Sie alle in diesem Buch besprochenen Befehlszeilen selbst anwenden können und sollen. Die meisten verwenden verfremdete Daten des Sozio-oekonomischen Panels (kurz SOEP bzw. GSOEP). Daneben verwenden wir eine Reihe weiterer kleinerer Datensätze. Sie können diese Datensätze entweder direkt mit Stata herunterladen, oder als Zip-Archiv mit einem InternetBrowser. Falls Sie Schwierigkeiten haben, mit Hilfe einer der beiden vorgeschlagenen Methoden an die Dateien zu kommen, können Sie uns gerne kontaktieren.¹ Unabhängig davon, wie Sie die Daten herunterladen wollen, sollten Sie zunächst den Ordner/das Verzeichnis² c:\data\kk auf Ihrem Computer erstellen. Zum Anlegen neuer Ordner unter Windows verwenden Sie den Explorer. Dort begeben Sie sich zunächst in das Verzeichnis, innerhalb dessen Sie das neue Verzeichnis anlegen möchten. Dort klicken Sie auf Datei > Neu > Neuer Ordner anlegen und geben den Namen des neuen Verzeichnisses an. Wenn Sie die Daten an eine andere Stelle speichern wollen, müssen Sie dies unten entsprechend berücksichtigen. Beim nächsten Schritt haben Sie die Wahl: – Falls der Rechner, auf dem Stata installiert ist, eine Verbindung zum Internet hat, können Sie die Daten direkt mit Stata herunterladen. Hierzu geben Sie folgende Befehle in das Stata-Eingabefenster ein (Hinweise zur Eingabe von Stata-Befehlen finden Sie zu Beginn von Kap. 1). Falls Sie auf einem Macintosh oder Unix-System
1 Bitte kontaktieren Sie uns, falls Sie mit einer Stata 11 oder älter arbeiten, oder aber mit „Small-Stata“ arbeiten. 2 Wir verwenden den Begriff „Verzeichnis“ an Stelle des teilweise ebenfalls üblichen Begriffs „Ordner“.
4 |
Zu diesem Buch
arbeiten oder unsere Daten an einer anderen Stelle auf Ihrem Computer speichern wollen als unter c:\data\kk, ändern Sie diese Pfadangabe entsprechend ab. . cd "c:/data/kk" . net from http://www.stata-press.com/data/kk4/ . net get data
Diese Befehle laden alle benötigten Datensätze für die nachfolgenden Kapitel herunter. Lediglich Abschnitt 11.4 benötigt weitere Datensätze. Diese erhalten Sie mit: . . . . .
–
mkdir kksoep cd "c:/data/kk/kksoep" net from http://www.stata-press.com/data/kk4/ net get kksoep cd ..
Hinweis: Nutzer von Stata 12 oder 13 ersetzen bitte kk4 in den obigen Befehlen durch kk3. Alternativ sind die Daten auch als Zip-Archiv gespeichert, das Sie herunterladen können, indem Sie folgende Adresse in Ihren Internet-Browser eingeben: http://www.stata-press.com/data/kk4/kk4.zip Speichern Sie die Datei kk.zip in das vorstehend ertellte Verzeichnis. Entpacken Sie danach kk.zip mit Hilfe eines Programms zum Entpacken von Zip-Archiven. Solche Programme sind auf modernen Computern normalerweise bereits installiert und können durch Rechtsklick auf die Datei kk.zip gestartet werden. Suchen Sie im Kontextmenü nach Stichworten wie „WinZip“, „7Zip“, „PK-Zip“ oder einfach „Extrahieren“.
Bei den Beispielen in diesem Buch gehen wir davon aus, dass Ihr Arbeitsverzeichnis in Stata das Verzeichnis ist, in das Sie unser Dateipaket gespeichert und entpackt haben. Nur wenn dies der Fall ist, funktionieren alle Beispiele fehlerfrei. Wie Sie feststellen können, in welchem Arbeitsverzeichnis Sie sich gerade befinden, erläutern wir ebenfalls in Kapitel 1. Beachten Sie bitte auch, dass Sie unsere Datensätze nicht versehentlich mit veränderten Versionen desselben Datensatzes überschreiben. Vermeiden Sie darum die Eingabe des Befehls save, replace, wenn Sie mit unseren Datensätzen arbeiten. Man kann es nicht oft genug betonen: Datenanalyse lernt man nur, indem man Daten selbst analysiert. Wir legen Ihnen deshalb nahe, unsere Analysebeispiele beim Lesen des Textes mit Stata nachzuvollziehen. Immer wenn Sie eine Zeile in dieser Schrift sehen, die mit einem Punkt eingeleitet wird, sollten Sie diese Zeile in Stata eingeben. Dabei ist es wichtig, dass Sie alle Befehle eingeben, da diese innerhalb eines Kapitels aufeinander aufbauen und sich viele Befehle nur dann ausführen lassen, wenn die vorangegangenen eingegeben wurden. Dies ist vor allem dann problematisch, wenn
Zu diesem Buch
| 5
Sie aus zeitlichen Gründen ein Kapitel nicht an einem Stück durcharbeiten können. Sollte dies der Fall sein, geben Sie bitte den Befehl . save mydata, replace
ein, bevor Sie Stata verlassen. Wenn Sie das Kapitel zu einem späteren Zeitpunkt weiter durcharbeiten, können Sie nach der Eingabe von . use mydata, clear
genau an der Stelle weiterarbeiten, an der Sie beim letzten Mal aufgehört hatten. Die Übungen am Ende jedes Kapitels verwenden entweder die mitgelieferten Datensätze oder verweisen auf Datensätze, die von StataCorp im Internet zur Verfügung gestellt werden.³ In Stata können diese Datensätze mit dem Befehl webuse aufgerufen werden. Dies setzt jedoch voraus, dass Ihr Computer über eine Internetverbindung verfügt. Ist dies nicht der Fall müssen die jeweiligen Daten über einen anderen Computer manuell heruntergeladen werden. Dieses Buch enthält sehr viele Grafiken von denen fast alle mit Stata erstellt wurden. In den meisten Fällen befinden sich die dazu notwendigen Stata-Befehle im Text. Einige der Grafiken sind relativ aufwendig, in diesen Fällen haben wir unserem Datenpaket Do-Files beigelegt, mit denen die jeweiligen Abbildungen erstellt werden können. Die Namen der Do-Files geben wir als Fußnote unterhalb der Grafik an. Wenn es uns an manchen Stellen nicht gelungen sein sollte, einen Stata-Befehl hinreichend zu erklären, oder Sie einfach nur mehr zu einem Stata-Befehl erfahren wollen, können und sollten Sie zunächst die Hilfefunktionen von Stata verwenden. Diese werden wir in Kapitel 1 erläutern. Darüber hinaus lohnt sich ein Blick in die Handbücher, die sowohl in gedruckter Form wie auch als PDF-Datei zugänglich sind. Wir verweisen auf die Stata-Handbücher in derselben Art, wie es auch in der Hilfefunktion von Stata (help) zu finden ist: Zum Beispiel verweist die Abkürzung [R] summarize auf den Eintrag zum Befehl summarize im alphabetisch geordneten „Reference Manual“ und [U] 18 bezeichnet das 18. Kapitel des User’s Guide. Jedem Eintrag im Reference Manual entspricht ein Eintrag in der Online-Hilfe (vgl. S. 24) und umgekehrt.
Hinweise für Lehrende Dieses Buch wurde als Skript in drei Veranstaltungstypen getestet: Veranstaltungen zur Einführung in die Datenanalyse, zur Regression und zur Analyse kategorialer Daten. Die kurze Darstellung dieser Veranstaltungstypen bezieht sich auf Vorlesungen (1,5 Stunden pro Sitzung), die in einem Computer-Labor gehalten wurden.
3 http://www.stata-press.com/data/r14/
6 |
Zu diesem Buch
Für den Kurs „Einführung in die Datenanalyse mit Stata“ empfehlen wir den Einstieg über Kapitel 1. Diese Sitzung kann gut interaktiv gestaltet werden, indem die Studierenden aufgefordert werden, nacheinander die einzelnen Befehle einzugeben und jeweils zuvor oder im Anschluss deren Bedeutung erklärt wird. Die unabhängigen Variablen, mit deren Hilfe die Stabilität der Einkommensungleichheit zwischen Männern und Frauen untersucht wird, wurden bisher alle von den Studierenden selbst genannt, so dass die schrittweise Analyse als Frage- und Antwortspiel durchgegangen werden kann. Am Ende der ersten Sitzung sollten die Studierenden ihre Befehle speichern und als Hausaufgabe einen funktionsfähigen und kommentierten Do-File erzeugen; hilfreich ist hierbei die Vorlage eines von Ihnen erstellten Do-File-Musters. Die beiden darauf folgenden Sitzungen sollten die Kapitel 3 bis 5 abarbeiten und können nach diesem Einstieg problemlos etwas „trockener“ unterrichtet werden. Jedem wird einleuchten, dass man zunächst einmal die „Sprache“ des Programms lernen muss. Diese beiden Sitzungen sollten nicht interaktiv, sondern blockweise unterrichtet werden, sprich: Die einzelnen Abschnitte der Kapitel sollten am Stück vorgestellt werden. Am Ende jedes Abschnitts sollte den Studierenden die Möglichkeit gegeben werden, die Befehle „nachzutippen“ und die oft erst dabei auftretenden Fragen zu stellen. Bei Zeitmangel kann auf die Abschnitte 3.3 und 5.8 verzichtet werden. Explizit eingeplant werden sollten hingegen Beispiele und eine ausführliche Besprechung der Abschnitte 3.2 und 5.5.1. Beide enthalten ungewohnte, aber äußerst mächtige Werkzeuge für den versierten Umgang mit Stata. Eine Übung der Inhalte des Grafik-Kapitels wird höchstens eine weitere Sitzung beanspruchen. Zwei Sitzungen sollten für Kapitel 7 eingeplant werden. Als Ergänzung eignet sich eine von D. Bentley entwickelte Übungsaufgabe.⁴ Die dazu notwendigen Daten finden sich in unserem Datenpaket. Die Diskussion statistischer Inferenz sollte mindestens zwei Sitzungen in Anspruch nehmen. Das Material aus Kapitel 8 liefert die notwendige Basis für eine praxisnahe Diskussion über Stichprobenverteilungen. Der Abschnitt über multiple Imputationen kann bei einem Einführungskurs ausgelassen werden. Drei weitere Sitzungen sollten für Kapitel 9 eingeplant werden. Erfahrungsgemäß ist es auch mit einem Einsteigerkurs möglich, die Abschnitte 9.1, 9.2 und 9.3 jeweils in einer Sitzung zu behandeln. Selbstverständlich können dabei nur die wichtigsten Dinge angesprochen werden. Als hilfreich hat es sich erwiesen, die Berechnung der Regressionen mit den Anscombe-Daten als Hausaufgabe vor der Diagnostik-Sitzung lösen zu lassen. Die beiden vorletzten Sitzungen eines „normalen“ Semesters sollten mit Kapitel 11 gefüllt werden. Als Abschluss-Sitzung bietet sich Kapitel 12 an, da dort weitere Hinweise auf Hilfestellungen zur Datenanalyse gegeben werden.
4 http://www.amstat.org/publications/jse/v3n3/datasets.dawson.html
Zu diesem Buch
| 7
Viele der Ideen, die wir für unser Buch entwickelt haben, wurden vom UCLA Department of Statistics für kurze Statistical Computing Labs aufgegriffen. Für Einführungskurse in die Statistik finden sich dort nützliche Ergänzungen zu diesem Buch. Weitere Informationen sind unter http://www.stat.ucla.edu/labs/ zu finden, einschließlich den Kursen für ältere Versionen von Stata. Neben dieser allgemeinen Einführung in die Datenanalyse kann mit dem vorliegenden Material ein Kurs zur „Regressionsanalyse“ (Kapitel 9) oder zur „Analyse kategorialer Daten“ (Kapitel 10) angeboten werden. Für beide Kurse ist es hilfreich, die erste Sitzung mit Kapitel 1 zu beginnen. Stata-Unkundigen kann damit ein kurzer Überblick über die Arbeitsweise mit diesem Programm gegeben werden. Gleichzeitig liefert es Hinweise darauf, wie später auftretende Fragen anhand der Online-Hilfe geklärt werden können. Als Abschluss-Sitzung beider Veranstaltungen ist Kapitel 13 zu empfehlen. In Kursen zur Analyse kategorialer Daten sitzt erfahrungsgemäß ein sehr heterogenes Publikum mit unterschiedlichem Erfahrungshorizont. Bevor Sie mit Kapitel 10 beginnen, sollte deshalb zunächst der Abschnitt 9.1 bearbeitet werden. Dieser knüpft nur an das vielleicht längst vergessene Wissen zurückliegender Mathematikstunden an – in der Regel lassen sich die Zuhörer aber überzeugen, dass sie schon einmal in der Lage waren, eine Gerade zu zeichnen.
1 „Das erste Mal“ Herzlich willkommen! Wir wollen Sie einladen, uns auf einer Tour d’Horizon durch einige typische Anwendungen computergestützter Datenanalyse zu begleiten, auf der wir Sie mit einigen Grundstrukturen von Stata vertraut machen. Wir haben in dieses Kapitel zahlreiche Querverweise eingefügt, so dass fortgeschrittene Anwender von Datenanalyseprogrammen nach dieser ersten Einführung leicht zwischen den verschiedenen Kapiteln des Buches hin- und herspringen können, um Lösungen für spezielle Probleme zu finden. Wenn Sie noch nie mit einem Datenanalyseprogramm gearbeitet haben, empfehlen wir Ihnen, den Text zunächst fortlaufend zu lesen, auch wenn Sie dabei einige Kommandos oder statistische Verfahren nicht gleich verstehen. Bitte lassen Sie sich davon nicht entmutigen. Vollziehen Sie trotzdem jeden unserer Schritte nach. Sie werden dadurch Erfahrungen im Umgang mit Stata sammeln, sich an unseren Jargon gewöhnen und einen groben Eindruck erhalten, wie Datenanalyse aussehen kann. Falls Sie während dieses Kapitels auf Fragen stoßen, die Sie besonders interessieren, führen unsere Querverweise Sie zu den entsprechenden Stellen im Buch. Bevor wir mit der Sitzung beginnen, noch eine kurze Bemerkung: Stata wird im Wesentlichen durch eine „Kommandozeile“ gesteuert. In der Kommandozeile werden Befehle in Form von Buchstaben, Zahlen und Worten eingegeben. Obwohl seit der Stata-Version 8.0 die Anwahl der Befehle über Menüs möglich ist, werden wir nicht auf die Menüführung des Programms eingehen. Dies hat vier Gründe: Erstens glauben wir, dass sich die Menüs selbst erklären. Wenn Sie wissen, nach welchen Funktionen Sie suchen, werden Sie das dazugehörige Menü finden. Zweitens entspricht es der gängigen Praxis unter Stata-Nutzern, Kommandos durch Abdruck von Befehlen zu kommunizieren und nicht durch Beschreibung von Mausklicks auf Menüs, Reiter und Knöpfe, die zumindest teilweise betriebssystemspezifisch sind. Drittens erleichtert unser Vorgehen den Übergang zur Verwendung sog. „Do-Files“ und damit zum richtigen wissenschaftlichen Arbeiten. Und schließlich viertens: Wir glauben, Sie werden mehr Freude an Stata haben, wenn Sie sich ganz auf die Kommandozeile einlassen.
1.1 Aufruf von Stata Naturgemäß beginnt eine Stata-Sitzung mit dem Aufruf des Programms. Wir gehen hier davon aus, dass Stata wie im „Getting-Started-Handbuch“ beschrieben installiert ist. Wenn Sie an einem PC mit dem Betriebssystem Windows arbeiten, rufen Sie Stata wie folgt auf:
10 | 1 „Das erste Mal“ 1. 2.
Wählen Sie Start → Programme → Stata. Wählen Sie Stata-MP, Stata/SE, Intercooled Stata oder Small Stata¹
Unter Macintosh wird Stata durch Doppelklicken des Stata-Symbols aufgerufen. Unix-Anwender geben je nach Programmversion den Befehl xstata, xstata-se oder xstata-mp an der Eingabeaufforderung ein. Danach sollte die voreingestellte Bildschirmansicht von Stata erscheinen. Sie besteht aus fünf Fenstern: Dem Ergebnisfenster in der Mitte („Results“), dem „Review“-Fenster (links), dem Variablenfenster (rechts oben), dem „Properties“-Fenster (rechts unten) und dem Eingabefenster unterhalb des Ergebnisfensters („Command“). Letzteres werden wir im Folgenden auch als „Kommandozeile“ bezeichnen.
1.2 Gestalten der Bildschirmansicht Anstatt die einzelnen Fenster zu erklären, möchten wir Sie zunächst einmal bitten, die Bildschirmansicht zu verändern. In diesem Kapitel werden wir uns ganz auf das Ergebnis- und das Eingabefenster konzentrieren. Um den Inhalt dieser Fenster gut lesen zu können, empfiehlt es sich, eine andere Schriftart zu wählen. Klicken Sie dazu mit der rechten Maustaste in das Ergebnisfenster. Im darauf erscheinenden Menü wählen Sie Fonts und dann die gewünschte Schriftart.² Wenn Sie eine größere Schrift verwenden, kann es passieren, dass die Angaben im Ergebnisfenster nicht mehr vollständig lesbar sind. Ziehen Sie dann das Ergebnisfenster mit der Maus auf, bis der Text wieder im Ganzen lesbar ist. Falls dies – was wahrscheinlich ist – nicht möglich ist, weil das Stata-Fenster zu klein ist, um das Ergebnisfenster auf die gewünschte Größe zu bringen, führen Sie die gleiche Prozedur mit dem Stata-Fenster selbst durch. Stata für Windows hat zahlreiche Optionen zum Verändern des Fenster-Layouts, die in [GS] 2 The Stata user interface beschrieben sind. Ihre veränderte Bildschirmansicht wird als Voreinstellung für spätere Sitzungen gespeichert, sobald Sie Stata beenden. Wenn Sie die ursprüngliche Bildschirmansicht wieder herstellen möchten, verwenden Sie das Menü Edit → Preferences → Load Preference Set → Widescreen Layout (default). Wenn Sie unterschiedliche Bildschirmeinstellungen speichern und verwalten wollen, lesen Sie [GS] 17 Setting font and window preferences.
1 Small Stata kann den von uns verwendeten Datensatz nicht laden. Sollten Sie „nur“ Small Stata besitzen, stellen wir Ihnen auf Anfrage eine verkleinerte Version unseres Übungsdatensatzes zur Verfügung. 2 Beim Mac-OSX klicken Sie auf das Ergebnisfenster und wählen das Menü Prefs → Font Size. In Unix wählen Sie das Menü General Preferences im Prefs-Menü.
1.3 Erste Analysen | 11
1.3 Erste Analysen Eingabe von Befehlen Nun können wir beginnen. Bitte tippen Sie den Buchstaben d und drücken Sie danach die Eingabetaste. Im Ergebnisfenster erscheint folgender Text: . d Contains data obs: vars: size: Sorted by:
0 0 0
Sie haben gerade Ihr erstes Stata-Kommando eingegeben. Der Buchstabe d ist eine Abkürzung für den Befehl describe, mit dem Datensätze näher beschrieben werden. Da Sie im Augenblick noch mit keinem Datensatz arbeiten, ist das natürlich uninteressant. Interessant ist aber, dass in Stata durch ein oder mehrere Buchstaben (bzw. Worte) Befehle eingegeben werden. Die Eingabe eines Befehls wird mit der Eingabetaste abgeschlossen. Wir werden Sie übrigens jeweils durch folgende Schreibweise um die Eingabe eines Befehls bitten. Immer wenn Sie ein Wort in dieser Schrift sehen, das durch einen Punkt eingeleitet wird, sollten Sie das Wort in das Eingabefenster schreiben und danach die Eingabetaste drücken. Tippen Sie das Wort aber ohne den einleitenden Punkt ein und übernehmen Sie die Groß- und Kleinschreibung. Stata ist CaseSensitive, d.h., Großbuchstaben haben eine andere Bedeutung als Kleinbuchstaben. Im folgenden Beispiel tippen Sie also bitte describe in die Kommandozeile ein. . describe
Datensätze und Arbeitsspeicher Das Ergebnis des describe-Befehls ist nicht ganz so uninteressant wie oben behauptet. Grundsätzlich gibt describe Informationen über die Anzahl von Variablen (Spalten) und Beobachtungen (Zeilen) des geladenen Datensatzes.³ Da noch keine Daten geladen wurden, zeigt describe, dass der Datensatz weder Variablen („vars“) noch Beobachtungen („obs“) hat. Außerdem wird angezeigt, wie groß der im Arbeitsspeicher geladene Datensatz ist. Im Gegensatz zu vielen anderen Datenanalyseprogrammen lädt Stata den Datensatz direkt in den Arbeitsspeicher des Computers. Der Großteil des Arbeitsspeichers ist für die Daten reserviert, während Teile des Programms nur bei Bedarf geladen wer3 Zu den Begriffen „Variable“ und „Beobachtungen“ vgl. auch S. 14 unten.
12 | 1 „Das erste Mal“ den. Dies gewährleistet einen schnellen Datenzugriff und ist einer der Gründe für die hohe Rechengeschwindigkeit von Stata. Der Arbeitsspeicher Ihres Computers setzt der Größe der bearbeitbaren Datensätze natürliche Grenzen.⁴ Große Datensätze können darum eventuell erst nach dem Einbau zusätzlichen Arbeitsspeichers bearbeitet werden. Bei der heute üblichen Ausstattung mit Arbeitsspeichern tritt das Problem zu großer Datensätze jedoch eher selten auf. Was Sie außer dem Zukauf von Arbeitsspeicher in derartigen Fällen tun können, erfahren Sie in Abschnitt 11.6 auf Seite 445.
Datensätze laden Lassen Sie uns nun einen Datensatz laden. Dafür ist es am Besten, Sie machen das Verzeichnis, in das Sie unser Dateipaket gespeichert haben, zu Ihrem „Arbeitsverzeichnis“, d.h. zum Verzeichnis, das Stata, sofern nichts weiter angegeben wird, für Leseund Schreibzugriffe verwendet. Für diesen Schritt empfehlen wir ausnahmsweise die Verwendung des Menüs und zwar insbesondere wenn Sie Ihre Daten an einer anderen Stelle gespeichert haben, als von uns vorgeschlagen:⁵ Klicken Sie File → Change working directory und wählen Sie dann mit der Maus das Verzeichnis aus, in das Sie unser Dateipaket gespeichert haben. Wenn Sie unserer Empfehlung gefolgt sind und die Datensätze in das Verzeichnis c:\data\kk kopiert haben, oder sie auch ohne graphische Benutzerführung genau wissen, wo Ihre Daten gespeichert sind, können Sie natürlich auch die Kommandozeile verwenden. Der Befehl zum Wechsel des Arbeitsverzeichnisses heißt Befehl cd – eine Abkürzung für „change directory“. In den meisten Fällen schreibt man hinter den Befehl den vollständigen Namen des Verzeichnisses (Ordners), in das man wechseln möchte. Wenn der Verzeichnisname Leerzeichen enthält, müssen Sie den Namen jedoch Anführungszeichen setzen. In unserem Fall genügt demnach . cd c:/data/kk
Wir verwenden hier übrigens den vorwärtsgewandten Schrägstrich zur Abtrennung von Ordnern, da dieser bei allen Betriebssystemen funktioniert. Unter Macintosh kann der Schrägstrich durch den Doppelpunkt ersetzt werden. Windows-Anwender können auch den gewohnten Backslash verwenden.
4 In Small-Stata können nur Datensätze mit maximal 99 Variablen und ca.1.000 Beobachtungen bearbeitet werden. 5 Grund für unsere Empfehlung ist, dass die physische Position von Verzeichnisse im Dateisystem von Windows oft verschleiert ist, so dass man die Verzeichnisse ohne graphische Benutzerführung kaum findet.
1.3 Erste Analysen | 13
Je nach Betriebssystem und ursprünglichem Arbeitsverzeichnis kann es kürzere Wege geben, in ein anderes Verzeichnis zu wechseln (vgl. [D] cd). Weitere Informationen zu Verzeichnisnamen erhalten Sie auch in Abschnitt 3.1.8 auf Seite 69. Bitte überzeugen Sie sich nun, dass Sie sich im richtigen Ordner befinden. Dies können Sie mit Hilfe des Befehls dir tun. Der Befehl dir zeigt Ihnen eine Liste der Dateien Ihres momentanen Arbeitsverzeichnisses. . dir
0.9k 0.3k 1.9k 0.4k 1.5k 1.5k 0.8k "
1/24/12 1/24/12 1/24/12 1/24/12 1/24/12 1/24/12 1/24/12 1/19/12 1/17/12
19:22 19:22 12:54 12:54 12:54 12:54 12:54 17:10 12:50
. .. an1cmdkk.do an1kk.do an2kk.do an2_0kk.do analwe.dta anbeta.do anincome.do
Abhängig vom Betriebssystem kann die Ausgabe auf Ihrem Bildschirm etwas anders aussehen. Nicht sehen werden Sie auch die Zeile mit „"“. Mit dieser Zeile wollen wir deutlich machen, dass wir Teile aus der Ausgabe weggelassen haben, um Platz zu sparen. Stata teilt die Liste der Dateien in Bildschirmseiten ein. Durch das Wort --more-in der untersten Zeile des Ergebnisfensters wird Ihnen mitgeteilt, dass die Liste fortgesetzt wird. Durch Drücken der Eingabetaste können Sie die jeweils nächste Zeile ansehen, durch jede andere Taste die gesamte nächste Bildschirmseite. Mit der Laufleiste am Rande des Ergebnisfensters können Sie „zurückblättern“. Unter den Dateien, die Ihnen durch dir angezeigt werden, sollte sich auch die Datei data1.dta befinden. Falls Ihnen die Liste zu lang ist, können Sie diese mit . dir *.dta
beschränken oder sich mit dir data1.dta lediglich die gesuchte Datei anzeigen lassen. Wenn Sie sicher sind, dass Sie sich im richtigen Verzeichnis befinden, können Sie data1.dta laden: . use data1
Der Befehl use dient dazu, Datensätze in den Arbeitsspeicher zu laden. Die Syntax ist denkbar einfach: Nach use folgt der Name der Datei, die geladen werden soll. Wenn die Datei die Dateinamenerweiterung (Extension) .dta hat, genügt es, den Namen ohne Erweiterung anzugeben. Das Laden von Datensätzen wird in Kapitel 11 ausführlich beschrieben. Vor allem, wenn Sie keine Stata-Systemdateien haben, werden Sie diesen Abschnitt als hilfreich empfinden. Grundsätzliche Hinweise zur Eingabe von Dateinamen finden Sie in Abschnitt 3.1.8.
14 | 1 „Das erste Mal“ Variablen und Beobachtungen Wenn Sie den Datensatz geladen haben, sollten Sie sich nochmals eine Datensatzbeschreibung ausgeben lassen: . describe Contains data from data1.dta obs: 5,411 vars: 65 size: 568,155 variable name persnr hhnr2009 state ybirth sex mar edu yedu "
storage type long long byte int byte byte byte float
display format %12.0g %12.0g %22.0g %8.0g %20.0g %29.0g %28.0g %9.0g
SOEP 2009 (Kohler/Kreuter) 12 Oct 2016 13:55 value label
state sex mar edu
variable label Never changing person ID * Current household number * State of Residence * Year of birth Gender * Marital Status of Individual * Education * Number of Years of Education
Bei unserem Datensatz data1.dta handelt es sich um einen Auszug aus dem „Deutschen Sozio-oekonomischen Panel“ (GSOEP) des Jahres 2009. Das GSOEP ist eine Befragung einer Stichprobe der deutschen Bevölkerung, die jedes Jahr mit stets denselben Befragten wiederholt wird.⁶ Aus datenschutzrechtlichen Gründen finden Sie nur die Angaben eines zufällig ausgewählten Teils der Befragten. Außerdem wurden Teile der Daten verfremdet. Die Datei enthält 5.411 befragte Personen – die Fälle bzw. Beobachtungen („obs“). Für jede dieser Personen finden sich 65 sog. Variablen („vars“), die im Wesentlichen Antworten auf Fragen eines Fragebogens sind. Im Folgenden werden wir die Begriffe „Befragte“, „Fälle“, „Beobachtungen“ oder „Untersuchungseinheiten“ im Austausch verwenden. In der Regel bezeichnen diese Begriffe die Einheiten, für die Variablen gesammelt wurden. Eine Erläuterung dieser und anderer Begriffe findet sich in Abschnitt 11.1. Schauen wir uns nun die Variablenliste an, die durch describe ausgegeben wurde. Die erste Variable in der Liste trägt den Namen persnr. Dabei handelt es sich nicht um die Antwort auf eine Frage, sondern um eine willkürlich vergebene unveränderliche Personennummer. In den anderen Variablen des Datensatzes finden sich Angaben über den Haushalt des jeweiligen Befragten, das Bundesland, in dem der oder die Befragte wohnt, das Geschlecht, das Geburtsjahr der Befragten und vieles mehr. Um sich einen Überblick über den Namen und den Inhalt aller Variablen zu verschaffen, müssen Sie weiterblättern (zur Erinnerung: Sie können durch die Eingabetaste um eine Zeile und durch jede andere Taste um eine Bildschirmseite vorrücken).
6 Weitere Hinweise zum GSOEP finden Sie in Abschn. 11.4.1.
1.3 Erste Analysen | 15
Wir wollen uns hier zunächst nur mit einem Teil der Variablen befassen. Wir interessieren uns weniger für die Angaben über die Wohnung der Befragten, vielmehr wollen wir unseren Fokus auf das Einkommen und den Erwerbsstatus der Befragten richten. Deshalb sollten Sie alle Variablen vom Jahr des Einzugs (ymove) bis zur letzten Variablen, den „cross sectional weights“ (xweigths) löschen: . drop ymove-xweights
Betrachten der Daten Jetzt sollten Sie sich die Daten etwas genauer anschauen. Hierzu könnten Sie z.B. den gesamten Datensatz – Fall für Fall – auflisten: . list 1.
persnr 8501
hhnr2009 85
state N-Rhein-Westfa.
ybirth 1932
edu Elementary
persnr 8502
hhnr2009 85
hhinc 22093
hhsize 2
rel2head Head state N-Rhein-Westfa.
ybirth 1939
edu Elementary
egp Retired
sex Female
mar Married
yedu 8.7
voc Does not apply
hhsiz~14 0
emp not employed
income .
hhsiz~14 0 2.
mar Married
yedu 10
voc Vocational training egp Retired
sex Male
income .
emp not employed hhinc 22093
hhsize 2
rel2head Partner
"
Wir werden Ihnen gleich zeigen, wie Sie die Ausgabe von list verkürzen können. Zunächst jedoch einige Hinweise zu dem, was Sie vor sich sehen: Der erste Fall des Datensatzes ist ein 1932 geborener verheirateter Mann aus Nordrhein-Westfalen. Er
16 | 1 „Das erste Mal“ besitzt einen Hauptschulabschluss, hat eine Berufsausbildung und ist mittlerweile in Rente. Der zweite Fall ist eine 1939 geborene verheiratete Frau. Sie lebt im selben Haushalt wie der erste Befragte, es handelt sich also wahrscheinlich um seine Ehefrau. Bei beiden Befragten steht in der Variable income ein Punkt. Dies bedeutet, dass der Wert für diese Variable bei diesen beiden Befragten nicht bekannt ist. Dafür kann es mehrere Gründe geben. Es könnte zum Beispiel sein, dass den Befragten die entsprechende Frage gar nicht gestellt wurde oder dass sie diese Frage nicht beantworten wollten. Wir nennen so etwas eine „fehlende Angabe“ oder einen „Missing“. Weiter hinten in diesem Kapitel zeigen wir Ihnen, wie man solche Missings erzeugt (S. 20). Mehr zum Umgang mit fehlenden Werten in Stata finden Sie in Abschnitt 5.2. Einige Anmerkungen zum allgemeinen Umgang mit fehlenden Werten finden sich auf Seite 425.
Befehle unterbrechen und Befehle wiederholen Da nicht alle Fälle des Datensatzes auf eine Bildschirmseite passen, werden Sie einige Male weiterblättern müssen, um alle 5.411 Befragten des Datensatzes kennenzulernen. Bevor Sie aber durch alle Befragten durchblättern, lesen Sie bitte weiter. Das Betrachten des Datensatzes mit dem list-Befehl ist wenig hilfreich. Schon bei relativ kleinen Datensätzen ist die Informationsflut zu groß, um aufgenommen zu werden. Dennoch kann es manchmal sinnvoll sein, einen kurzen Blick auf die ersten Fälle zu werfen. Hier wäre es aber nützlich, sich nur die ersten Fälle anzeigen zu lassen und so das Durchblättern bis zum letzten Fall zu vermeiden. Dies kann mit der Taste q für „quit“ erreicht werden. Immer wenn --more-- auf dem Bildschirm erscheint, unterbricht q die Ausgabe. Seltener werden Sie die Tastenkombination Strg-Pause (Windows) bzw. Command. (Macintosh) oder Pause (Unix) benötigen. Diese Tastenkombinationen sind allgemeine Werkzeuge zur Unterbrechung von Befehlen und stellen den Zustand der Daten vor der Ausführung des jeweiligen Befehls wieder her.
Die Variablenliste Eine andere Möglichkeit, die Fülle von Informationen des list-Befehls zu begrenzen, ist die Angabe einer „Variablenliste“. Mit der Variablenliste wird die Durchführung eines Befehls auf bestimmte Variablen beschränkt. Die Variablenliste wird stets an den eigentlichen Befehl angehängt. So erhalten Sie z.B. die Informationen über die Variablen Geschlecht (gender) und Einkommen (income) mit: . list sex income
1.3 Erste Analysen | 17
Um Schreibarbeit zu sparen, können Sie den zuvor eingegebenen list-Befehl mit der Bild-nach-oben-Taste oder durch einen Klick auf den entsprechenden Befehl im Review-Fenster in die Kommandozeile holen und dann die Variablenliste anfügen. Eine andere Art, Schreibarbeit zu minimieren, ist, den Befehl selbst durch den Buchstaben l abzukürzen. Stata-Befehle sind normalerweise kurz. Einige davon lassen sich jedoch weiter abkürzen. Mehr dazu erfahren Sie in Abschnitt 3.1.1. Sie können übrigens auch die Variablennamen abkürzen. Dafür gibt es eine allgemeine Regel, die wir Ihnen in Abschnitt 3.1.2 vorstellen werden. Alle 5.411 Beobachtungen anzusehen, ist sicher nicht die beste Art, einen Eindruck über die Einkommensverteilung von Männern und Frauen zu bekommen. Es wird so z.B. nur schwer zu beurteilen sein, ob mehr Frauen oder mehr Männer in den unteren Einkommensgruppen sind.
Die In-Bedingung Um einen ersten Eindruck über das Verhältnis von Einkommen und Geschlecht zu bekommen, könnte man Einkommen und Geschlecht für die zehn Befragten ansehen, die am wenigsten verdienen. In diesem Fall würde man zunächst den Datensatz nach Einkommen sortieren und dann eine entsprechende Liste der ersten zehn Fälle erstellen: . sort income . list sex income in 1/10 sex
income
1. 2. 3. 4. 5.
Female Male Male Female Female
0 0 0 0 0
6. 7. 8. 9. 10.
Female Male Female Female Male
0 0 0 0 0
Mit der in-Bedingung kann list auf bestimmte Fälle eingegrenzt werden. Doch nicht nur list, sondern fast alle Stata-Befehle lassen sich mit der in-Bedingung kombinieren. Die in-Bedingung folgt dabei stets der Variablenliste (bzw., wenn diese weggelassen wird, dem Befehl). Angesprochen wird dabei die Position eines Falles im Datensatz. Die Werte aller Variablen für den ersten Fall erhält man mit: . list in 1
18 | 1 „Das erste Mal“ Die entsprechenden Angaben für den zweiten bis vierten Fall erhalten Sie durch die Eingabe von . list in 2/4
Maßgeblich für die Position im Datensatz ist dabei die augenblickliche Sortierung. Diese kann durch den Befehl sort verändert werden. Da oben nach der Variablen income – dem Einkommen – sortiert wurde, befinden sich die Befragten mit dem niedrigsten Einkommen an der ersten Stelle im Datensatz. Zwischen Beobachtungen, die dasselbe Einkommen haben, wird die Position zufällig festgelegt. Durch sort income sex können Sie innerhalb gleicher Einkommenswerte nach dem Geschlecht sortieren. Weitere Informationen zu den in-Bedingungen finden Sie in Abschnitt 3.1.4.
Zusammenfassende Maßzahlen Meistens ist man nicht an den Variablenausprägungen der einzelnen Fälle interessiert. Stattdessen versucht man, die in einer Variable enthaltene Information in einer Maßzahl zusammenzufassen. Die bekannteste Maßzahl ist sicher der arithmetische Mittelwert. Der arithmetische Mittelwert wird mit dem summarize-Befehl berechnet. Die Syntax von summarize folgt demselben Prinzip wie die Syntax von list: Nach der Eingabe des Befehls folgt die Angabe einer Variablenliste, mit der festgelegt wird, für welche Variablen der Mittelwert ausgegeben werden soll. Für das Einkommen sieht der Befehl wie folgt aus: . summarize income Variable
Obs
Mean
income
4,779
20540.6
Std. Dev. 37422.49
Min
Max
0
897756
Das Ergebnis von summarize ist eine Tabelle, die neben dem arithmetischen Mittel („Mean“) die Fallzahl („Obs“), die Standardabweichung („Std. Dev.“), den kleinsten („Min“) und den größten Wert („Max“) enthält. Statt für die insgesamt 5.411 Befragten im Datensatz wird die Tabelle nur für 4.779 Befragte berechnet. Für die übrigen 632 Personen ist im Datensatz keine Information über das Einkommen gespeichert – sie haben einen „Missing“ beim Einkommen. Das durchschnittliche Jahreseinkommen 2009 der Personen mit einer Einkommensangabe beträgt 20.540,6 €. Der Mindestwert ist 0, d.h., mindestens eine Person hat kein persönliches Einkommen. Das höchste Jahreseinkommen aller Personen mit Angaben im Datensatz beträgt 897.756 €. Die Standardabweichung beträgt 37.422 €. Wie bei list können Sie auch bei summarize mehr als eine Variable angeben. Sie erhalten dann die entsprechenden Maßzahlen für alle genannten Variablen. Durch Weglassen der Variablenliste sprechen Sie alle Variablen im Datensatz an:
1.3 Erste Analysen | 19
. summarize Variable
Obs
Mean
Std. Dev.
Min
Max
persnr hhnr2009 state ybirth sex
5,411 5,411 5,411 5,411 5,411
4692186 79260.42 7.899649 1959.493 1.522269
3096841 48474.2 4.440415 18.12642 .49955
8501 85 0 1909 1
1.11e+07 167012 16 1992 2
mar edu
5,410 5,183
1.718854 2.382597
1.020349 1.392508
1 1
5 5
"
Weitere Maßzahlen sowie zahlreiche grafische Darstellungen für Verteilungen werden in Kapitel 7 beschrieben.
Die If-Bedingung Nehmen Sie einmal an, Sie möchten wissen, ob sich das durchschnittliche Einkommen der Männer von dem der Frauen unterscheidet. Diese Aufgabe lässt sich – unter anderem – mit Hilfe einer if-Bedingung lösen. Durch eine if-Bedingung können Sie die Berechnung des Durchschnitts einer Variablen in Abhängigkeit von den Werten einer anderen Variablen durchführen. Um in diesem Fall die if-Bedingung ausnutzen zu können, müssen Sie allerdings wissen, dass der Wert des Geschlechts für männlich 1 und der für weiblich 2 ist. Wie Sie zu dieser Information kommen, zeigen wir Ihnen auf Seite 107. Wenn Sie die Werte der Ausprägungen kennen, können Sie folgende Kommandos verwenden: . summarize income if sex==1 Variable
Obs
Mean
income
2,320
28190.75
Std. Dev. 47868.24
Min
Max
0
897756
Min
Max
0
612757
. summarize income if sex==2 Variable
Obs
Mean
income
2,459
13322.89
Std. Dev. 21286.44
Bitte beachten Sie das doppelte Gleichheitszeichen in der if-Bedingung. Ein einfaches Gleichheitszeichen in if-Bedingungen ist ungültig und die mit Abstand häufigste Ursache für die Fehlermeldung „invalid syntax“. Durch die if-Bedingung wurde die Berechnung der Kennzahlen an die Ausprägung einer anderen Variable geknüpft. Deshalb zeigt die erste Tabelle das Einkommen für alle Beobachtungen, die bei der Variable sex den Wert 1 haben, also die Männer. Die zweite Tabelle zeigt das Einkommen für alle Beobachtungen, die bei der Variable sex den Wert 2 haben, also die Frauen. Wie man sieht ist das durchschnittliche Jah-
20 | 1 „Das erste Mal“ reseinkommen von Frauen deutlich niedriger als von Männern: 13.322,89 € gegenüber 28.190,75 €. Fast alle Befehle in Stata lassen sich an eine if-Bedingung knüpfen. Wie die in-Bedingung folgt die Angabe der if-Bedingung stets dem Befehl und – falls vorhanden – der Variablenliste. Falls eine if-Bedingung und eine in-Bedingung verwendet wird, spielt deren Reihenfolge keine Rolle. Die if-Bedingung kann grundsätzlich auch kompliziertere Ausdrücke enthalten, insbesondere Verknüpfungen mit dem logischen „und“ bzw. „oder“. Diese werden wir in Abschnitt 3.1.5 ausführlich besprechen.
Definieren von fehlenden Werten Gerade haben wir gesehen, dass Männer im Durchschnitt deutlich mehr verdienen als Frauen, nämlich 28.191 € gegenüber 13.323 €. Gleichzeitig gibt es jedoch einige Befragte ohne jegliches Einkommen, und Sie werden zu Recht einwenden, dass Frauen häufiger kein persönliches Einkommen haben als Männer. Sinnvoller wäre es daher, nur diejenigen Personen für den Vergleich heranzuziehen, die überhaupt ein persönliches Einkommen haben. Zu diesem Zweck können Sie die if-Bedingung z.B. durch ein logisches und erweitern (vgl. Abschn. 3.1.5). Eine andere Möglichkeit ist, den Inhalt der Einkommensvariablen so zu verändern, dass ein Einkommen von Null als Missing deklariert wird. Hier würden die Fälle ohne Einkommen bei der Berechnung automatisch ausgeschlossen werden. Hierzu dient der Befehl mvdecode. Mit dem Befehl: . mvdecode income, mv(0=.c) income: 1369 missing values generated
setzen Sie alle Fälle mit der Ausprägung 0 auf der Einkommens-Variable auf Missing. Damit werden diese Fälle automatisch aus allen nachfolgenden Analysen ausgeschlossen. Wie Sie diese Definition wieder rückgängig machen können, erfahren Sie in Abschnitt 5.2. Einige allgemeinere Bemerkungen zum Umgang mit fehlenden Werten finden sich auf Seite 425 im Kapitel 11.
Das Befehls-Präfix by Nun wollen wir Ihnen zeigen, wie Sie mit Hilfe des Befehls-Präfixes by die oben gezeigten Tabellen mit nur einem Kommando erstellen können. Als Befehls-Präfixe bezeichnen wir Befehle, die vor den eigentlichen Stata-Befehl gestellt und von diesem durch einen Doppelpunkt getrennt werden. Das Befehls-Präfix by besteht aus dem Präfix selbst und einer Variablenliste, die wir hier als „By-Liste“ bezeichnen werden. Das Präfix by bewirkt, dass der eigentliche Stata-Befehl für alle Kategorien der Variablen
1.3 Erste Analysen | 21
aus der By-Liste wiederholt wird. Voraussetzung ist allerdings, dass der Datensatz zuvor nach den Variablen der By-Liste sortiert wurde. Hier ist ein Beispiel: . sort sex . by sex: summarize income -> sex = Male Variable
Obs
Mean
income
1,746
37458.5
Variable
Obs
Mean
income
1,664
19688.09
Std. Dev.
Min
Max
51939.73
46
897756
Std. Dev.
Min
Max
23330.87
163
612757
-> sex = Female
Dies ist im Wesentlichen dieselbe Ausgabe wie auf Seite 19. Die Werte haben sich etwas verändert; dies ist aber eine Folge der Veränderung der Einkommensvariable mit mvdecode. Durch das Befehls-Präfix by wurden lediglich die Überschriften über den Tabellen verändert. Gegenüber der Eingabe mit if-Bedingungen bietet die ByKonstruktion einige Vorteile. Der wichtigste ist, dass Sie die Werte der Kategorien nicht kennen müssen. Bei Verwendung von by ist es unwichtig, ob das Geschlecht mit den Werten 1 und 2 oder z.B. mit 0 und 1 vercodet wurde.⁷ Daneben spart by Schreibarbeit, insbesondere wenn die Variable mehr als zwei Ausprägungen hat. Schließlich erlaubt by die Angabe mehrerer Variablen in der By-Liste. In diesem Fall wird der Stata-Befehl für alle Kombinationen der Kategorien der By-Liste wiederholt. Das Befehls-Präfix by ist eines der interessanteren Werkzeuge von Stata. Insbesondere in Verbindung mit den Befehlen zur Bildung und Veränderung von Variablen ergeben sich Anwendungsmöglichkeiten, die auch erfahrene Anwender von Datenanalyseprogrammen überraschen dürften. Mehr hierzu finden Sie in den Abschnitten 3.2.1 und 5.5.1.
Befehlsoptionen Zurück zu der Beschreibung der Einkommensverteilung von Männern und Frauen. Man kann argumentieren, dass der arithmetische Mittelwert, die Standardabweichung sowie Minimum und Maximum nicht genügen, um die Einkommensverteilungen der beiden Teilgruppen zu vergleichen. Mit dem summarize-Befehl können deshalb auch noch weitere Maßzahlen angefordert werden. Dazu benötigt man jedoch ein neues Element der Stata-Befehle: die „Option“.
7 Zur Codierung von Variablen vgl. auch S. 425.
22 | 1 „Das erste Mal“ Im Gegensatz zu den bisher vorgestellten Elementen von Stata-Befehlen haben Optionen nur eine befehlsspezifische Bedeutung. Für jeden Befehl gibt es andere Optionen mit entsprechend unterschiedlichen Bedeutungen. Gemeinsam ist den Optionen aber, dass sie durch ein Komma eingeleitet werden. Allgemein gilt: Nach dem Stata-Befehl, der durch Präfix, Variablenliste, if- oder in-Bedingung näher spezifiziert worden sein kann (aber nicht muss), folgt das Komma und danach in willkürlicher Reihenfolge die Liste der gewünschten Optionen. Der summarize-Befehl hat nur wenig Optionen. Die wichtigste ist detail – abgekürzt d. Mit dieser Option erhalten Sie eine Reihe von Perzentilen, darunter den Median (das 50 %-Perzentil), das erste und dritte Quartil, das Bruttoeinkommen der Personen mit den niedrigsten und höchsten Einkommen sowie die drei sog. Momente Varianz, Schiefe und Kurtosis: . summarize income, detail Individual Labor Earnings 1% 5% 10% 25%
Percentiles 548 1852 3864 10040
50%
22841
75% 90% 95% 99%
36930 53251.5 69806 107981
Smallest 46 90 134 163 Largest 710920 749421 869446 897756
Obs Sum of Wgt.
3,410 3,410
Mean Std. Dev.
28786.96 41537.7
Variance Skewness Kurtosis
1.73e+09 11.27167 188.2845
Für die Optionen ist es unwichtig, wie der jeweilige Stata-Befehl aufgebaut ist. Man kann beliebige Variablenlisten oder eine if- bzw. in-Bedingung einführen oder ein Präfix voranstellen – die Funktionsweise einer Option ist stets dieselbe. Mit . by sex: summarize income if edu==4, detail
können Sie sich dessen vergewissern. Wenn Sie diesen Befehl eingeben, können Sie die Einkommensunterschiede zwischen Männern und Frauen für Befragte auf unterschiedlichem Bildungsniveau ermitteln. Sie werden dabei feststellen, dass es auch bei Befragten mit Abitur Einkommensungleichheit zwischen Männern und Frauen gibt. Allgemeine Hinweise zu Optionen finden Sie in Abschnitt 3.1.3.
Häufigkeitsverteilungen Neben einfachen Maßzahlen sind Häufigkeitsverteilungen und Kreuztabellen – wir wollen hier von ein- oder zweidimensionalen Häufigkeitstabellen sprechen – die häufigsten Werkzeuge elementarer Datenanalyse. Der Stata-Befehl zur Erzeugung von Häufigkeitstabellen lautet tabulate. Zusammen mit diesem Befehl muss eine
1.3 Erste Analysen | 23
Variablenliste bestehend aus maximal zwei Variablen angegeben werden. Wenn Sie nur eine Variable angeben, erhalten Sie eine eindimensionale Häufigkeitstabelle der angegebenen Variable: . tabulate sex Gender
Freq.
Percent
Cum.
Male Female
2,585 2,826
47.77 52.23
47.77 100.00
Total
5,411
100.00
Wenn Sie zwei Variablen angeben, erhalten Sie eine zweidimensionale Häufigkeitsverteilung: . tabulate emp sex Status of Employment
Gender Male Female
Total
full time part time irregular not employed
1,346 59 70 1,014
695 540 218 1,314
2,041 599 288 2,328
Total
2,489
2,767
5,256
Die zuerst eingegebene Variable bildet dabei die Zeilen, die zweite Variable die Spalten der Kreuztabelle. In die Zellen der Tabelle werden die absoluten Häufigkeiten geschrieben, was aber mit entsprechenden Optionen verändert werden kann. Von zentraler Bedeutung sind die Optionen row und column, mit denen die Ausgabe von Zeilen- und Spaltenprozenten angefordert wird. Daneben gibt es Optionen für Kennzahlen über die Stärke des Zusammenhangs. Wie schon beim summarize-Befehl können Sie alle diese Optionen frei mit if- oder in-Bedingungen und Befehls-Präfixen kombinieren. Nachfolgend ein Beispiel mit Spaltenprozenten, bei der wir zusätzlich die Ausgabe der absoluten Häufigkeiten mit (nofreq) unterdrückt haben. . tabulate emp sex, colum nofreq Status of Employment
Gender Male Female
Total
full time part time irregular not employed
54.08 2.37 2.81 40.74
25.12 19.52 7.88 47.49
38.83 11.40 5.48 44.29
Total
100.00
100.00
100.00
24 | 1 „Das erste Mal“ Grafiken Grafiken sind ein mächtiges Werkzeug zur Darstellung von Daten. Zum Beispiel eignet sich der „Box-Plot“ besonders gut dazu, um die Verteilung einer Variable zwischen verschiedenen Gruppen zu vergleichen. Wir verwenden den Box-Plot hier zum Vergleich des Einkommens von Personen mit unterschiedlichem Erwerbsstatus.
0
Individual Labor Earnings 50,000 100000 150000 200000
250000
. graph box income if income |t|
[95% Conf. Interval]
12754.37
1675.482
7.61
0.000
9469.105
16039.63
emp3 part time irregular
-15295.93 -28981.25
2074.688 2688.387
-7.37 -10.78
0.000 0.000
-19363.95 -34252.61
-11227.9 -23709.89
_cons
30950.82
1410.999
21.94
0.000
28184.15
33717.49
Auf das Ergebnis dieser linearen Regression kann hier nicht in allen Einzelheiten eingegangen werden. Nur so viel: Das durchschnittliche Jahreseinkommen der Personen, die bei allen unabhängigen Variablen den Wert 0 haben (das sind die vollzeitbe-
1.4 Do-Files
| 29
schäftigten Frauen) beträgt 30.950,82 €. Ihre teilzeitbeschäftigten Kolleginnen verdienen durchschnittlich 15.295,93 € weniger, also etwa 15.654,89 €. Irregulär beschäftigte Frauen verdienen durchschnittlich 28.981,25 € weniger, also 1.969,57 € pro Jahr. Unabhängig von den Einkommensunterschieden zwischen den drei Erwerbskategorien zeigt sich, dass Männer immer noch etwas mehr verdienen als Frauen. Die Einkommensdifferenz beträgt im Schnitt etwa 12.754,37 €. Die Einkommensungleichheit zwischen Männern und Frauen lässt sich demnach nicht vollständig durch die häufigere Teilzeitbeschäftigung der Frauen erklären. Die Gültigkeit dieser Schlussfolgerung hängt von einer Fülle von Faktoren ab. Dazu gehört eine Reihe formaler statistischer Aspekte des linearen Regressionsmodells, auf die wir in Kapitel 9 eingehen.
1.4 Do-Files Angenommen die Ergebnisse der Regression sind so interessant, dass wir sie aufbewahren wollen. Aufbewahren heißt: die Ergebnisse sollten jederzeit reproduzierbar und die Verfahren zu ihrer Ermittlung nachvollziehbar sein. Mit dieser elementaren Grundlage wissenschaftlichen Arbeitens werden wir uns ausführlich in Kapitel 2 beschäftigen. Wir halten diesen Aspekt jedoch für so wichtig, dass wir die grundsätzliche Vorgehensweise bereits hier vorstellen wollen. Bitte geben Sie einmal folgenden Befehl ein: . doedit
Mit diesem Befehl rufen Sie den „Do-File-Editor“ von Stata auf. Dies ist ein kleines Textverarbeitungsprogramm, mit dem einfache Texte ohne Formatierungen erstellt werden können. An Stelle des Do-File-Editors von Stata können Sie auch jeden anderen Text-Editor verwenden, z.B. NotePad, TextPad, UltraEdit oder (X)Emacs.⁸ Beachten Sie, dass auf Ihrem Computer nun zwei Programme gleichzeitig laufen – der Do-File-Editor und Stata. Der Editor befindet sich im Vordergrund. Er besteht im Wesentlichen aus einer freien Fläche, in die Sie einen beliebigen Text eingeben können. Natürlich können Sie auch Stata-Befehle in den Editor eingeben. Das sollten Sie jetzt tun. Bitte schreiben Sie nachfolgende Kommandos.
8 Unter http://fmwww.bc.edu/repec/bocode/t/textEditors.html werden verschiedene Editoren bezüglich ihrer Eignung für die Arbeit mit Stata verglichen.
30 | 1 „Das erste Mal“
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
use data1, clear
begin an1.do
mvdecode income, mv(0=.a) generate men = 1 if sex == 1 replace men = 0 if sex == 2 generate emp3 = emp if emp |t|
= = = = = =
2,886 78.38 0.0000 0.1198 0.1182 39127
income
Coef.
[95% Conf. Interval]
emp3 2 4
-16120.07 -29188.95
2076.971 2669.66
-7.76 -10.93
0.000 0.000
-20192.57 -34423.58
-12047.57 -23954.31
men age_c
12151.78 190.1975
1668.855 94.01761
7.28 2.02
0.000 0.043
8879.512 5.84891
15424.05 374.5461
c.men#c.age_c
412.3474
130.3497
3.16
0.002
156.7592
667.9356
_cons
31363.58
1408.624
22.27
0.000
28601.57
34125.6
Nun können Sie betrachten, wie es um Ihre Vermutungen steht: Das Modell schätzt das durchschnittliche Jahreseinkommen Vollzeit erwerbstätiger Frauen mittleren Alters auf 31.363,58 €. Wegen des Interaktionsterms bezieht sich der Koeffizient von 190,1975 bei der Variablen age_c nur auf die Frauen. Deren Einkommen steigt im Schnitt um 190,20 € mit jedem Jahr, das sie älter werden. Bei den Männern steigt das Jahreseinkommen schneller mit dem Lebensalter, nämlich um die Summe der Koeffizienten von age_c und dem Interaktionsterm c.men#c.age_c (190, 20 + 412, 3474 = 602, 54 €). Als Folge des schnelleren Anstiegs der Einkommen der Männer ist die Einkommensungleichheit zwischen Männern und Frauen, die im durchschnittlichen Alter 12.151,78 € beträgt, höher bei älteren und niedriger bei jüngeren Befragten. Auch dieses Ergebnis erscheint interessant genug, um es nachvollziehbar aufzubewahren. Da Sie die Eingaben aufgezeichnet haben, ist dies kein besonderes Problem mehr. Bitte schließen Sie den Log-File und wechseln Sie wieder in den Editor: . cmdlog close . doedit an2.do
In an2.do finden Sie Ihre zuletzt eingegebenen Befehle am Ende der Datei. Die Kommandos haben bereits genau die Form, die für einen Do-File benötigt wird. Nur fehlerhaft eingegebene Kommandos müssen gelöscht werden. Nun müssen Sie nur noch einige mehr oder weniger kosmetische Veränderungen vornehmen. Welche, zeigen wir im folgenden Abschnitt.
40 | 2 Arbeiten mit Do-Files
2.2 Do-Files sinnvoll gestalten Der nachfolgend abgedruckte Do-File enthält zu einem großen Teil dieselben Befehle wie der von Ihnen erstellte an2.do. Daneben enthält der Do-File jedoch einige Ergänzungen, nämlich: Kommentare, Zeilenwechsel und spezielle Kommandos, die in keinem Do-File fehlen sollten.⁴ Im Folgenden wollen wir diese Modifikationen näher beschreiben. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
begin an2kk.do * Income inequality between men and women in Germany (GSOEP-data) * --------------------------------------------------------------version 14 set more off capture log close log using an2kk, replace * Data: Subsample of GSOEP 2009 use data1, clear drop ymove - xweights * Descriptive statistic of income summarize income mvdecode income, mv(0=.a) sort sex by sex: summarize income summarize income, detail * Employment by sex tabulate emp sex, colum nofreq * Preparation for the regression analysis generate men = sex == 1 generate emp3 = emp if emp Note 1
// -> Note 2
// -> Note 3 // Dummy for gender // -> Note 4
* Regression analysis I regress income men i.emp3 * Preparation regression analysis II generate age = 2009 - ybirth summarize age if !mi(income,emp3) generate age_c = age - r(mean)
// Age // -> Note 5
* Regression analysis II regress income i.emp3 c.men##c.age_c log close
4 Die Zahlen zu Beginn jeder Zeile sind Zeilennummern. Sie sind nicht Bestandteil der Datei, sondern sollen Ihnen zur Orientierung dienen, wenn wir die einzelnen Teile der Datei besprechen.
2.2 Do-Files sinnvoll gestalten
45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66:
| 41
exit Description ----------This is an analysis of income Hypotheses see Kohler/Kreuter of part time working women is in average income between men is a higher income inequality are still affected.
inequality between men and women in Germany. (2012, chapters 1 and 2). The higher amount not a sufficient explanation for the inequality and women. And in addition, even though there among older people, younger women
Notes: -----1) SOEP - Education-Sample of samples A-D, and F without random group 5 (Created with crdata1.do). 2) Respondents with zero incomes are excluded from further analysis. 3) Women are more often part time employed than men. It is reasonable to control for employment status. 4) This command excludes all respondents that are not employed. 5) Centering the age variable -- see Aiken/West (1991). end an2kk.do
2.2.1 Kommentare Die Nachvollziehbarkeit von Do-Files wird beträchtlich erhöht, wenn man sie mit Kommentaren versieht. Durch Kommentare kann man Überschriften einfügen, begründen, warum eine Analyse durchgeführt wurde, oder Stichworte zu den erzielten Ergebnissen machen. Drei zentrale Techniken zur Einführung von Kommentaren stehen Ihnen zur Verfügung. Die erste Technik bezieht sich auf Zeilen, die ausschließlich Kommentare enthalten. Diese werden durch ein Sternchen (*) eingeleitet. Derartige Kommentarzeilen finden Sie in den Zeilen 1, 2 und 9 von an2.do. Die zweite Technik bezieht sich auf Kommentare, die innerhalb einer Zeile beginnen. Diese Kommentare werden durch // eingeleitet. Alles, was in einem Do-File hinter // steht, wird von Stata nicht als Kommando interpretiert. Die Zeilen 10, 15 und 24 von an2.do zeigen Beispiele für solche Kommentare. Die dritte Variante verwendet die Zeichen /* und */. Alles zwischen /* und */ wird von Stata als Kommentar betrachtet, einschließlich der Zeilenumbrüche.
2.2.2 Zeilenwechsel Betrachten Sie einmal den Befehl in Zeile 13 in der ersten Version des Do-Files an2.do auf Seite 35. Wie Sie sehen können, ist dieser Befehl relativ lang und Sie können sich sicher Varianten dieses Befehls vorstellen, die noch deutlich länger sind. Für Stata
42 | 2 Arbeiten mit Do-Files selbst sind solche langen Befehle kein Problem. Für Menschen erhöht sich aber die Lesbarkeit, wenn überlange Zeilen vermieden werden. Darüber hinaus besteht immer die Gefahr, dass der Text-Editor, den Sie eventuell zur Erstellung des Do-Files verwenden, überlange Zeilen umbricht und der Do-File in Stata dann nicht mehr lauffähig wäre. Es ist daher gut, eine Obergrenze von 80 oder noch besser 75 Zeichen pro Zeile nicht zu überschreiten. Aus diesen Gründen ist es empfehlenswert, lange Befehle über mehrere Zeilen umzubrechen. Das allerdings ist leichter gesagt als getan. In Stata enden Befehle mit einem Zeilenwechsel. Das bedeutet gleichzeitig, dass man beim Eintippen eines Zeilenwechsels, um z. B. einen Befehl auf der nächsten Zeile fortzusetzen, damit auch den Befehl beendet. Der zweite Teil des Befehls wird von Stata dann bereits als ein neuer Befehl angesehen. Zur Fortsetzung eines Befehls über mehrere Zeilen stehen zwei Techniken zur Verfügung. Die erste Möglichkeit zum Umbruch von Befehlen in die nächste Zeile finden Sie in Zeile 27 bis 29 unseres Beispiel-Do-Files von Seite 40: ///. Sie wissen ja schon, dass zwei Schrägstriche einen Kommentar innerhalb einer Zeile beginnen, d.h., alles was // nachfolgt, gilt als Kommentar – mit Ausnahme des Zeilenwechsels. Anders bei drei Schrägstrichen: Dann gehört auch der Zeilenwechsel zum Kommentar. Stata wird den Zeilenwechsel darum nicht beachten und den Befehl in der nächsten Zeile fortsetzen. Die zweite Technik ist der Befehl #delimit. Mit #delimit wird das Zeichen definiert, mit dem ein Befehl abgeschlossen wird. Dabei stehen Ihnen zwei Zeichen zur Auswahl: der Zeilenwechsel und das Semikolon. Die Voreinstellung ist der Zeilenwechsel. Innerhalb von Do-Files können Sie aber auf das Semikolon umstellen. Dann wird der Befehl nicht mehr mit dem Zeilenwechsel, sondern mit dem Semikolon abgeschlossen. Ein Anwendungsbeispiel sehen Sie hier: #delimit ; label define emp 1 "Full-time" 2 "Part-time" 3 "Retraining" 4 "Irregular" 5 "Unemployed" 6 "Milit. serv." 7 "N. working"; #delimit cr
Durch #delimit ; wird auf das Semikolon als Befehlsende umgestellt. Der Befehl label define erstreckt sich nun über mehrere Zeilen. Durch #delimit cr wird wieder auf den Zeilenwechsel („Carriage Return“) zurückgestellt. Manche Anwender von Stata verwenden in Do-Files grundsätzlich das Semikolon als Befehlsende. Wir tun dies nicht, da wir manchmal nur Ausschnitte aus unserem Do-File laufen lassen wollen. Zudem kann das Semikolon am Befehlsende leicht ver-
2.2 Do-Files sinnvoll gestalten | 43
gessen werden, während ein Zeilenwechsel mit dem Wechsel zur nächsten Kommandozeile automatisch eingegeben wird.
2.2.3 Befehle, die in keinem Do-File fehlen sollten Es gibt Befehle, die in keinem Do-File fehlen sollten. Jeder Do-File sollte mit folgenden Befehlen beginnen:⁵ "
4: 5: 6: 7:
begin an2kk.do version 14 set more off capture log close log using an2kk, replace
end an2kk.do
Zur Erläuterung: Mit version geben Sie an, für welche Version von Stata der DoFile geschrieben wurde. Dadurch stellen Sie sicher, dass Ihr Do-File auch unter zukünftigen Stata-Versionen noch fehlerfrei abläuft. Nach dem Befehl version verhält sich Stata für die Dauer des Do-Files entsprechend der angegebenen Version. Die Angabe der Version sollte daher stets der erste Befehl in einem Do-File sein. Danach kann man die Reihenfolge etwas variieren. Wir haben zunächst die bildschirmweise Ausgabe ausgeschaltet. Durch set more off läuft der Do-File ohne Unterbrechung ab. So nützlich die Aufteilung der Ausgabe in Bildschirmseiten in der interaktiven Arbeit sein mag, so unnütz ist sie beim Ablauf eines Do-Files – zumindest wenn Sie die Ergebnisse des Do-Files in einer Datei speichern. Ein Zurücksetzen dieser Einstellung am Ende des Do-Files ist nicht notwendig. Die Angabe gilt lokal, d.h. nur innerhalb des Do-Files. Nun sollten Sie aber dafür sorgen, dass die Ergebnisse Ihres Do-Files tatsächlich in einer Datei gespeichert werden. Dies erreicht man mit dem Befehl log using, weshalb wir die gespeicherte Datei Log-File nennen. Der Befehl funktioniert im Prinzip wie cmdlog using. Mit ihm wird eine Datei erzeugt, in welche die Ausgabe aller nachfolgenden Befehle geschrieben wird. Zusammen mit dem Befehl muss ein Dateiname angegeben werden, hier an2. Auf die Angabe einer Dateinamenerweiterung wurde verzichtet. In diesem Fall verwendet Stata die Erweiterung .smcl. Nach dem Befehl log using an2 wird also alles, was auf dem Bildschirm erscheint, auch in der Datei an2.smcl gespeichert; und zwar so lange bis log close eingegeben wird. Bevor wir weitermachen hier eine kleine Nebenbemerkung. Stata speichert die Ausgabe in der „Stata Markup and Control Language“ (SMCL). Dieses Format erlaubt es, die gespeicherte Ausgabe genau so am Bildschirm anzuzeigen, wie Sie ursprüng5 Die hier vorgestellten Empfehlungen haben wir dem Stata NetCourse 151 entnommen. Zu den Stata Internet-Kursen vgl. Abschn. 13.1.
44 | 2 Arbeiten mit Do-Files lich im Ergebnisfenster ausgesehen hat. Dies geschieht mit dem Befehl view Dateiname. Der Befehl öffnet ein neues Fenster – den Stata Viewer – und zeigt darin die angegebene Datei. Der folgende Befehl zeigt z.B. die gespeicherte Ausgabe von an2.do: . view an2.smcl
Mit Hilfe von SMCL lassen sich Log-Files auch in HTML oder LATEX übersetzen. Wenn Sie die Ausgabe von Stata allerdings in Textverarbeitungsprogramme wie MSWord übertragen wollen, ist es besser, die Log-Files in reinen Text ohne Steuerzeichen zu übersetzen. Dazu verwendet man translate. Wir zeigen ein Beispiel mit der SMCLDatei, die von unserem mitgelieferten an2kk.do erstellt wurde. Wenn Sie allen unseren Schritten gefolgt sind, haben Sie eine eigene Variante von an2.do erstell, die die Datei an2.smcl erzeugt hat. In diesem Fall müssen Sie die Dateinamen entsprechend anpassen. . translate an2kk.smcl an2kk.log
Sie können Ihre Log-Files auch von Anfang an „nur Text“-Format speichern. Geben Sie dazu den Dateinamen im Befehl log using einfach mit der Erweiterung .log an. Nun zurück zu unserem Beispiel-Do-File. In an2.do haben wir keine Dateinamenerweiterung bei log using eingesetzt – wir speichern also in an2.smcl. Wie Sie sehen, verwenden wir für den Log-File und für den Do-File denselben Namen (abgesehen von der Erweiterung). Das tun wir immer. So weiß man stets, mit welchem Do-File eine Ergebnisdatei erzeugt wurde. Da die Datei an2.smcl möglicherweise bereits existiert – vielleicht erzeugt von einer früheren Fassung von an2.do –, sollte man stets auch die Option replace angeben. Der veraltete Log-File wird dann überschrieben. Bitte beachten Sie, dass log using nicht direkt auf set more off folgt. Stattdessen stellen wir mit log close zunächst sicher, dass derzeit kein Log-File geöffnet ist. Allerdings führt die Angabe von log close zu einer Fehlermeldung – und damit zum Abbruch des Do-Files –, wenn gar kein Log-File geöffnet ist. Um dies zu vermeiden, haben wir den Befehl capture vor log close geschrieben. Der Befehl capture kann vor jeden beliebigen Stata-Befehl gesetzt werden. Er sorgt dafür, dass Fehlermeldungen beim nachfolgenden Befehl ignoriert werden. Dies ist zwar normalerweise unerwünscht, der Befehl log close innerhalb eines Do-Files ist aber eine Ausnahme. Der Befehl führt ja nur dann zu einer Fehlermeldung, wenn kein Log-File geöffnet ist. In diesem Fall ist log close allerdings unnötig, und der Do-File kann einfach fortgesetzt werden. Ohne den Befehl capture log close würde es jedes Mal zu einer Fehlermeldung kommen, wenn Sie den Do-File bei bereits geöffnetem Log-File starten. Das kann z.B. passieren, wenn Sie interaktiv ein Log-File geöffnet haben.
2.2 Do-Files sinnvoll gestalten
| 45
Am Ende jedes Do-Files sollten folgende Befehle stehen: begin an2kk.do
"
43: 44:
log close
end an2kk.do
Der Befehl log close bedarf keiner weiteren Erklärung. Er ist notwendig, um den zuvor geöffneten Log-File wieder zu schließen. Beachten Sie aber, dass log close nur ausgeführt wird, wenn der Do-File fehlerfrei abläuft. Wird die Bearbeitung des DoFiles durch einen Fehler unterbrochen, bleibt der Log-File geöffnet. Interessanter ist der Befehl exit. In Kapitel 1 haben Sie exit als Befehl zum Verlassen von Stata kennen gelernt. In Do-Files hat exit eine andere Bedeutung. Mit exit beendet Stata den Do-File und kehrt zur interaktiven Befehlseingabe zurück. Das heißt jedoch nicht, dass Stata ohne den Befehl exit den Do-File nicht beendet und nicht zur interaktiven Befehlseingabe zurückkehrt. Nach dem letzten Befehl eines Do-Files beendet Stata den Do-File automatisch. Allerdings können sich ohne den Befehl exit Probleme ergeben: Wie oben erwähnt, wird in Stata ein Befehl durch einen Zeilenwechsel abgeschlossen. Ein Befehl, der nicht durch einen Zeilenwechsel abgeschlossen wird, ist kein Befehl. Es ist darum wichtig, dass Sie auch nach dem letzten Befehl in einem Do-File einen Zeilenwechsel eingeben. Das wird oft vergessen, weil beim Schreiben des Do-Files nach dem letzten Befehl kein Zeilenwechsel mehr benötigt wird, um einen weiteren Befehl einzugeben. Wenn log close der letzte Befehl in einem Do-File wäre, hätte das zur Folge, dass Ihr Log-File nicht geschlossen würde. Alles, was Sie danach interaktiv eingeben, würde dann unbemerkt in Ihren Log-File geschrieben – eine höchst unerwünschte Konsequenz. Wenn Sie sich dagegen angewöhnen, exit als letzten Befehl einzugeben, wird log close automatisch mit einem Zeilenwechsel abgeschlossen. Ob exit mit einem Zeilenwechsel abgeschlossen wird oder nicht, ist dagegen gleichgültig. Stata kehrt in beiden Fällen zur Eingabeaufforderung zurück. Die Verwendung von exit hat noch einen weiteren Vorteil: Nach exit ist der DoFile abgeschlossen. Sie können darum nach exit jeden beliebigen Text eingeben. Das können Sie nutzen, um den Inhalt Ihres Do-Files etwas genauer zu beschreiben. Am Ende des Do-Files an2.do auf Seite 40⁶ finden Sie ein Anwendungsbeispiel für diese Eigenschaft von exit.
6 Sie finden diesen auch als an2kk.do in unserem Dateipaket.
46 | 2 Arbeiten mit Do-Files
2.3 Arbeitsorganisation Übersichtliche und leicht lesbare Do-Files sind nur der erste Schritt, um Nachvollziehbarkeit von Analysen zu erreichen. Der zweite Schritt ist eine geeignete Arbeitsorganisation. Durch eine geeignete Arbeitsorganisation sollten Sie sicherstellen, dass 1. wichtige Dateien nicht verlorengehen, 2. die Do-Files zu jedem Ergebnis auffindbar sind, 3. alle Arbeitsschritte nachvollziehbar dokumentiert sind und 4. alle Analysen problemlos reproduziert werden können. Um diese Ziele zu verwirklichen, wollen wir Ihnen einen Vorschlag⁷ zur Arbeitsorganisation machen. Natürlich handelt es sich dabei lediglich um einen Vorschlag. Jede Forschungsarbeit hat ihre Eigengesetzlichkeiten, die entsprechend berücksichtigt werden müssen. Unabhängig davon haben wir mit dem folgenden Verfahren gute Erfahrungen gemacht. Unser Vorschlag basiert zunächst auf der Unterscheidung zweier Typen von DoFiles. Wir unterscheiden 1. „Analyzing-Do-Files“ zum Analysieren von Datensätzen und 2. „Create-Do-Files“ zum Erzeugen bzw. Bearbeiten von Datensätzen. Eine strikte Trennung dieser beiden Typen ist dabei nicht möglich. In einem Do-File zur Analyse von Datensätzen müssen die Datensätze immer auch bearbeitet werden. Aber wir versuchen dies zu reduzieren und derartige Arbeiten in den Create-Do-Files zu erledigen. In Create-Do-Files werden wir allerdings unter keinen Umständen eine Analyse durchführen und wir werden einen veränderten Datensatz niemals mit einem Analyzing-Do-File abspeichern. Die Unterscheidung von Do-Files ist nur sinnvoll, wenn sie bereits aus dem Namen hervorgeht. Darum beginnen die Namen aller unserer Create-Do-Files mit den Buchstaben cr, während die Namen von Analyzing-Do-Files mit den Buchstaben an beginnen. Die Ergebnisse der Analyzing-Do-Files werden stets in einem Log-File aufgezeichnet. Dieser Log-File trägt den Namen des Do-Files, jedoch mit der Erweiterung .smcl. Der Analyzing-Do-File, den wir in diesem Kapitel erstellt haben, heißt z.B. an2.do. Mit ihm wird der Log-File an2.smcl erstellt. Mit den Create-Do-Files erzeugen wir neue Datensätze. Das heißt: Wir lesen einen bestimmten Datensatz ein, bilden neue Variablen, recodieren bereits vorhandene Variablen oder löschen Fälle und Variablen usw. Die so erzeugten neuen Datensätze werden anschließend gespeichert und bilden dann die Grundlage für unsere Analy-
7 Wir haben diesen Vorschlag dem Stata NetCourse 151 entnommen. Zu den Stata Internet-Kursen vgl. Abschn. 13.1. Einen weiter gehenden Vorschlag zur Arbeitsorganisation finden sie bei Long (2009).
2.3 Arbeitsorganisation
| 47
sen. Der Name des neuen Datensatzes entspricht dem Namen des Create-Do-Files ohne die Buchstaben cr. Den Datensatz, den wir für die meisten unserer Beispiele in diesem Buch verwenden, haben wir mit crdata1.do⁸ erzeugt. Er trägt deshalb den Namen data1.dta. Die Trennung von Create- und Analyzing-Do-Files ist nur sinnvoll, wenn ein bestimmter Datensatz Gegenstand mehrerer Analysen ist. Veränderungen an einem Datensatz, die nur für eine spezielle Analyse Sinn machen, gehören eher in den Analyzing-Do-File. Veränderungen, die für mehrere Analysen bedeutsam sind, sind besser in einem Create-Do-File aufgehoben. Sie müssen dann nur einmal durchgeführt werden, was im Einzelfall deutliche Zeitersparnisse mit sich bringt. Die Entscheidung darüber, welche Veränderungen an einem Datensatz in einen Create-DoFile aufgenommen werden, kann ohne eine sorgfältige Planung der Analysen nicht getroffen werden. Neben den Create- und Analyzing-Do-Files gibt es noch einen weiteren wichtigen Do-File-Typ in unserer Arbeitsorganisation: den „Master-Do-File“, kurz „Master-File“. Der Master-File enthält eine Liste von Do-Befehlen. Seine Funktion soll im Folgenden verdeutlicht werden. Wenn wir ein neues Projekt beginnen, legen wir gleichzeitig einen Do-File mit dem Namen master.do an. In diesen Do-File schreiben wir zunächst nur eine Überschrift, den Namen unseres Analysevorhabens. Da es sich bei unserem Master-File um einen Do-File handelt, muss diese Überschrift als Kommentar gekennzeichnet werden (und die Datei mit exit beendet werden). Der erste Eintrag in master.do könnte z.B. so aussehen: 1:
"
17:
begin master_example.do // Exemplary analyses for Kohler/Kreuter, Data analysis using Stata exit
end master_example.do
Danach beginnt die eigentliche Arbeit. Lassen Sie uns das Vorgehen anhand der Analysen für eine fiktive Buchpublikation kurz skizzieren: Für das erste Kapitel beabsichtigten wir, eine kleine Beispielanalyse vorzuführen. Über die inhaltliche Problemstellung mussten wir uns zunächst klar werden, daher haben wir interaktiv einige Versuche gemacht. Diese mündeten schließlich in der Generierung eines Datensatzes, der uns die Bearbeitung verschiedener, sozialwissenschaftlich interessanter Fragestellungen erlaubte. Zur endgültigen Generierung dieses Datensatzes haben wir einen Do-File geschrieben, den wir crdata1.do genannt haben. Natürlich waren während der Entwicklung des Do-Files einige Testläufe nötig, bis wir sicher waren, dass er absolut fehlerfrei funktioniert. Dies war dann der
8 Zur Dokumentation haben wir crdata1.do in unser Dateipaket aufgenommen.
48 | 2 Arbeiten mit Do-Files Zeitpunkt, zu dem wir erneut auf den Master-File zugegriffen haben. Wir öffneten die Datei, ergänzten sie um die Zeile do crdata1 und kommentierten diesen Eintrag: 1: 2:
"
17:
begin master_example.do // Exemplary analyses for Kohler/Kreuter, Data analysis using Stata do crdata1 // creation extract of SOEP'09 exit
end master_example.do
Nach der ersten Erstellung des Datensatzes data1.dta durch crdata1.do haben wir eine Plausibilitätsanalyse vorgenommen, d.h., wir haben intensiv nach Fehlern im Datensatz gesucht. Solche Fehlerkontrollen sind wichtig, um zu vermeiden, dass inhaltliche Ergebnisse auf Grund von Recodierungsfehlern zustande kommen. Um auch später noch feststellen zu können, nach welchen Fehlerquellen wir gesucht haben (und nach welchen nicht), haben wir uns entschlossen, diese Fehlersuche ebenfalls in einem Do-File zu dokumentieren. Diesen nannten wir ancheck1.do. Auch während der Entwicklung dieses Do-Files waren einige Testläufe nötig, bis wir sicher waren, dass er absolut fehlerfrei funktioniert. Jeder dieser Testläufe wurde in einen Log-File, hier mit dem Namen ancheck1.smcl, aufgezeichnet. Diese Datei enthielt somit die jeweils aktuellsten Ergebnisse. Als nach einiger Zeit der Do-File ohne Fehlermeldungen lief, haben wir unsere Datei master.do wie folgt erweitert: 1: 2: 3:
"
17:
begin master_example.do // Exemplary analyses for Kohler/Kreuter, Data analysis using Stata do crdata1 // creation extract of SOEP'09 do ancheck1 // error checks in data1.dta exit
end master_example.do
Die sorgfältige Inspektion der in ancheck1.smcl aufgezeichneten Ergebnisse unserer Fehlerkontrollen ergab einen kleinen Fehler bei der Variablen für den Erwerbsstatus. Diesen haben wir mit einem weiteren Do-File (crdata1V2.do) korrigiert. Natürlich erstellt dieser Create-Do-File nun den Datensatz data1V2.dta. Nach Fertigstellung von crdata1V2.do haben wir nochmals eine Fehlerkontrolle durchgeführt und dabei keine Fehler mehr festgestellt. Auch diese Fehlerkontrolle erfolgte mit einem Do-File (ancheck1V2.do) und natürlich werden beide Do-Files kommentiert in den Master-File aufgenommen: 1: 2: 3: 4: 5:
"
17:
// do do do do
begin master_example.do Exemplary analyses for Kohler/Kreuter, Data analysis using Stata crdata1 // creation extract of SOEP'09 ancheck1 // error checks in data1.dta crdata1V2 // correction of errors in data1.dta ancheck1V2 // error checks in data1V2.dta
exit
end master_example.do
2.3 Arbeitsorganisation
| 49
Danach begannen wir mit den eigentlichen Analysen. In der ersten Analyse ging es um die Einkommensungleichheit von Frauen und Männern. Diese Analyse findet sich im Do-File an1.do. Auch diesen Do-File haben wir mehrmals getestet und schließlich die Zeile do an1 in unsere Datei master.do aufgenommen. Diese Beispiele lassen sich beliebig fortsetzen. Immer wenn eine Analyse als abgeschlossen gelten kann, wird der entsprechende Do-File an das Ende von master.do geschrieben. Im Laufe eines Projektes entsteht hierdurch ein exaktes Protokoll aller Analysen. Anhand der Kommentare in master.do lässt sich der grobe Inhalt der jeweiligen Analyse schnell ermitteln. Es ist dadurch einfach, die Analyse von Beginn an nachzuvollziehen. Wenn es sein müsste, könnten alle Analysen durch Eingabe von do master auch von Beginn an wiederholt werden. Dies wird jedoch normalerweise nicht nötig sein. Zwei wichtige Bemerkungen wären noch zu machen. Erstens: Sobald ein Do-File Teil von master.do geworden ist, sollten keine Änderungen mehr an ihm vorgenommen werden. Sollten wir einen Fehler in einem älteren Do-File entdecken, werden wir die Datei verbessern und unter einem neuen Namen an das Ende von master.do schreiben. Das gilt insbesondere auch dann, wenn wir bereits zahlreiche Analysen mit einem Datensatz vorgenommen haben, der durch einen fehlerhaften Create-Do-File erstellt wurde. Eine vergleichbare Situation haben Sie bereits kennengelernt. Oben hat sich im Do-File ancheck1.do gezeigt, dass data1.dta einen Fehler enthält. Anstatt den Fehler in crdata1.do zu korrigieren und den Do-File nochmals auszuführen, haben wir diesen Fehler mit einem weiteren Do-File (crdata1V2.do) korrigiert. Entsprechend würden wir verfahren, wenn zwischen der Erstellung des Datensatzes und der Entdeckung des Fehlers bereits mehrere verschiedene Analysen vorgenommen worden wären. Nehmen Sie z.B. an, Sie hätten folgende Sequenz in Ihrem Master-File: 1: 2: 3: 4: 5:
"
7: 8: 9:
"
17:
// do do do do
begin master_example.do Exemplary analyses for Kohler/Kreuter, Data analysis using Stata crdata1 // creation extract of SOEP'09 ancheck1 // error checks in data1.dta crdata1V2 // correction of errors in data1.dta ancheck1V2 // error checks in data1V2.dta
do an1 do anrent do anpi exit
// income inequality men/women // description of rents // Partisanship by ownership end master_example.do
Bei Ihrer aktuellen Analyse stellen Sie fest, dass der Datensatz data1V2.dta einen bisher nicht entdeckten Fehler enthält, der auf eine falsche Recodierung in crdata1V2.do zurückzuführen ist. Anstatt den Fehler in crdata1V2.do zu korrigieren, sollten Sie den Fehler durch einen Do-File (z.B. anerror.do) dokumentieren, in einem weiteren Do-File (z.B. crdata1V3.do) korrigieren und danach die Analysen aus an1.do bis anpi.do wiederholen. Da Sie dabei auf den neuen Datensatz data1V3.dta
50 | 2 Arbeiten mit Do-Files zurückgreifen, empfiehlt es sich, die entsprechenden Änderungen an an1V2.do bis anpiV2.do unter einem neuen Dateinamen zu speichern und entsprechend im MasterFile zu dokumentieren. Dieser könnte dann z.B. so aussehen: "
7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
begin master_example.do do an1 do anrent do anpi
// income inequality men/women // description of rents // Partisanship by ownership
// Error in data1V2, -> correction and repetition in an1 - anpi do anerror // discovery of error in data1V2.do do crdata1V3 // correction of errors in data1V2.dta do an1V2 // corrected results of an1.do do anrentV2 // corrected results of anmiete.do do anpiV2 // corrected results of anpi.do exit end master_example.do
Dieses Vorgehen hat den Vorteil, dass auch der Fehler selbst jederzeit reproduzierbar bleibt. Das mag möglicherweise übertrieben erscheinen. Bedenken Sie aber, dass zwischen dem Fehler und seiner Entdeckung eine lange Zeit liegen kann. Es ist durchaus möglich, dass sich die falschen Zahlen bereits in Ihre Texte (hoffentlich nicht: Veröffentlichungen) eingeschlichen haben. Durch das hier vorgestellte Verfahren fällt es auch noch nach langer Zeit relativ leicht, die Ursache für falsche Zahlen zu ermitteln. Es gibt wenige Dinge, die so frustrierend sind, wie den Ursachen einer Zahl hinterherzuspüren, die mit den Ergebnissen einer aktuellen Analyse nicht mehr übereinstimmt. Unsere zweite Bemerkung betrifft den Speicherplatz auf Ihrer Festplatte. Löschen Sie jeden Datensatz, den Sie mit einem Create-Do-File erzeugt haben, sobald Sie ihn für Ihre aktuellen Analysen nicht mehr benötigen. Ein Beispiel sind die Datensätze data1.dta und data1V2.dta. Beide sind fehlerhaft und sie werden nach ihrer Korrektur nicht mehr benötigt. Darum sollten Sie diese Datensätze mit dem Stata-Befehl erase löschen, und dies an der entsprechenden Stelle im Master-File dokumentieren: "
5: 6: 7:
begin master_example.do do ancheck1V2 erase data1.dta do an1
// error checks in data1V2.dta // income inequality men/women end master_example.do
Wenn Sie einen älteren Analyzing-Do-File wiederholen möchten, führt diese Praxis vielleicht zur Fehlermeldung „file data1V2.dta not found“. Doch Sie können dann den Datensatz rasch mit dem entsprechenden Create-Do-File reproduzieren. Der Name des Create-Do-Files geht ja aus der gesuchten Datei hervor. Nach derselben Logik können Sie auch Log-Files bedenkenlos löschen. Denn auch diese sind jederzeit exakt reproduzierbar. Schließlich brauchen Sie auch nur von Ihren Do-Files eine Sicherungskopie zu erstellen. Alle Datensätze und Log-Files, die Sie je-
2.4 Übungen
| 51
mals während Ihres Projektes erstellt haben, können Sie ja durch den Befehl do master jederzeit völlig identisch reproduzieren.
2.4 Übungen 1. 2.
Öffnen Sie den Do-File-Editor. Schreiben Sie einen Do-File, der folgende Aufgaben erledigt: (a) einen Log-File öffnet, (b) einen Datensatz lädt (data1.dta), (c) eine neue Variable mit dem Namen „satisfaction“ erstellt, die der Summe der vorhandenen Variablen lsat, hsat und dsat entspricht, (d) alle Variablen löscht („dropt“) außer satisfaction und income, (e) einfache statistische Kennziffern über satisfaction und income ausgibt (summarize), (f) den neuen Datensatz mit dem Namen 2erase.dta abspeichert und (g) den Log-File wieder schließt. 3. Lassen Sie den Do-File wie folgt laufen: (a) Klicken Sie zweimal hintereinander auf den Button im Do-File-Editor. (b) Speichern Sie den Do-File mit dem Namen cr2erase.do und starten Sie ihn mit der Kommandozeile. (c) Beenden Sie Stata, starten Sie es neu und starten Sie dann den Do-File mit der Kommandozeile ohne den Do-File-Editor zu öffnen. (d) Beenden Sie Stata und kopieren Sie den Do-File in ein anderes Verzeichnis. Starten Sie Stata erneut und starten Sie dann den Do-File mit der Kommandozeile. 4. Überlegen Sie sich Strategien, wie Sie Do-File schreiben können, die unter allen obigen Bedingungen funktionieren. 5. Öffnen und Drucken Sie den Log-File, der von cr2erase.do erstellt wurde, mit Hilfe des Stata-Viewer. 6. Schreiben Sie einen Do-File, der cr2erase.do startet und lassen Sie ihn laufen.
3 Die Stata-Grammatik 3.1 Elemente der Stata-Kommandos Wie Sie vielleicht bereits in Kapitel 1 bemerkt haben, sind Stata-Kommandos aus immer den gleichen, in spezifischer Reihenfolge angeordneten Teilen aufgebaut. In diesem Abschnitt wollen wir Ihnen einige einfache Regeln zu diesen Kommandoteilen vorstellen. Die Regeln sind so allgemein, dass sie auf alle Stata-Kommandos angewandt werden können, und ihre Kenntnis erleichtert es sehr, mit neuen StataBefehlen rasch fehlerfrei zu arbeiten. Bevor wir anfangen, beachten Sie bitte, dass die einzelnen Befehlsbausteine vorgeschrieben, erlaubt oder verboten sein können. Natürlich können Sie ein spezifisches Element nur dann verwenden, wenn es zumindest erlaubt ist. Die Information hierüber erhalten Sie im Syntaxdiagramm, das zu Beginn jedes Textes der Online-Hilfe steht. In der Online-Hilfe zu summarize sieht das Syntaxdiagramm z.B. so aus: summarize [ varlist ][ weight ][ if ][ in ][, options ]
Dieses Syntaxdiagramm enthält bereits die meisten Elemente von Stata-Befehlen. Zum Beispiel ist varlist eine Abkürzung für „Variablenliste“, ein Element, das in nahezu jedem Stata-Befehl verwendet wird. Der Begriff if steht für eine „if-Bedingung“. Generell gilt: Elemente in eckigen Klammern sind erlaubt, Elemente ohne eckige Klammern sind vorgeschrieben und Elemente, die gar nicht im Syntaxdiagramm genannt werden, sind verboten. Im Folgenden möchten wir die Befehlselemente einzeln beschreiben. Beginnen wollen wir mit dem eigentlichen Befehl und der Variablenliste. Danach folgen Optionen und Bedingungen. Bevor wir Ihnen Gewichtungsfunktionen vorstellen, werden wir verschiedene Möglichkeiten zur Wiederholung von Kommandos erläutern, da diese in der Datenanalysepraxis häufig gebraucht werden. Um unseren Beispielen zu folgen, laden Sie bitte data1.dta:¹ . use data1, clear
3.1.1 Der Befehl Der Befehl ist das Kernstück jedes Stata-Kommandos. Mit ihm wird festgelegt, welche Prozedur Sie anfordern. Grundsätzlich kann man zwischen offiziellen und benutzerdefinierten Stata-Befehlen unterscheiden. Offizielle Befehle werden von der Firma StataCorp geschrieben. Manchmal stellt man jedoch fest, dass es für eine bestimmte
1 Achten Sie darauf, dass Ihr Arbeitsverzeichnis c:\data\kk ist. Näheres hierzu auf S. 12.
3.1 Elemente der Stata-Kommandos
| 53
Tab. 3.1. Abkürzungen häufig verwendeter Kommandos Befehl
Empfehlung
Nutzung
describe generate graph help list regress summarize save sort tabulate use
d gen graph h l reg sum save sort tab use
Beschreibung von Datensätzen Bildung neuer Variablen Erstellen von Grafiken Aufruf der Online-Hilfe Auflistung der Daten Lineare Regression Mittelwerte etc. Speichern von Daten Daten sortieren Häufigkeitstabelle Laden von Datensätzen
Aufgabe keine offiziellen Befehle in Stata gibt. In diesem Fall wird man aber häufig einen Befehl finden, der von einem Stata-Anwender geschrieben wurde. Einzelheiten hierzu finden Sie in Kapitel 13. Das Programmieren eigener Prozeduren wird in Kapitel 12 besprochen. Beachten Sie, dass man einige Befehle abkürzen kann. Die maximal mögliche Abkürzung eines Befehls wird im Syntaxdiagramm der Online-Hilfe gezeigt. Dies geschieht durch Unterstreichung desjenigen Teils eines Befehls, der mindestens eingegeben werden muss. Bedenken Sie, dass zwischen der maximal möglichen Abkürzung und dem Ausschreiben des gesamten Befehls alle Variationen möglich sind. Aus dem Syntaxdiagramm auf Seite 52 ist z.B. ersichtlich, dass alle folgenden Abkürzungen von summarize möglich sind: . . . . . . .
su sum summ summa summar summari summariz
Man ist allerdings nicht immer gut beraten, die maximal mögliche Abkürzung auch auszuschöpfen. Besonders nicht in Do-Files. Die Lesbarkeit eines Do-Files wird durch starkes Abkürzen der Befehle beeinträchtigt. Tabelle 3.1 zeigt einige häufig verwendete Kommandos und ihre Abkürzungen. Die maximal mögliche Abkürzung ist durch Unterstreichung gekennzeichnet. Zusätzlich zeigen wir eine empfohlene Abkürzung. Die empfohlene Abkürzung ist nicht immer die kürzeste. Vielmehr spiegelt sie eine Art stille Übereinkunft der Teilnehmer der Statalist (vgl. S. 492) wieder bzw. unseren persönlichen Geschmack. In diesem Buch werden wir die Abkürzungen manchmal verwenden und manchmal nicht – genauso wie wir es auch bei unserer täglichen Arbeit halten. Auf diese
54 | 3 Die Stata-Grammatik Weise gewöhnen Sie sich am schnellsten an die unterschiedlichen Möglichkeiten, z.B. summarize zu sagen.
3.1.2 Die Variablenliste Bei fast allen Befehlen kann eine Variablenliste eingegeben werden. In der OnlineHilfe wird dies durch den Begriff varlist kenntlich gemacht. Die Variablenliste ist eine von Leerzeichen unterbrochene Liste von Variablennamen.
3.1.2.1 Variablenliste optional oder vorgeschrieben Bei einigen Befehlen kann eine Variablenliste angegeben werden, ohne dass dies zwingend vorgeschrieben ist. Bei anderen Befehlen muss eine Variablenliste angegeben werden. Welche der beiden Möglichkeiten zutrifft, erfahren Sie im Syntaxdiagramm. Wenn der Begriff varlist in eckigen Klammern steht, ist die Variablenliste erlaubt, ansonsten ist sie vorgeschrieben. Viele Befehle, bei denen die Angabe einer Variablenliste nicht zwingend vorgeschrieben ist, verwenden im Falle des Weglassens der Variablenliste alle Variablen. So führt der Befehl summarize ohne Angabe einer Variablenliste zur Berechnung der Mittelwerte und Standardabweichungen aller Variablen des Datensatzes. Bei anderen Befehlen führt das Weglassen der Variablenliste zur Wiederholung des Befehls mit der zuletzt beim selben Befehl eingegebenen Variablenliste. Dies gilt insbesondere für alle Befehle zur Berechnung von statistischen Modellen (z.B. regress). Bei einigen Befehlen muss eine Variablenliste spezifiziert werden. Dies ist der Fall, wenn eine Wiederholung oder Anwendung auf alle Variablen nicht möglich, nicht sinnvoll oder im Normalfall unerwünscht ist. Sollte dennoch einmal die Angabe aller Variablen erwünscht sein, kann _all verwendet werden. Zum Beispiel werden mit dem Befehl drop die Variablen der angegebenen Variablenliste aus dem Datensatz gelöscht. Mit . drop ymove ybuild
werden also die Variablen ymove und ybuild gelöscht. Bei drop wäre die Anwendung auf alle Variablen gleichbedeutend mit dem Löschen des gesamten Datensatzes. Sollten Sie dies wirklich wollen, verwenden Sie drop _all.²
2 Wenn Sie diesen Befehl eingegeben haben, sollten Sie den Datensatz wieder laden, bevor Sie weiterlesen.
3.1 Elemente der Stata-Kommandos
| 55
3.1.2.2 Abkürzungen der Variablenliste Variablennamen können abgekürzt werden. Es genügt, nur so viel Buchstaben des Namens einzugeben, dass die Variable eindeutig identifizierbar wird. Die Variable condit im Datensatz data1.dta ist z.B. durch den Buchstaben „c“ eindeutig identifiziert; keine andere Variable im Datensatz beginnt mit diesem Buchstaben. Die Variable ybirth ist dagegen allein durch den Anfangsbuchstaben nicht von den Variablen ymove, ybuild und yedu unterscheidbar. Es muss mindestens ybi eingegeben werden. Eine weitere Möglichkeit zur Abkürzung von Variablennamen ist die Tilde (̃). Die Tilde ersetzt ein oder mehrere Zeichen in einem Variablennamen. Mit . summarize y~h
erhalten Sie z.B. eine Beschreibung der Verteilung von ybirth, da nur eine Variable mit „y“ beginnt und mit „h“ endet. Beachten Sie, dass beide hier vorgestellten Abkürzungsmöglichkeiten eine Variable eindeutig identifizieren müssen. Wenn Ihre Abkürzung zu mehr als einer Variable passt, erhalten Sie eine Fehlermeldung. Wenn Sie mehr als eine Variable ansprechen wollen, müssen Sie dies explizit tun. Dies führt uns zu einer weiteren Möglichkeit, Schreibarbeit bei der Eingabe von Variablenlisten zu sparen: die Spezifikation von mehreren Variablen gleichzeitig. Dafür gibt es drei Möglichkeiten: 1. Ein Fragezeichen kann verwendet werden, um alle Variablen anzusprechen, die sich in nur einem einzigen Zeichen unterscheiden. Zum Beispiel beschreibt . summarize pi?
2.
alle Variablen, deren Namen mit „pi“ beginnen und danach ein beliebiges weiteres Zeichen enthalten. Das Fragezeichen kann an jeder Stelle eines Variablennamens eingesetzt werden – am Anfang, in der Mitte oder am Ende. Mit der „Wildcard“ * können Variablenlisten aus Variablen mit gleichen Namensbestandteilen spezifiziert werden. Zum Beispiel beschreibt . summarize wor* e*
3.
alle Variablen, die mit „wor“ oder „e“ beginnen, unabhängig davon, in wie vielen Zeichen sie sich sonst unterscheiden. Wie das Fragezeichen kann auch die Wildcard an beliebigen Stellen von Variablennamen verwendet werden. Variablen, die im Datensatz hintereinander stehen, können durch einen Bindestrich gemeinsam angesprochen werden. Die Reihenfolge der Variablen im Datensatz entspricht der Auflistung im Anschluss an den describe-Befehl. Aus . describe
56 | 3 Die Stata-Grammatik können Sie sehen, dass einige Variablen zur Wohnungsausstattung im Datensatz hintereinander stehen. Die erste Variable ist condit und die letzte eqpnrj. Zur Beschreibung dieser Variablen genügt folgende Eingabe: . summarize condit-eqpnrj
Abkürzungen von Variablennamen und Variablenbereichen können leicht überstrapaziert werden. Statt des Befehls . summarize ybirth voc emp egp
kann man auch den Befehl . su y~h v-eg
eingeben. Wenn es jedoch darum geht, Ihre Arbeit nachvollziehbar aufzubewahren, ist die erste Alternative sicher vorzuziehen. Wir empfehlen Ihnen deshalb, Variablennamen in Do-Files nicht abzukürzen.
3.1.2.3 Spezielle Variablenlisten Statt der Bezeichnung varlist finden sich manchmal auch Bezeichnungen wie varname oder depvar in den Syntaxangaben der Online-Hilfe. Dabei handelt es sich um Variablenlisten, die nicht länger als eine Variable sein dürfen. Diese speziellen Variablenlisten können manchmal mit der allgemeinen Variablenliste kombiniert werden. Diese Konstruktion wird immer dann verwendet, wenn die Reihenfolge der Variablen in der Variablenliste von Bedeutung ist. Zum Beispiel muss beim Kommando für die lineare Regression die abhängige (endogene) Variable spezifiziert werden, indem diese Variable an den Beginn einer Variablenliste gestellt wird. Die Reihenfolge der Variablen ist hier also von Bedeutung, weshalb in der Syntaxangabe zwischen der abhängigen und den unabhängigen Variablen unterschieden wird: regress depvar [indepvars ]...
Der Begriff depvar steht hier für die abhängige Variable, während sich indepvars auf die unabhängigen Variablen bezieht. Wie bei jeder Auflistung von Variablen ist die Reihenfolge bei den unabhängigen Variablen bedeutungslos. Nebenbei bemerkt: Bei allen Befehlen für statistische Modelle wird die abhängige Variable spezifiziert, indem sie vor eine Liste unabhängiger Variablen gesetzt wird.
3.1 Elemente der Stata-Kommandos
| 57
3.1.3 Optionen Optionen werden verwendet, um das voreingestellte Verhalten eines Befehls zu ändern. Sie können bei nahezu allen Befehlen eingegeben werden. Dass Optionen erlaubt sind, erkennen Sie am Wort options hinter einem Komma. Unter dem Syntaxdiagramm findet sich dann eine Liste von Optionen, die für das jeweilige Kommando erlaubt sind. Das Syntaxdiagramm von summarize erlaubt zum Beispiel die Verwendung von detail, meanonly, format und separator(): summarize … [, options ] options
Main detail meanonly format separator(#)
description display additional statistics suppress the display; calculate only the mean; programmer’s option use variable’s display format draw separator line after every #variables; default is separator(5)
Manchmal sind Optionen nicht optional. In diesem Fall wird der Teil hinter dem Komma nicht in eckige Klammern gesetzt. Optionen werden durch ein Komma vom eigentlichen Kommando abgetrennt. Danach folgt eine Liste der Optionen, mit Leerzeichen zwischen den unterschiedlichen Optionen. Bei mehreren Optionen steht nur ein Komma. Das Komma leitet also nicht eine Option, sondern eine Liste von Optionen ein. Die Reihenfolge der Liste der Optionen eines Befehls ist beliebig. Hier ist ein Beispiel mit den Optionen missing und column des tabulate twoway-Befehls. Im Syntaxdiagramm, das Sie nach der Eingabe von help tabulate twoway erhalten, sind neben vielen anderen auch die Optionen missing und column aufgelistet. tabulate … [, options ] options
Main ... col ... missing
description
report relative frequency within its col of each cell treat missing values like other values
Die Option col bewirkt, dass zusätzlich zu den absoluten Häufigkeiten auch die Spaltenprozente (bedingte relative Häufigkeiten) ausgegeben werden. Wird zusätzlich die Option missing angehängt, so erfolgt die Berechnung einschließlich der Personen, die die Frage nicht beantwortet haben. Im nachfolgenden Beispiel bewirkt missing die Ausweisung auch derjenigen Befragten, die entweder keine Angaben zu die-
58 | 3 Die Stata-Grammatik ser Frage machen wollten oder bei denen wir nicht wissen, warum die Informationen zu dieser Frage fehlen. Zur Interpretation der Tabelle vgl. Abschnitt 7.2.1.1. . tabulate wor06 sex, col missing Key frequency column percentage Worried about consequences from climate change
Gender Male Female
Total
Very concerned
664 25.69
828 29.30
1,492 27.57
Somewhat concerned
1,385 53.58
1,597 56.51
2,982 55.11
Not concerned at all
493 19.07
352 12.46
845 15.62
.
32 1.24
34 1.20
66 1.22
Refusal
11 0.43
15 0.53
26 0.48
Total
2,585 100.00
2,826 100.00
5,411 100.00
Die meisten Optionen lassen sich abkürzen und die maximal mögliche Abkürzung ist in der Online-Hilfe durch Unterstreichung gekennzeichnet. Einige Kommandos erlauben sehr viele Optionen, von denen wir bestenfalls einen kleinen Ausschnitt vorstellen. Sie sollten darum stets auch die befehlsspezifische Online-Hilfe lesen. 3.1.4 Die in-Bedingung Die in-Bedingung, wie auch die im nächsten Abschnitt beschriebene if-Bedingung, dient dazu die Durchführung eines Befehls auf bestimmte Beobachtungen zu begrenzen. Die in-Bedingung ist bei allen Befehlen erlaubt, in deren Syntaxdiagramm [ in ] genannt wird. Die in-Bedingung besteht aus zwei Teilen, dem Wort in und der Angabe eines Bereichs von Beobachtungen. Der Bereich von Beobachtungen wird durch die Position einer Beobachtung im Datensatz ausgedrückt. Wenn Sie sich den Datensatz als eine große rechteckige Tabelle mit Zeilen und Spalten vorstellen, so bezeichnet die Position einer Beobachtung im Datensatz die Zeile, in der diese Beobachtung steht.
3.1 Elemente der Stata-Kommandos
| 59
Der Bereich kann eine einzelne Beobachtung sein oder ein Bereich von einer bestimmten Beobachtung (Zeile) zu einer weiter untenstehenden Beobachtung. Zwischen der ersten und zweiten Beobachtung steht ein Schrägstrich. Die Personennummer, das Geschlecht und das Geburtsjahr der zehnten Beobachtung unseres Datensatzes erhält man z.B., indem man die Ausgabe von list auf diese Beobachtung beschränkt: . list persnr sex ybirth in 10
10.
persnr
sex
ybirth
29101
Female
1954
Und Sie erhalten dieselben Informationen für die zehnte bis vierzehnte Beobachtung durch . list persnr sex ybirth in 10/14
10. 11. 12. 13. 14.
persnr
sex
ybirth
29101 29102 29103 34901 34902
Female Male Male Male Male
1954 1956 1985 1951 1955
Andere Möglichkeiten, den Bereich anzugeben, als die in diesen Beispielen gezeigten, bestehen nicht. Insbesondere können keine Falllisten oder Kombinationen aus Falllisten und Bereichen eingegeben werden. Befehle wie list sex in 1 15 26 oder list sex in 1/10 16 sind nicht gültig. Man kann die Angabe des Fallbereichs aber durch ein vorgestelltes Minuszeichen variieren. . list persnr sex ybirth in -5/-1
5407. 5408. 5409. 5410. 5411.
persnr
sex
ybirth
11104701 11109701 11116001 11119401 11126401
Female Male Female Male Female
1963 1934 1937 1984 1938
Mit -1 ist der erste Fall von unten gemeint. Entsprechend ist -5 der fünfte Fall von unten. Der obige Befehl zeigt demnach die fünf letzten Fälle des Datensatzes. Wenn zuvor z.B. nach dem Geburtsjahr sortiert wurde, wären dies die fünf jüngsten Personen im Datensatz. Bei Verwendung des Minuszeichens sollten Sie allerdings beachten, den Fallbereich weiter in der richtigen Reihenfolge anzugeben. Der fünftletzte Fall steht im Da-
60 | 3 Die Stata-Grammatik tensatz vor dem letzten und muss darum zuerst genannt werden. Der Befehl list persnr sex ybirth in -1/-5 ist ungültig. Solange Sie dies berücksichtigen, können Sie auch Kombinationen der Zählrichtung verwenden. Der Befehl . list persnr sex ybirth in 5406/-5
ist zulässig, weil in diesem Datensatz der fünftletzte Fall der 5.407. Fall ist und deshalb nach dem 5.406. Fall kommt. Anstatt 1 und -1 können auch die Buchstaben f und l als Abkürzung für den ersten und letzten Fall im Datensatz verwendet werden. 3.1.5 Die if-Bedingung Die if-Bedingung ist bei allen Befehlen zulässig, in deren Syntaxdiagramm [ if ] genannt wird. Ähnlich wie die in-Bedingung wird auch die if-Bedingung verwendet, um die Ausführung eines Befehls auf bestimmte Beobachtungen zu beschränken. Wie die in-Bedingung besteht auch die if-Bedingung aus zwei Bestandteilen, dem Wort if und einem „Ausdruck“. Zum vollen Verständnis von if-Bedingungen müssen Sie sich darum mit Ausdrücken vertraut machen. Ausdrücke sind ein weiteres Element von Stata-Kommandos, das wir ausführlich in Abschnitt 3.1.6 erläutern. Die if-Bedingung wird verwendet, um ein Kommando nur mit denjenigen Beobachtungen auszuführen, für die der Ausdruck wahr bzw. genauer gesagt: nicht Null ist. Ein einfaches Beispiel für eine if-Bedingung haben Sie bereits in Kapitel 1 kennengelernt: . summarize income if sex == 1 Variable
Obs
Mean
income
2,320
28190.75
Std. Dev. 47868.24
Min
Max
0
897756
In diesem Beispiel lautet die if-Bedingung if sex==1. Beachten Sie das doppelte Gleichheitszeichen! Mit der if-Bedingung weisen wir Stata an, den Ausdruck if sex==1 für jede Beobachtung im Datensatz zu berechnen und dann nur diejenigen Beobachtungen zu verwenden, für die der Ausdruck nicht Null ist. Das klingt kompliziert. Deshalb wollen wir es etwas ausführlicher erklären. Betrachten Sie dazu einmal mehr das Einkommen und das Geschlecht der Beobachtungen 10–14 in unserem Datensatz: . list income sex in 10/14, nolabel
10. 11. 12. 13. 14.
income
sex
31902 50391 4807 34805 46664
2 1 1 1 1
3.1 Elemente der Stata-Kommandos |
61
In der ersten Zeile dieser Ausgabe sehen Sie eine Beobachtung mit einem Einkommen von 31.902 € und dem Geschlecht 2. Nun fragen Sie sich: Was ergibt sex==1 für diese Beobachtung? Als Mensch sagen Sie sich vielleicht: „Für diese Beobachtung ist der Ausdruck falsch“. Stata denkt ähnlich und sagt: „Für diese Beobachtung ergibt der Ausdruck 0“. Bei der zweiten Beobachtung sagen Sie, „für diese Beobachtung ist der Ausdruck wahr“, während Stata sagt: „für diese Beobachtung ist der Ausdruck 1“. Wenn Sie eine if-Bedingung an ein Kommando anhängen, berechnet Stata den Wert des Ausdrucks für jede Beobachtung und führt den Befehl dann mit denjenigen Beobachtungen aus, bei denen der Ausdruck nicht Null ist. Da if-Bedingungen aus dem Wort „if“ und einem Ausdruck gebildet werden, gelten alle allgemeinen Regeln für Ausdrücke (vergleiche 3.1.6). Davon jedoch einmal abgesehen, werden Sie in if-Bedingungen meistens Ausdrücke sehen, die wahr (1) oder falsch (0) sein können. Solche Ausdrücke werden oft relationale Operatoren enthalten. Hier sind drei Beispiele: Der Befehl . summarize income if ybirth < 1979
zeigt das durchschnittliche Einkommen aller Befragten, die vor 1979 geboren wurden. Denn der Wert der Variable ybirth ist bei solchen Beobachtungen kleiner als 1979. Das Kommando lässt sich durch Verwendung eines anderen Operators abwandeln: . summarize income if ybirth und ≥ sind darum auch für Beobachtungen mit dem fehlenden Wert wahr. Mit dem Kommando . tabulate edu, missing nolabel Education
Freq.
Percent
Cum.
1 2 3 4 5 .a
1,836 1,571 266 977 533 228
33.93 29.03 4.92 18.06 9.85 4.21
33.93 62.96 67.88 85.94 95.79 100.00
Total
5,411
100.00
können wir sehen, dass die Schulbildung (edu) 977 + 533 = 1.510 Beobachtungen mit dem Wert größer oder gleich 4 hat (was immer diese 4 auch bedeuten mag). Weitere 228 Beobachtungen der Bildung sind mit einem .a gekennzeichnet, eine von vielen Möglichkeiten, um anzuzeigen, dass keinerlei Information über die Bildung vorliegt – und wir können den Punkt hier nur sehen, weil wir die Option missing des tabulate-Befehls verwendet haben. Lassen Sie uns nun das arithmetische Mittel des Geburtsjahrs für alle Beobachtungen berechnen, die ein Bildungsniveau von 4 oder höher haben: . summarize ybirth if edu >= 4 Variable
Obs
Mean
ybirth
1,738
1965.155
Std. Dev.
Min
Max
18.41194
1912
1992
Das Ergebnis basiert auf 1.738 statt der erwarteten 1.510 Beobachtungen. Dahinter stecken die 228 Beobachtungen mit fehlenden Werten. Für Stata sind diese Beobachtungen +∞. Und da +∞ höher ist als 4, ist der verwendete Ausdruck auch für diese Beobachtungen wahr. Um auch die Beobachtungen mit unbekannter Bildung auszuschließen, müssen wir dies ausdrücklich tun. Wir können dies durch Verwendung etwas komplizierterer Ausdrücke erreichen. Wie, zeigen wir Ihnen auf Seite 64 im folgenden Abschnitt, sowie auf Seite 67 in Abschnitt 3.1.6.2. 3.1.6 Ausdrücke Ausdrücke sind bei allen Befehlen zulässig, in deren Syntaxdiagramm exp genannt wird. Dabei kann exp an unterschiedlichsten Stellen eines Stata-Befehls verwendet werden. Eine verkürzte Version des Syntaxdiagramms von generate sieht z.B. so aus: generate newvarname=exp[ if ]
3.1 Elemente der Stata-Kommandos
| 63
Hier ist ein Ausdruck hinter dem Gleichheitszeichen vorgeschrieben. Ausdrücke finden sich auch an anderen Stellen von Stata-Befehlen. Stellen Sie sich Ausdrücke als eine Rechenaufgabe wie z.B. 2 + 3 vor. Solche Rechenaufgaben sind mit Stata einfach zu lösen. Denn Stata wird mit einem eingebauten Taschenrechner ausgeliefert, dem display-Befehl: . display 2+3 5
Gut, das wäre gelöst! Wie jeder andere Taschenrechner auch berechnet display Rechenaufgaben und zeigt die Lösung an. Und ebenfalls wie jeder Taschenrechner kann display auch kompliziertere Rechenaufgaben lösen. Solche Rechenaufgaben können wir stellen, indem wir „Operatoren“ und „Funktionen“ zu komplizierten Ausdrücken verknüpfen.
3.1.6.1 Operatoren Einen Überblick über Operatoren, die Ihnen für Ihre Ausdrücke zur Verfügung stehen, erhalten Sie durch . help operators "
Dieser Liste lässt sich entnehmen, dass man mit Stata Ausdrücke wie die Folgenden berechnen kann . display 2-3 -1 . display 2*3 6 . display 2/3 .66666667 . display 2^3 8
Und natürlich können wir verschiedene Ausdrücke miteinander verbinden. Mit geeigneter Klammersetzung ändert man die Reihenfolge der Berechnungen: . display 2*3 + 2/3 - 2^3 -1.3333333 . display 2*(3 + 2)/(3 - 2)^3 10
Bei der Berechnung von Ausdrücken mit logischen und relationalen Operatoren weißt Stata wahren Ausdrücke den Wert 1, falschen Ausdrücke den Wert 0 zu. Das doppelte
64 | 3 Die Stata-Grammatik Gleichheitszeichen dient zur Überprüfung von Gleichheit.³ Mit dem Ausdruck 2==3 wird darum geprüft, ob die Ziffern 2 und 3 gleich sind:: . display 2==3 0 . display 2==2 1
Stata ermittelt als Ergebnis des Ausdrucks 2==3 den Wert 0, weil der Ausdruck falsch ist: 2 ist ungleich 3. Für 2==2 wird dagegen der Wert 1 ermittelt. Die logischen Operatoren werden meist dazu verwendet, verschiedene Ausdrücke miteinander zu verknüpfen. Nehmen Sie z.B. die beiden Ausdrücke 2==2 und 2==3 und stellen Sie sich vor, Sie wollten herausfinden, ob beide Ausdrücke wahr sind. In diesem Fall müsste Stata berechnen, ob Ausdruck 1 und Ausdruck 2 wahr sind: . display 2==3 & 2==2 0
Um herauszufinden, ob zumindest einer der beiden Ausdrücke wahr ist, müsste Stata berechnen, ob Ausdruck 1 und/oder Ausdruck 2 wahr sind: . display 2==3 | 2==2 1
Sie können sehr viele Operatoren in einem Ausdruck verwenden. Bei komplizierten Ausdrücken sollten Sie aber auf alle Fälle die Reihenfolge der auszuführenden Berechnungen durch Klammern festlegen – und zwar auch dann, wenn die Klammern nur die mathematischen Regeln widerspiegeln. Zum Schluss sei noch erwähnt, dass Stata auch mit Ausdrücken umgehen kann, die „Strings“ (d.h. Worte oder Buchstaben) enthalten. Zur Verwendung von Strings in Ausdrücken müssen diese allerdings in Anführungszeichen gesetzt werden. Hier ist ein Beispiel mit einer der wichtigsten Fragen überhaupt: . display ("SPSS"=="Stata") 0
Der Ausdruck ist falsch. SPSS ist nicht gleich Stata! Jetzt wissen wir das. Abschließend wollen wir einige Verwendungsmöglichkeiten von Ausdrücken, in Kombination mit dem if-Befehl, darstellen. Die folgenden Befehle . summarize ybirth if edu == 4 | edu == 5 . summarize ybirth if edu >= 4 & edu = 4 & edu < .
3 Ein einfaches Gleichheitszeichen wird verwendet, um zwei Dinge gleichzumachen. Einfache Gleichheitszeichen können in Ausdrücken grundsätzlich nicht verwendet werden.
3.1 Elemente der Stata-Kommandos
| 65
liefern Informationen über die Variable ybirth für diejenigen Beobachtungen mit einem Wert für edu von 4 oder höher, ohne dabei Beobachtungen mit fehlenden Werten bei edu zu berücksichtigen; dies ist die erste Lösung zu dem auf Seite 62 beschriebenen Problem. Der Befehl . summarize yedu if (2009 - ybirth) < 18
fasst yedu für alle Befragten unter 18 Jahren zusammen. Dagegen gibt der Befehl . summarize yedu if !((2009 - ybirth) < 18)
dies für alle Befragten aus, die nicht unter 18 Jahren sind. Der vorangestellte Operator für „nicht“ kann ebenfalls mit Dummy-Variablen verwendet werden, so gibt der Befehl . summarize income if !men
das Einkommen für alle Befragten aus, die auf der Variable men eine Null aufweisen, bzw. formal: alle Befragten die nicht ungleich Null auf men sind. Dies sind alle Frauen. Bei mehr als einer Dummy-Variable kann dieses Vorgehen auch noch erweitert werden. Zur Veranschaulichung erstellen wir eine Dummy-Variable für vollzeitbeschäftigte Personen: . generate fulltime = 0 . replace fulltime = 1 if emp == 1
Diese Variable nutzen wir dann, um uns eine Übersicht des Einkommens für vollzeitbeschäftigte Männer ausgeben zu lassen . summarize income if men & fulltime
Analog dazu lässt sich das durchschnittliche Einkommen für vollzeitbeschäftigte Frauen sowie für nicht vollzeitbeschäftigte Männer bzw. Frauen ermitteln: . summarize income if !men & fulltime . summarize income if men & !fulltime . summarize income if !men & !fulltime
Beachten Sie bei Ihrem Vorgehen jedoch stets, dass Missings – hier, wie überhaupt – leicht zu Fehlern führen. Im vorliegenden Fall könnte man z.B. mit sehr guten Gründen argumentieren, dass man die Variable fulltime wie folgt hätte bilden müssen: . generate fulltime2 = 0 if emp < . . replace fulltime2 = 1 if emp == 1
Bei diesem Vorgehen wird Befragten, die keine Angaben zu Ihrem Erwerbsstatus gemacht haben, auf der neuen Variable fulltime2 ein Missing zugewiesen, während beim Vorgehen oben eine Null zugewiesen wurde. Das Kommando . summarize income if men & fulltime2
66 | 3 Die Stata-Grammatik Tab. 3.2. Werte von Ausdrücken für Beobachtungen, die bei der Variable x einen Missing haben if exp
Wert
Bemerkung
if if if if if if if
1 1 1 1 .
1 0 0 1 0 1 0/1
if x .
0 0/1
Ja, Missings sind „nicht Null“ Nein, Missings sind nicht „nicht Null“ Nein, Missings sind nicht Eins Ja, Missings sind „nicht Eins“ Nein, Missings sind nicht „kleiner als Eins“ Ja, Missing ist „größer als Eins“ Ja, . ist „gleich .“. Nein, .a, .b, etc. sind nicht „ungleich .“ Nein, . ist nicht „größer/gleich .“. Ja, .a, .b, etc. sind „größer/gleich .“ Nein, Missings sind nicht „kleiner .“ Nein, . ist nicht „größer .“. Ja, .a, .b, etc. sind „größer .“
x !x x == x != x = x ==
wird aber einschließlich derjenigen Beobachtungen durchgeführt, die keine Angaben zu Missing gemacht haben – weil sie eben nicht Null sind. Faktisch würde man also so tun, als wären diejenigen, die keine Angaben zum Erwerbsstatus gemacht haben, vollzeitbeschäftigt. Der Befehl . summarize income if men & fulltime2==1
ist hier also in den meisten Fällen die korrektere Variante. Allgemein gilt: Mit if-Bedingungen wird der Befehl auf diejenigen Beobachtungen eingeschränkt, für die der in der if-Bedingung verwendete Ausdruck nicht Null ist. So einfach dieses allemeine Prinzip klingen man, so haben die vorangegangenen Abschnitten doch wiederholt gezeigt, dass if-Bedingungen auch überraschende Wirkungen haben. Dies gilt insbesondere dann, wenn sich der Ausdruck in der if-Bedingungen auf Variablen bezieht, die Beobachtungen mit Missings enthalten. Zur Übersicht über solche Problemfälle haben wir in Tabelle 3.2 die Ergebnisse der Berechnung der Ausdrücke für eine Reihe von exemplarischen if-Bedinungen dargestellt. Gezeigt wird jeweils der Wert, der sich für Beobachtungen ergibt, die auf der Variable x einen Missing haben. Prüfen Sie doch einmal ob Ihre Intuition mit den Ergebnissen übereinstimmt. Bei denjenigen if-Bedingungen, bei denen dies nicht der Fall ist, sollten Sie Vorsicht walten lassen, oder die if-Bedingung einfacher formulieren.
3.1.6.2 Funktionen Der zweite wichtige Bestandteil von Ausdrücken sind „Funktionen“. Eine Funktion ist eine Regel, die einem Wertebereich einen spezifischen Wert zuweist. Eine sehr einfa-
3.1 Elemente der Stata-Kommandos
| 67
che Funktion ist f (x) = 1. Diese Funktion weist jeder beliebigen Zahl x, die Sie sich √ vorstellen können, den Wert 1 zu. Etwas komplizierter ist die Funktion f (x) = x. Diese Funktion weist jeder beliebigen Zahl x ihre Quadratwurzel zu. Wir werden uns hier lediglich mit solchen etwas komplizierteren Funktionen beschäftigen. In Stata gibt es eine lange Liste vordefinierter Funktionen. Unter diesen Funktionen finden Sie zum Beispiel die Quadratwurzel, den Logarithmus oder die Exponentierung. Alle diese Funktionen sind gleich aufgebaut. Sie bestehen aus einem Funktionsnamen und einem Argument, die wie folgt zusammengefügt werden: function_name(argument). Der Funktionsname definiert die Rechenaufgabe. Die Funktion sqrt() ist z.B. die Quadratwurzel, ln() der natürliche Logarithmus usw. Das Argument definiert die Werte, für die die Funktion berechnet werden soll. Meistens ist das Argument selbst ein Ausdruck. Das heißt, innerhalb der Klammer können entsprechend der allgemeinen Regeln komplizierte Ausdrücke mit Operatoren und – wieder – Funktionen gebildet werden. Doch lassen Sie uns einfach einige Beispiele ausprobieren. Die folgenden Kom√ mandos berechnen nacheinander 2, √2 + 35 und e√|−1| : . display 1.4142136
sqrt(2)
. display 1.6124515
sqrt(2 + 3/5)
. display 2.7182818
exp(sqrt(abs(-1)))
Den Einstieg in die Welt der Stata-Funktionen bekommen Sie durch . help functions
Abhängig von Ihren statistischen Kenntnissen werden Sie diese Liste als zu umfassend empfinden. Im Verlauf dieses Buches greifen wir aber immer wieder auf neue Funktionen zurück, so dass sich Ihre Kenntnis der Funktionen rasch erweitert. Hier wollen wir zunächst nur drei Funktionen vorstellen, die zusammen mit dem if-Befehl besonders häufig verwendet werden. Eine sehr hilfreiche Funktion ist missing(a, b, ...) bzw. deren Kurzform mi(a, b, ...). Diese Funktion ist gleich 1, wenn eines der Argumente in der Klammer ein fehlender Wert ist, und ansonsten Null. Mit Hilfe der Funktion mi() können Sie z.B. das Einkommen für diejenigen Beobachtungen berechnen lassen, die einen fehlenden Wert in der Variable edu aufweisen: . summarize income if mi(edu)
Häufiger wird diese Funktion jedoch mit dem Nicht-Operator verwendet. Der Befehl . summarize income if edu >= 4 & !mi(edu)
68 | 3 Die Stata-Grammatik ermittelt z.B. das Einkommen von Personen mit einer Bildung über 4, die aber nicht Missing sind. Dies ist eine sehr gute Möglichkeit, um das auf Seite 62 beschriebene Problem zu umgehen. Die Funktion hilft auch bei der Beschränkung einer Berechnung auf diejenigen Beobachtungen, die auf mehreren Variablen nur gültige Werte aufweisen: . summarize income if !mi(edu,emp)
Die Funktionen inlist(z,a,b,...) und inrange(z,a,b) werden ebenfalls häufig in Verbindung mit der if-Bedingung verwendet. Die Funktion inlist(z,a,b,...) prüft, ob das erste Argument (z) identisch mit einem der folgenden Argumente (a,b,...) ist. In diesem Fall gibt die Funktion eine 1 aus, andernfalls eine 0. Die Funktion kann verwendet werden, um die Ausführung eines Befehls auf Beobachtungen, die eine Reihe von Werten auf einer bestimmten Variable haben, einzuschränken. Hier verwenden wir den Befehl, um das Einkommen der Beobachtungen, die entweder verheiratet (mar==1), verwitwet(mar==3) oder geschieden sind (mar==5), zusammenzufassen. . summarize income if inlist(mar,1,3,5)
Die Negation von inlist() verwendet alle anderen Beobachtungen. Dies kann praktisch sein, jedoch sollte immer bedacht werden, dass fehlende Werte ebenfalls nicht zur Liste gehören könnten. . summarize income if !inlist(mar,1,3,5) & !mi(mar)
Ähnlich wie inlist(z,a,b,...) verhält sich die inrange(z,a,b)-Funktion. Diese überprüft, ob das erste Argument innerhalb des Bereichs der beiden anderen Argumente liegt. Wir verwenden in diesem Beispiel diese Funktion, um das Einkommen nur für diejenigen Beobachtungen zusammenzufassen, die zwischen 1989 und 1992 geboren wurden: . summarize income if inrange(ybirth,1989,1992)
3.1.7 Die Nummernliste Bei manchen Befehlen finden Sie den Begriff numlist im Syntaxdiagramm. Dieser Begriff steht für eine Nummernliste. Eine Nummernliste ist eine Liste von Zahlen, die Stata als Zahlen versteht. Dem Verständnis von Stata für Zahlen ist es zu verdanken, dass Nummernlisten abgekürzt eingegeben werden können. Tabelle 3.3 zeigt Beispiele für die Eingabe von Nummernlisten. Beispiele für deren Anwendung finden Sie in den Abschnitten 3.2.2 und 6.3.4.1.
3.1 Elemente der Stata-Kommandos
| 69
Tab. 3.3. Eingabe von Nummernlisten Die Eingabe von
bedeutet
1,2,3,4 1 2 3 4 1/4 2 4 to 8 8 6 to 2 2 4 : 8 8 6 : 2 2(2)8 8(-2)2 8/10 15 to 30 32 to 36 8/10(5)30(2)36
1, 2, 3, 4 1, 2, 3, 4 1, 2, 3, 4 2, 4, 6, 8 8, 6, 4, 2 2, 4, 6, 8 8, 6, 4, 2 2, 4, 6, 8 8, 6, 4, 2 8, 9, 10, 15, 20, 25, 30, 32, 34, 36 8, 9, 10, 15, 20, 25, 30, 32, 34, 36
3.1.8 Dateinamen Im Syntaxdiagramm einer Reihe von Befehlen finden Sie das Element using filename. Es handelt sich dabei um Befehle, die Dateien lesen oder schreiben. Auf eine Datei wird Bezug genommen, indem hinter dem Kennwort using ein Dateiname angegeben wird. Manchmal kann using aber auch weggelassen werden. Ein vollständiger Dateiname besteht immer aus einer Adresse, einem Namen und einer Extension. Die Adresse gibt normalerweise an, in welchem Verzeichnis oder Ordner sich eine Datei befindet. Der Name ist der Name der Datei und die Extension beschreibt den Typ einer Datei. Die hier zumeist verwendete Datei c:\data\kk\data1.dta hat die Adresse c:\data\kk und den Namen data1. Es handelt sich dabei um eine Datei vom Typ .dta; dies ist die Extension für Stata-Datensätze. Die Eingabe der Adressen erfolgt in der durch das Betriebssystem vorgegebenen Weise. So werden unter Macintosh Doppelpunkte zur Abtrennung von Ordnern verwendet, unter Linux der Schrägstrich und unter DOS und Windows der Backslash. Die Eingabe des eigentlichen Dateinamens ist dagegen für alle Betriebssysteme gleich: Es wird einfach der Dateiname angegeben. Wenn im Dateinamen Leerzeichen oder andere Sonderzeichen auftreten, muss der komplette Name in Anführungszeichen gesetzt werden. Zur Beschreibung der (fiktiven) Datei C&A.dta im Ordner Eigene Dateien würde man z.B. describe using "c:\Eigene Dateien\C & A.dta" verwenden. Wenn Sie einen Datei aufrufen, muss Stata deren kompletten Namen kennen. Dies bedeutet jedoch nicht, dass Sie immer den kompletten Namen eintippen müssen: – Bei Dateinamen ohne Adresse geht Stata davon aus, dass sich die Datei im momentanen Arbeitsverzeichnis befindet. Informationen über das momentane Arbeitsverzeichnis erhalten Sie durch den Befehl print working directory: . pwd
70 | 3 Die Stata-Grammatik Tab. 3.4. Befehle und zugeordnete Extensionen Extension
Command
.csv .dct .do .dta .gph .raw .smcl .txt .xls
import delimited; export delimited infile (ohne varlist); infix (ohne varlist) do; run use; save; append; merge; joinby; describe graph using; graph, saving() infile (mit varlist); infix (mit varlist); outfile log cmdlog import excel, export excel
–
Bei Dateinamen ohne Extension eingeben, sucht Stata nach einer Datei mit einer Extension, die zu dem jeweiligen Befehl passt. Tabelle 3.4 zeigt, welche Befehle nach Dateien der angegebenen Extension suchen bzw. mit dieser Extension speichern.
Schließlich ist zu erwähnen, dass es sich bei den Dateinamen nicht notwendigerweise um Dateien auf Ihrem Rechner handeln muss. Internetadressen sind genauso geeignet. Sie können Stata-Dateien damit auch direkt aus dem Internet laden, falls Ihr Rechner einen Netzzugang hat: . use http://www.stata-press.com/data/kk4/data1
Dies gilt für Befehle, die Dateien laden, nicht jedoch für solche, die Dateien speichern.
3.2 Wiederholung ähnlicher Befehle In der Datenanalyse-Praxis kommt es oft vor, dass mehrere sehr ähnliche Befehle eingegeben werden müssen. Zum Beispiel enthält unser Datensatz zwölf Variablen zu den Sorgen, die sich die Befragten über bestimmte Lebensbereiche machen. Wenn Sie die Antworten aller dieser Variablen zwischen Männern und Frauen vergleichen wollen, benötigen Sie zwölf tabulate-Befehle: . . . . . . . . . . . .
tabulate tabulate tabulate tabulate tabulate tabulate tabulate tabulate tabulate tabulate tabulate tabulate
wor01 wor02 wor03 wor04 wor05 wor06 wor07 wor08 wor09 wor10 wor11 wor12
sex sex sex sex sex sex sex sex sex sex sex sex
3.2 Wiederholung ähnlicher Befehle
| 71
Befehlswiederholungen sind langweilig und fehleranfällig. In vielen Fällen lassen sich solche Befehlswiederholungen aber vermeiden. Die hierzu notwendigen Werkzeuge beschreiben wir in diesem Abschnitt. In Stata gibt es mehrere Möglichkeiten, um ähnliche Befehle zu wiederholen. Drei wollen wir hier vorstellen: das by-Präfix, die foreach-Schleife und die forvalues-Schleife (vgl. dazu auch Cox 2002a, b). Das einfachste Werkzeug der drei ist das by-Präfix. Es wird dazu benutzt, den gleichen Befehl für unterschiedlich abgegrenzte Beobachtungen zu wiederholen. Die beiden anderen Werkzeuge dienen dazu, Befehle für Elemente einer Liste oder Zahlenfolge zu wiederholen. 3.2.1 Das by-Präfix Das by-Präfix dient dazu, einen Befehl für alle Gruppen mit gleichen Werten in einer Variablenliste getrennt zu berechnen. Aufgebaut ist es wie ein Befehl vor einem StataBefehl. Die meisten Stata-Befehle können mit dem by-Präfix versehen werden, und die Online-Hilfe informiert darüber unmittelbar nach dem Syntaxdiagramm und der Tabelle mit den Optionen. Beim summarize-Befehl sind das zum Beispiel so aus: options
description
" separator(#)
draw separator line after every #variables; default is separator(5) by, … are allowed; see [D] prefix.
Das by-Präfix besteht aus dem Wort by oder bysort, einer Variablenliste, die wir hier als By-Liste bezeichnen wollen, und einem Doppelpunkt. Die Verwendung des by-Präfixes erfordert, dass die Daten nach den Variablen der By-Liste sortiert sind. Die Sortierung erfolgt entweder in einem getrennten Befehl vorab oder wird gleichzeitig mit dem by-Präfix angefordert. Der einfachste Weg, das by-Präfix zu verstehen, ist, es zu benutzen. Lassen Sie uns den Mittelwert des Einkommens für jede Gruppe der Variable sex berechnen. Dazu müssen wir den Datensatz nach sex sortieren und dann den summarize-Befehl zusammen mit dem by-Präfix eingeben: . sort sex . by sex: summarize income -> sex = Male Variable
Obs
Mean
income
2,320
28190.75
Variable
Obs
Mean
income
2,459
13322.89
Std. Dev. 47868.24
Min
Max
0
897756
Min
Max
0
612757
-> sex = Female Std. Dev. 21286.44
72 | 3 Die Stata-Grammatik Wie Sie sehen, bewirkt das by-Präfix, dass summarize zunächst mit der ersten Gruppe – den Männern – durchgeführt wird und danach mit der zweiten Gruppe – den Frauen. Das funktioniert genauso gut, wenn die Variable in der By-Liste mehr als zwei Gruppen enthält: . by edu, sort: summarize income
Beachten Sie, dass wir hier im by-Präfix die Option sort verwendet haben. Dies bewirkt, dass der Datensatz zur Laufzeit des by-Präfixes sortiert wird. Beachten Sie auch, dass sort eine Option des by-Präfixes ist und nicht des Befehls hinter dem Doppelpunkt. Natürlich könnten Sie auch den Befehl hinter dem Doppelpunkt mit Optionen versehen. Außerdem könnten Sie auch Folgendes eingeben: . bysort edu: summarize income
Der Befehl bysort ist identisch zum Befehl by mit der Option sort. Suchen Sie sich eine Möglichkeit aus und bleiben Sie dabei. Sie können auch mehr als eine Variable in der By-Liste angeben. Wenn Sie dies tun, bildet Stata Gruppen aus jeder möglichen Kombination der By-Liste und führt den angeforderten Befehl für jede dieser Gruppen aus. Der Befehl . by sex edu, sort: summarize income
berechnet zuerst den Mittelwert des Einkommens für alle Männer mit niedriger Bildung, dann denjenigen für alle Männer mit mittlerer Bildung usw. Nachdem die Durchschnittseinkommen für alle Bildungsgruppen bei den Männern berechnet wurden, passiert dasselbe mit den Frauen. Eine letzte Bemerkung: Einige Stata-Befehle erlauben eine by()-Option. Diese sollte nicht mit dem by-Präfix verwechselt werden. Der Unterschied besteht darin, dass die by()-Option Teil eines Stata-Befehls ist und durch diesen Befehl definiert wird. In anderen Worten: was die by()-Option macht, hängt vom jeweiligen Befehl ab und kann sich deutlich zwischen den Befehlen unterscheiden. Im Gegensatz dazu hat das by-Präfix die gleiche Funktion bei allen Stata-Befehlen: Der Befehl nach dem Doppelpunkt wird für jede durch die By-Liste gebildete Gruppe wiederholt.
3.2.2 Die foreach-Schleife Die foreach-Schleife wird verwendet, um eine bestimmte Aufgabe so oft auszuführen, bis eine Bedingung erfüllt ist. Die Aufgabe kann ein einzelner, immer gleicher StataBefehl sein – wie beim by-Präfix – oder ein einzelner Befehl, der bei jeder Wiederholung etwas variiert, oder eine Serie von Stata-Befehlen. Wegen der großen Flexibilität der foreach-Schleife ist auch ihre Syntax etwas komplizierter.
3.2 Wiederholung ähnlicher Befehle
| 73
Ein vereinfachtes Syntaxdiagramm der foreach-Schleife sieht so aus: foreach lname listtype list { Befehle }
Eine foreach-Schleife hat immer mindestens drei Zeilen. Die erste Zeile öffnet die Schleife. Diese Zeile endet mit einer öffnenden Mengenklammer. Die zweite Zeile enthält einen beliebigen Stata-Befehl. Es können hier weitere Zeilen mit weiteren StataBefehlen eingefügt werden. Die letzte Zeile besteht aus einer schließenden Mengenklammer, die die Schleife beendet. Sie sollten niemals irgendetwas in die Zeile hinter der öffnenden oder vor die schließende Klammer schreiben (außer Kommentaren). Lassen Sie uns zunächst durch die erste Zeile des Syntaxdiagramms gehen. Das erste Element ist hier der Befehl selbst: foreach. Hinter dem Befehl folgen drei weitere Bestandteile und danach die öffnende Klammer. Die drei weiteren Bestandteile sind der Element-Name (lname), der Listen-Typ (listtype) und die Foreach-Liste (list). Die Foreach-Liste ist eine Liste von Parametern. Es kann sich dabei um eine Variablenliste, eine Nummernliste oder eine arbiträre Liste von Wörtern, Zahlen oder Buchstaben handeln. Sie müssen Stata allerdings mitteilen, um welche Art von Liste es sich handelt. Dies geschieht mit dem Listen-Typ. Wenn Sie z.B. eine Variablenliste verwenden wollen, geben Sie als Listen-Typ of varlist ein. Schließlich benötigen wir den Element-Namen. Dies ist ein arbiträrer Name, mit dem Sie die einzelnen Bestandteilen der Foreach-Liste benennen. In den Befehlen zwischen den Mengenklammern können Sie dann mit diesem Namen auf die einzelnen Bestandteile der Foreach-Liste Bezug nehmen. Alles Weitere erläutern wir am besten an einem Beispiel. Wir möchten Sie dazu bitten, die folgenden Befehle einzugeben. Bevor Sie diese Befehle abtippen, sollten Sie aber zunächst noch etwas weiterlesen. . foreach X of varlist wor01-wor12 { . tabulate `X' sex . }
Der erste Befehl öffnet die Schleife. Nach dem Drücken der Eingabetaste wird die Ziffer 2 auf dem Bildschirm erscheinen. Dies dient lediglich zur Erinnerung, dass die nächste Eingabe Bestandteil von foreach ist. Sie brauchen sich darum nicht weiter zu kümmern. Geben Sie den tabulate-Befehl einfach wie auch sonst ein und danach den dritten Befehl, die schließende Mengenklammer. Wenn Sie sich bei Ihrer Eingabe vertan haben, drücken Sie zunächst die Eingabetaste, dann die schließende Mengenklammer und die Eingabetaste. Danach können Sie von vorne beginnen, d.h. mit der Eingabe der Zeile mit foreach. Denken Sie daran, dass Sie bereits eingegebene Befehle durch Klick auf den entsprechenden Befehl im Review-Fenster bzw. die Bild-nachoben-Taste zurückholen können. Noch etwas sollten Sie beachten, nämlich das Zeichen vor und hinter dem X im tabulate-Befehl. Das Zeichen vor dem X ist ein französisches Accent grave bzw. ein
74 | 3 Die Stata-Grammatik rückwärtsgewandtes einfaches Anführungszeichen (`), hinter dem X ist ein vorwärtsgewandtes einfaches Anführungszeichen ('). Auf deutschen Tastaturen finden Sie das rückwärtsgewandte einfache Anführungszeichen rechts oben auf der Taste neben dem „ß“. Um das Zeichen zu erzeugen, müssen Sie die Shift-Taste gedrückt halten und nach der Eingabe des Zeichens die Leertaste drücken. Das vorwärtsgewandte einfache Anführungszeichen findet sich rechts neben dem „Ä“. Nun können Sie mit der Eingabe der Befehle beginnen. Wenn alles klappt, sollten Sie am Ende die Ausgabe von zwölf tabulate-Befehlen erhalten. Was geht hier vor? Das erste Kommando bestimmt den Listentyp als Variablenliste. Die Foreach-Liste ist dann eine Liste von Variablennamen. Als Elementname wird X verwendet. Deshalb verwenden wir X als Platzhalter im Befehl zwischen den Klammern. Damit Stata weiß, dass es sich um den Element-Namen X und nicht etwa um eine Variable handelt, haben wir das X zwischen einfache Anführungszeichen gesetzt. Im Teil zwischen den Klammern müssen Sie den Elementnamen immer in einfache Anführungszeichen setzen. Nach der schließenden Mengenklammer startet Stata die Schleife, in der nach und nach der Platzhalter `X' durch die Variablennamen der Foreach-Liste ersetzt wird. Der Befehl tabulate `X' sex wird deshalb in der ersten Runde der Schleife zu tabulate wor01 sex, in der zweiten Runde zu tabulate wor02 sex usw.
Der Listen-Typ Wie bereits erwähnt, können Sie unterschiedliche Typen von Foreach-Listen verwenden. Sie können zwischen den folgenden Alternativen wählen: – of varlist für Variablenlisten, – of newlist für neue Variablen, – of numlist für Nummernlisten und – in für arbiträre Listen von Buchstaben, Nummern, Wörtern, die durch Leerzeichen getrennt werden. Ein Beispiel für eine foreach-Schleife mit einer Variablenliste haben wir gerade vorgeführt. Im Folgenden zeigen wir Ihnen Beispiele für die anderen Listen-Typen. Der Einfachheit halber haben wir diese Beispiele in einen Do-File geschrieben (foreachkk.do). Sie können diesen Do-File mit . doedit foreachkk.do
öffnen und dann ein wenig mit den Beispielen herumspielen. In diesem Fall sollten Sie die geänderte Fassung des Do-Files unter, sagen wir, myforeach.do speichern und auf die übliche Weise ablaufen lassen. Wenn Sie sich den Do-File anschauen, werden Sie bemerken, dass wir die Befehle zwischen der öffnenden und schließenden Klammer etwas eingerückt haben. Das muss man nicht tun, es ist nur eine Frage des Stils –
3.2 Wiederholung ähnlicher Befehle
| 75
aber es ist ein guter Stil. Ebenfalls guter Stil ist es, die schließende Klammer am ersten Buchstaben der Zeile mit der öffnenden Klammer auszurichten (vgl. dazu Zeilen 11 und 13 im Code-Beispiel foreachkk.do). Weitere Hinweise guten Stils bekommen Sie mit . view http://fmwww.bc.edu/repec/bocode/s/stylerules.hlp
Natürlich können Sie die Kommandos auch einfach vom Do-File abtippen. Unser erstes Beispiel verwendet den Listen-Typ of newlist. Sie finden das Beispiel in den Zeilen 11 bis 13 von foreachkk.do. Das Beispiel erzeugt 10 Variablen mit gleich verteilten Zufallszahlen zwischen 0 und 1. Hierzu verwenden wir die StataFunktion runiform(), um Zufallszahlen zu generieren. "
10: 11: 12: 13:
begin foreachkk.do // Example with New-Varlist foreach var of newlist r1-r10 { gen `var' = runiform() }
end foreachkk.do
An Stelle des Listentyps newlist ließe sich dieses Ergebnis auch mit dem Listentyp numlist erzeugen (vgl. nachfolgendes Beispiel). Mit dem Listentyp newlist wird allerdings noch vor Beginn der Schleife geprüft, ob zulässige Variablennamen verwendet wurden. In unserem nächsten Beispiel verwenden wir of numlist zum Überschreiben unserer Variablen mit neuen Zufallszahlen. Da die Variablen r1-r10 bereits existieren, müssen wir hier replace an Stelle von generate verwenden. "
15: 16: 17: 18:
begin foreachkk.do // Example with Numlist foreach num of numlist 1/10 { replace r`num' = runiform() }
end foreachkk.do
Und schließlich hier noch ein Beispiel mit einer arbiträren Liste: "
20: 21: 22: 23:
begin foreachkk.do // Example with Anylist foreach piece in This list has 5 pieces { display "`piece'" }
end foreachkk.do
Mehrere Befehle innerhalb der foreach-Schleife In foreach-Schleifen lassen sich auch mehrere Befehle innerhalb der Schleife ausführen. Im folgenden Beispiel werden zentrierte Versionen der Variablen für Geburtsjahr
76 | 3 Die Stata-Grammatik und Einkommen erzeugt. Für eine zentrierte Variable zieht man von jedem Wert der Variablen das arithmetische Mittel der Variablen ab. "
25: 26: 27: 28: 29: 30:
begin foreachkk.do // Example with More than one line foreach var of varlist ybirth income { summarize `var', meanonly generate `var'_c = `var' - r(mean) label variable `var'_c "`var' (centered)" } end foreachkk.do
In unserem Beispiel berechnen wir deshalb zunächst den Mittelwert (Zeile 27). Danach erzeugen wir eine neue Variable (Zeile 28). Der Name der neuen Variablen ist identisch mit dem alten Namen, jedoch mit angehängtem „_c“. Der Begriff r(mean) bezeichnet ein sogenanntes „gespeichertes Ergebnis“ des summarize-Befehls. Das gespeicherte Ergebnis enthält den Mittelwert des letzten summarize-Befehls. Wir werden derartige gespeicherte Ergebnisse ausführlicher in Kapitel 4 besprechen. Schließlich definieren wir noch ein Variablenlabel für die neue Variable.
3.2.3 Die forvalues-Schleife Wenn Sie die foreach-Schleife verstanden haben, wird Ihnen die forvalues-Schleife nicht schwerfallen. Die forvalues-Schleife ist so etwas wie eine einfachere Art, eine foreach-Schleife mit dem Listen-Typ numlist zu erstellen. Die vereinfachte Version des Syntaxdiagramms von forvalues sieht wie folgt aus: forvalues lname=range { Befehle }
Dieses Syntaxdiagramm ähnelt demjenigen von foreach. Wieder haben wir drei Zeilen. Die erste Zeile startet die Schleife, die zweite enthält einen oder mehrere StataBefehle. Die letzte Zeile ist eine schließende Mengenklammer. Auch hier sollten Sie niemals irgendetwas in die Zeile hinter der öffnenden oder vor die schließende Klammer schreiben. Die erste Zeile des Syntaxdiagramms enthält zunächst den Befehl selbst – forvalues – dann einen Elementnamen (lname), gefolgt von einem Zahlenbereich (range) und einer öffnenden Klammer. Der Zahlenbereich ist etwas Ähnliches wie eine Nummernliste. Als Zahlenbereich können Sie einen Bereich von Zahlen eingeben, wie in Abschnitt 3.1.7 beschrieben. Allerdings können Sie keine einzelnen Ziffern oder mehrere Bereiche angeben. Sie können also 1(1)10 eingeben, um alle ganzzahligen Ziffern von 1 bis 10 anzusprechen, aber nicht 1(1)10 15 19 oder 1(1)10 12(2)20.
3.3 Die Gewichtungsanweisung
| 77
Der Element-Name ist ein arbiträrer Name, den Sie jeder Ziffer des Zahlenbereichs zuweisen. Sie verwenden diesen Namen innerhalb der Mengenklammern, um auf die Zahlen Bezug zu nehmen. Versuchen wir ein Beispiel. Bitte geben Sie die folgenden Zeilen ein . forvalues num=1/10 { . replace r`num' = runiform() . }
Beim Abtippen sollten Sie darauf achten, den Element-Namen num in einfache Anführungszeichen einzuschließen. Aber dies kennen Sie ja bereits aus der foreach-Schleife. Durch Drücken der Eingabetaste am Ende der dritten Zeile sollte Stata die Schleife starten. Dabei wird dann nach und nach `num' durch jede Zahl des angegebenen Bereichs ersetzt. Stata wird den Inhalt der Variablen r1 bis r10 dann ein weiteres Mal ersetzen. Die forvalues-Schleife mag Ihnen unnötig erscheinen, gegeben dass es sich um nichts anderes als um eine foreach-Schleife mit dem Listen-Typ numlist handelt. Es gibt jedoch feine Unterschiede: Die foreach-Schleife mit einer Nummernliste funktioniert nicht mit einer beliebig hohen Anzahl von Ziffern. In der forvalues-Schleife gibt es diese Einschränkung nicht. Zudem ist die forvalues-Schleife schneller im Abarbeiten von Nummernlisten.
3.3 Die Gewichtungsanweisung Der folgende Abschnitt ist etwas schwieriger als die vorangegangenen. Wir haben zwar versucht, die Dinge so einfach wie möglich darzustellen, für Anfänger der Datenanalyse könnte sich die Darstellung dennoch als zu schwer herausstellen. Wenn dem so ist, überspringen Sie diesen Abschnitt einfach – für das Verständnis der folgenden Kapitel ist er bedeutungslos. Gewichte sind bei allen Befehlen erlaubt, bei denen [ weight ] im Syntaxdiagramm aufgeführt ist. Die Anwendung von Gewichten führt dazu, dass Stata bestimmte Beobachtungen wichtiger nimmt als andere. Die Gewichtungsanweisung hat folgende Syntax: [weightword = exp ]
Die Gewichtungsanweisung steht in eckigen Klammern. Diese haben aber nichts mit den eckigen Klammern des Syntaxdiagramms zu tun, sondern sind Bestandteil der Gewichtungsanweisung selbst. Innerhalb der eckigen Klammer wird zunächst der Gewichtungstyp angegeben, danach ein Gleichheitszeichen, gefolgt von einem StataAusdruck, der in aller Regel der Namen einer Variablen ist, die die Gewichte für die Beobachtungen enthält. Im Wesentlichen lässt Stata drei Typen von Gewichtungsvariablen zu: – fweight für „Frequency-Weights“,
78 | 3 Die Stata-Grammatik – –
aweight für „Analytic-Weights“ und pweight für „Sampling-Weights“.
Wenn lediglich weight als Gewichtungstyp angegeben wird, wählt Stata selbst einen Gewichtungstyp aus. Manche Kommandos kennen darüber hinaus den Gewichtungstyp iweight, „Importance-Weights“, der aber keine eindeutige statistische Bedeutung hat. Jedes Kommando, das Importance-Weights zulässt, wird dies auf eine spezifische Weise tun. Hier muss man die Beschreibung des Befehls konsultieren. ImportanceWeights sind Werkzeuge für Programmierer, normale Stata-Anwender benötigen sie nicht. Die drei anderen Gewichtungstypen haben eine klare statistische Bedeutung, die nachfolgend beschrieben werden soll.
Frequency-Weights Frequency-Weights werden für Gewichtungsvariablen verwendet, die angeben, wie oft eine Beobachtung im Datensatz vorkommt. Da dies vielleicht ein wenig seltsam klingt, wollen wir das an einem Beispiel erklären. Geben Sie dazu einmal folgenden Befehl ein: . summarize ybirth Variable
Obs
Mean
ybirth
5,411
1959.493
Std. Dev.
Min
Max
18.12642
1909
1992
Angezeigt wird das arithmetische Mittel und die Standardabweichung der Variablen Geburtsjahr in Ihrem Datensatz. Der Mittelwert beruht auf 5.411 Beobachtungen, wobei jede Beobachtung nur einmal auftritt. Betrachten Sie nun einmal den Datensatz freqwe.dta aus unserem Datenpaket: . use freqwe, clear (Frequency weighted data from data1.dta) . describe Contains data from freqwe.dta obs: 82 vars: size: variable name ybirth n
Frequency weighted data from data1.dta 12 Oct 2016 13:55
2 328 storage type
display format
int int
%8.0g %12.0g
Sorted by: ybirth
value label
variable label * Year of birth Frequency * indicated variables have notes
3.3 Die Gewichtungsanweisung
| 79
Dieser Datensatz enthält nur 82 Beobachtungen und 2 Variablen – Geburtsjahr (ybirth) und Häufigkeit (n). Bitte geben Sie nun nochmals das summarize-Kommando von oben ein, diesmal aber mit Gewichtungsanweisung: . summarize ybirth [fweight = n] Variable
Obs
Mean
ybirth
5,411
1959.493
Std. Dev.
Min
Max
18.12642
1909
1992
Das Ergebnis ist mit obigem identisch. Wieder haben Sie 5.411 Beobachtungen, ein arithmetisches Mittel von 1959,493 und eine Standardabweichung von 18,13. Dass der Mittelwert auf 5.411 Fällen beruht, mag Sie überraschen. Wir sollten uns die Daten darum etwas genauer anschauen. Da der Datensatz nach dem Geburtsjahr sortiert ist, hilft es vielleicht, einfach einige Beobachtungen nacheinander aufzulisten: . list in 1/5
1. 2. 3. 4. 5.
ybirth
n
1909 1912 1913 1914 1915
1 4 1 2 2
Jedes Geburtsjahr ist im Datensatz nur einmal vertreten, d.h., es gibt nur eine Beobachtung, die 1909 geboren wurde, nur eine, die 1912 geboren wurde usw. Allerdings wird jedes Geburtsjahr mit der Variablen n gewichtet. Das Geburtsjahr 1909 wird mit dem Faktor 1 gewichtet und das Geburtsjahr 1912 mit 4. Wenn Sie auch noch weiter untenstehende Beobachtungen anschauen, werden Sie z.B. feststellen, dass das Geburtsjahr 1967 mit 106 gewichtet wird. Frequency-Weights interpretieren die Angaben in Gewichtungsvariablen so, dass jede Beobachtung genauso oft vorkommt, wie in der Gewichtungsvariable steht. Der summarize-Befehl von oben geht also davon aus, dass es nicht nur eine, sondern vier Beobachtungen mit einem Geburtsjahr von 1912 gibt. Entsprechend wird mit den anderen Beobachtungen verfahren. Der Datensatz frewe.dta enthält bezüglich des Alters dieselbe Information wie unser großer Beispieldatensatz data1.dta. Statt aber identische Fälle untereinander – eine Beobachtung mit dem Geburtsjahr 1909 usw. – zu schreiben, werden alle identischen Fälle nur einmal aufgeführt, zusammen mit der Angabe, wie oft es diesen Fall gibt. Bei häufigkeitsgewichteten Daten handelt es sich damit nur um eine andere Art, dieselbe Information zu notieren; um eine sparsamere Art übrigens, und damit um eine Möglichkeit Datensätze, die für Ihren Arbeitsspeicher zu groß sind, trotzdem zu bearbeiten.
80 | 3 Die Stata-Grammatik Um einen ungewichteten Datensatz zu einem häufigkeitsgewichteten zu machen, verwendet man den Befehl contract; die umgekehrte Aufgabe erfüllt expand. Der Befehl expand ist z.B. hilfreich, wenn ein bestimmter Befehl keine Frequency-Weights erlaubt.
Analytic-Weights Wir werden Ihnen den Umgang mit Analytic-Weights mit einem weiteren Beispiel erläutern. Dazu laden Sie bitte den Datensatz analwe.dta und lassen sich die Mittelwerte der Variable ybirth einmal mit Frequency-Weights und einmal mit AnalyticWeights ausgeben. . use analwe (Example data with analytic weights) . summarize ybirth [fweight = n] Variable
Obs
Mean
ybirth
5,411
1959.547
Std. Dev. 1.790374
Min
Max
1954.894
1962.191
. summarize ybirth [aweight = n] Variable
Obs
Weight
Mean
ybirth
14
5411
1959.547
Std. Dev. 1.857787
Min
Max
1954.894
1962.191
Sie erhalten denselben Mittelwert mit beiden Gewichtungstypen. Achten Sie nun aber auf die Standardabweichung („Std. Dev.“). Sie beträgt 1,79 mit den FrequencyWeights und 1,86 mit Analytic-Weights. Diese beiden Ergebnisse unterscheiden sich nicht nur untereinander, sondern auch von den entsprechenden Ergebnissen im letzten Abschnitt. Welches Ergebnis ist das Richtige? Das hängt davon ab, wie die Daten zustande gekommen sind. Wenn jede Beobachtung exakt so viele identische Beobachtungen repräsentiert, wie in der Gewichtungsvariablen angegeben, dann ist das erste Ergebnis korrekt. Hier sind die Daten aber anderer Natur. Um unsere Erklärung besser nachvollziehen zu können, schauen Sie sich bitte einmal die ersten 5 Beobachtungen in unserem Datensatz an: . list in 1/5
1. 2. 3. 4. 5.
state
ybirth
n
Berlin Schleswig-Hols. Hamburg/Bremen Lower Saxony N-Rhein-Westfa.
1962.19 1956.61 1954.89 1957.38 1960.82
208 166 101 412 1145
3.3 Die Gewichtungsanweisung
| 81
Der Datensatz besteht aus 14 Fällen, einem für jedes Bundesland.⁴ Für jedes Bundesland ist das Geburtsjahr und ein Gewicht angegeben. Das Geburtsjahr ist hier das durchschnittliche Geburtsjahr aller Befragten aus dem jeweiligen Bundesland und das Gewicht gibt an, wie viele Fälle der Berechnung des jeweiligen Bundeslandes zu Grunde liegen. Solche Daten bezeichnet man häufig als „Aggregatdaten“. Natürlich handelt es sich bei den Beobachtungen, die dem Mittelwert eines Aggregates zu Grunde liegen, nicht um identische Beobachtungen, sondern um Menschen unterschiedlichen Alters. Wir haben deshalb keine 5.411 Beobachtungen, sondern nur 14 Mittelwerte, die eine unterschiedliche Menge von Informationen verdichten.⁵ In einer Situation wie dieser müssen Sie Analytic-Weights verwenden. Bei analytisch gewichteten Daten ist jede Beobachtung einer Variable ein Mittelwert, und das Gewicht steht für die Anzahl der Beobachtungen, mit denen der Mittelwert berechnet wurde.
Sampling-Weights Die dritte Art von Gewichtung ist wahrscheinlich die interessanteste – und eines der Dinge, die Stata vielen Mitbewerbern voraus hat. Bei der Datenanalyse ist man oft mit einer Stichprobe aus einer größeren Population konfrontiert und man möchte aus dieser Stichprobe Rückschlüsse auf die größere Population ziehen. Die meisten statistischen Verfahren für diese sog. „Inferenzstatistik“ beruhen dabei auf der Annahme, dass die Stichprobe eine einfache Zufallsstichprobe ist. Bei einer solchen Stichprobe gelangen alle Elemente der Grundgesamtheit mit der gleichen Wahrscheinlichkeit in die Stichprobe. In der Praxis sind solche Stichproben aber die große Ausnahme. Häufig haben bestimmte Gruppen von Personen höhere Auswahlwahrscheinlichkeiten als andere. Wendet man auf solche Daten die Verfahren für einfache Zufallsstichproben an, so macht man zwei Fehler. Erstens erhält man verzerrte Punktschätzer, d.h., Mittelwerte, Mediane, Regressionskoeffizienten usw. entsprechen nicht den korrekten Werten. Zweitens berechnet man falsche Werte für die Stichprobenverteilungen der Punktschätzer, mit der Konsequenz fehlerhafter Konfidenzintervalle und Signifikanztests (Kish 1965). Um den ersten Fehler zu bereinigen, d.h., um unverzerrte Punktschätzer zu erhalten, genügt es, die Daten mit dem Kehrwert der Auswahlwahrscheinlichkeit zu gewichten. Dabei ist es gleichgültig, ob man Frequency-Weights oder Analytic-Weights anwendet. Beide führen zum selben Ergebnis. Für den zweiten Bereich wird es komplizierter. Hier führen beide oben genannten Gewichtungsverfahren zu falschen Ergebnissen. Ein bestimmter Fall ist ja weder mehrmals identisch vorhanden, noch ver-
4 Aus Gründen des Datenschutzes wurden Hamburg und Bremen sowie Rheinland-Pfalz und Saarland zusammengefasst. 5 Der Datensatz wurde mit der Datei cranalwe.do in unserem Dateipaket erstellt.
82 | 3 Die Stata-Grammatik dichtet ein Fall mit einem hohen Gewicht mehr Information. Jede Beobachtung ist nur eine einzelne Beobachtung. Mit den Probability-Weights bekommen Sie die korrekten Werte. Probability-Weights gehören zu den sog. „Surveykommandos“, die der Bearbeitung von Daten aus komplexen Stichproben dienen. Wir behandeln diese Kommandos ausführlicher in Kapitel 8.
3.4 Übungen 1.
2.
Berechnen Sie Mittelwert und die Standardabweichung für jede der folgenden Variablen aus data1.dta: – alle Variablen, die mit „wor“ beginnen, – alle Variablen, die Informationen über die Wohnungsausstattung enthalten, und – alle Variablen, die etwas mit „satisfaction“ zu tun haben. Kürzen Sie folgende Befehle so weit es geht ab: . summarize ymove ybuild condit eqphea area1 area2 . regress wor01 ybirth income
3.
Benutzen Sie den Befehl gen inc = hhinc, um eine neue Variable inc zu erstellen, die der Variable hhinc entspricht. Geben Sie dann den zweiten abgekürzten Befehl der letzten Aufgabe nochmals ein. Warum führt dieser Befehl nun zu einem anderen Ergebnis? 4. Lesen Sie help set varabbrev und denken Sie über die Vorteile und Nachteile von set varabbrev off nach. 5. Listen Sie die Personennummern, die Interviewernummer, das Geburtsjahr, das Haushaltseinkommen und die allgemeine Lebenszufriedenheit der 10 Beobachtungen mit dem niedrigsten Haushaltseinkommen auf. Führen Sie den Befehl danach ohne die Personen- und Interviewernummern aus und fügen Sie eine Zeile für die Mittelwerte der Variablen an die Liste an. 6. Erstellen Sie eine Tabelle aus Geschlecht und allgemeiner Lebenszufriedenheit, bei der das Geschlecht die Spaltenvariable darstellt. Verwenden Sie dafür nur Befragte aus Westdeutschland (state
sum ybirth local truemean = r(mean) sum smplmeans local XplusSE = r(mean) + r(sd) local XminusSE = r(mean) - r(sd) kdensity smplmeans, xline(`truemean') xline(`XplusSE' `XminusSE', lpattern(dash))
0
.05
Density .1
.15
.2
Kernel density estimate
1955
1960
1965
1970
smplmeans kernel = epanechnikov, bandwidth = 0.4663
Die Grafik zeigt, dass sich die Mittelwerte der 500 Stichproben symmetrisch um den reallen Mittelwert von ybirth verteilen, wobei sie häufiger in der Nähe des tatsächlichen Wertes liegen, als deutlich von ihnen abzuweichen. Der Großteil der Werte befindet sich innerhalb eines Standardfehlers ober- und unterhalb des wahren Werts. Mit . gen limit1 = inrange(smplmeans,`XminusSE',`XplusSE') if !mi(smplmeans) (2,932,318 missing values generated) . tab limit1 limit1
Freq.
Percent
Cum.
0 1
167 333
33.40 66.60
33.40 100.00
Total
500
100.00
222 | 8 Grundlagen statistischer Inferenz können wir berechnen, dass tatsächlich 68.4 % aller Stichprobenmittelwerte innerhalb einer Standardabweichung ober- und unterhalb des wahren Wertes liegen; würden wir eine größere Zahl von Stichproben ziehen, so würde sich dieser Wert 68 % annähern. Man kann ebenfalls davon ausgehen, dass ca. 95 % aller Stichprobenmittelwerte innerhalb von zwei Standardabweichungen ober- und unterhalb des wahren Wertes und ca. 99 % innerhalb von drei Standardabweichungen ober- und unterhalb des wahren Wertes liegen. Wenn Sie diese Prozentsätze für unsere 500 Stichproben ermitteln, werden Sie sehen, dass diese nahezu perfekt erreicht werden: . sum smplmeans . forvalues i = 2/3 { . local Xplus`i'SE = r(mean) + `i'*r(sd) . local Xminus`i'SE = r(mean) - `i'*r(sd) . gen limit`i' = inrange(smplmeans,`Xminus`i'SE',`Xplus`i'SE') > if !mi(smplmeans) . tab limit`i' . }
Insgesamt ähnelt die Verteilung der Stichprobenmittelwerte sehr stark einer Normalverteilung. Tatsächlich besagt der sogenannte „Zentrale Grenzwertsatz“ (engl. Central Limit Theorem), dass bei unendlich vielen Wiederholungen von einfachen Zufallsstichproben, die Stichprobenverteilung der Mittelwerte eine Normalverteilung aufweist. Oder, um es technisch auszudrücken: Wenn wir eine einfache Zufallsstichprobe der Größe n aus einer Grundgesamtheit ziehen und ein Merkmal beobachten, das einen wahren Mittelwert von μ aufweist und dessen Standardabweichung in der Grundgesamtheit σ beträgt, so hat die Stichprobenverteilung eine Normalverteilung mit einem Mittelwert von μ und einer Standardabweichung (dem Standardfehler) von √σ : n σ N(μ, √ ) . (8.1) n Dies gilt unabhängig davon, welche Verteilung das Merkmal in der Grundgesamtheit hat. Allerdings sollte die Stichprobe umso größer gewählt werden, je stärker die Verteilung des Merkmals von einer Normalverteilung abweicht. Wenn Sie ausprobieren wollen, welchen Effekt verschiedene Stichprobengrößen auf die Stichprobenverteilung von ybirth haben, so können Sie Befehle von Seite 219 mit unterschiedlichen Stichprobengrößen erneut durchlaufen lassen und sich die neuen Stichprobenverteilungen in eine Grafik über die Verteilung von smplmeans legen lassen. Wenn wir das für eine Stichprobengröße von ungefähr 1.000 Beobachtungen machen, dann können wir sehen, dass die Stichprobenverteilung wesentlich schmaler wird: . . . . . .
gen smplmeans2 = . forvalues i = 1/500 { summarize ybirth if runiform() < (1000/_N), meanonly replace smplmeans2 = r(mean) in `i' } tw || kdensity smplmeans || kdensity smplmeans2
| 223
0
.2
.4
.6
.8
8.2 Deskriptive Inferenz
1958
1960
1962
1964
1966
1968
x kdensity smplmeans
kdensity smplmeans2
Der zentrale Grenzwertsatz macht die Schätzung des Standardfehlers für Stichprobenmittelwerte aus einfachen Zufallsstichproben ziemlich einfach. Dies gilt leider nicht für alle Arten von Punktschätzern, alle Arten von Stichproben und alle Arten von Variablen. Echte statistische Probleme fangen hier an.
8.2 Deskriptive Inferenz Solide Kenntnisse über Stichprobenverfahren, Stichprobenverteilungen und Standardfehler sind die Schlüssel zum Verständnis deskriptiver Inferenz.¹ Wie im letzten Abschnitt beschrieben, ist der Standardfehler die Standardabweichung der Stichprobenverteilung. Wie ebenfalls beschrieben, ist die Stichprobenverteilung ein theoretisches Konzept, das wir nicht direkt beobachten können. In der Praxis beobachten wir nur eine einzelne Stichprobe. Deswegen können wir den Standardfehler nicht messen, indem wir die Standardabweichung der Mittelwerte aus einer riesigen Anzahl von unabhängigen Stichproben berechnen, sondern wir müssen ihn aus einer einzelnen Stichprobe schätzen. Die einzigen Informationen, die uns hierzu vorliegen, sind die Variablen in unserem Datensatz und die Information, wie wir die Stichprobe gezogen haben. Die folgenden Abschnitte erläutern, wie diese Informationen zur Schätzung des Standardfehlers genutzt werden. Bitte laden Sie nun data1.dta in Ihren Speicher. . use data1, clear
1 Als deutschsprachige Einführung zur Stichprobentheorie empfehlen wir Kauermann und Küchenhoff (2010).
224 | 8 Grundlagen statistischer Inferenz 8.2.1 Standardfehler für einfache Zufallsstichproben Der Datensatz data1.dta enthält Informationen aus einer Befragung von 5.411 der ungefähr 82 Millionen deutschen Einwohner. Auch wenn die Befragten nicht aus einer einfachen Zufallsstichprobe stammen, tun wir der Einfachheit halber aber zunächst einmal so, als wäre dies der Fall. Wie könnten wir dann die Informationen in data1.dta nutzen, um den Standardfehler zu schätzen? Unser früheren Erläuterung des Zentralen Grenzwertsatzes folgend, ist der Standardfehler des Mittelwerts der Variablen X gleich der Standardabweichung jener Variablen in der Grundgesamtheit geteilt durch die Quadratwurzel der Anzahl der Beobachtungen in der Stichprobe. Folglich benötigen wir die Standardabweichung von X aus der Grundgesamtheit, die wir aber nicht kennen. Die beste Information über die Standardabweichung von X in der Grundgesamtheit, die uns zur Verfügung steht, ist die Standardabweichung von X in der Stichprobe. Mit ihr können wir den Standardfehler in direkter Analogie zum Zentralen Grenzwertsatz durch SD(X) ̂ = √ S.E.(X) n
(8.2)
schätzen. Dabei ist SD(X) die Standardabweichung von X in der Stichprobe (d.h. unsere Schätzung für σ, die Standardabweichung von X in der Grundgesamtheit). Daher können Sie den Standardfehler direkt aus der Ausgabe von summarize berechnen: . sum ybirth Variable
Obs
Mean
ybirth
5,411
1959.493
Std. Dev.
Min
Max
18.12642
1909
1992
. display r(sd)/sqrt(r(N)) .24641851
Unseren Daten zufolge schätzen wir demnach den Standardfehler des durchschnittlichen Geburtsjahres einer einfachen Zufallsstichprobe mit 5.411 Befragten aus der gesamten deutschen Bevölkerung auf 0,2464, oder in anderen Worten: Wenn wir eine große Anzahl einfacher Zufallsstichproben aus der deutschen Bevölkerung 2009 gezogen hätten, so würden deren Mittelwerte im Durchschnitt um ein Vierteljahr vom wahren Durchschnittswert in der Bevölkerung abweichen. Die Schätzung des Standardfehlers für den Mittelwert lässt sich auch direkt dem Output des Befehls mean entnehmen. Der Befehl berechnet den geschätzten Standardfehler des Stichprobenmittelwerts für eine Liste von Variablen. Wenn man den Befehl ohne weitere Optionen ausführt, so wird der Standardfehler für eine einfache Zufallsstichprobe ausgegeben. Daher reproduziert der Befehl in diesem Fall das oben per Hand ausgerechnete Ergebnis:
8.2 Deskriptive Inferenz
| 225
. mean ybirth Mean estimation
Number of obs Mean
ybirth
1959.493
Std. Err. .2464185
=
5,411
[95% Conf. Interval] 1959.01
1959.976
Der Befehl mean ist ein Beispiel für ein Modell- oder E-Typ-Befehl (vgl. Kap. 4). Stata hat viele solcher Modellbefehle. Diese haben gemeinsam, dass sie geschätzte Standardfehler für bestimmte Statistiken (auch Punktschätzer genannt) ausweisen. Sie teilen sich auch die Eigenschaft, dass sie in der Voreinstellung von einfachen Zufallsstichproben ausgehen. Diese Annahme ist aber nicht immer zutreffend. Im Gegenteil: Daten aus sozialwissenschaftlichen Umfragen sind nie einfache Zufallsstichproben. Dafür gibt es zwei Gründe: Erstens wird eigentlich fast immer ein anderes Stichprobenverfahren als die einfache Zufallsstichprobe verwendet und zweitens fehlen immer Daten von einigen Personen, die eigentlich zur Stichprobe gehören. Letzteres liegt einerseits daran, dass manche Personen nicht erreicht wurden oder sich weigerten, an der Umfrage teilzunehmen („Unit-Nonresponse“), andererseits daran, dass einige Befragte bestimmte Fragen nicht beantworten wollten („Item-Nonresponse“). Im Datensatz data1.dta waren beide Ursachen wirksam. Deswegen erläutern wir im Folgenden Methoden zur korrekteren Schätzung von Standardfehlern. 8.2.2 Standardfehler für komplexe Stichproben Beschränkungen bei der Durchführbarkeit und Kostenerwägungen führen in der Praxis zu anderen Stichprobendesigns als der einfachen Zufallsstichprobe. Stichproben, die keine einfachen Zufallsstichproben sind, nennen wir „komplexe“ Stichproben. Hinsichtlich der deskriptiven Inferenz gibt es drei Merkmale von Stichproben, die besonders wichtig sind, da sie entweder Ermittlungen des Punktschätzers oder des Standardfehlers oder beides beeinflussen: Klumpung (engl. clustering), Schichtung (engl. stratification) und disproportionale Auswahlwahrscheinlichkeit. Jedes dieser Merkmale entsteht als Folge spezifischer Stichprobendesigns. Deswegen müssen wir zunächst ein wenig über die grundlegenden Stichprobendesigns erfahren. 8.2.2.1 Typen komplexer Stichproben Klumpenstichproben Bei Klumpenstichproben (Clusterstichproben) werden die individuellen Untersuchungseinheiten nicht direkt ausgewählt. Vielmehr werden zunächst sog. Klumpen (Cluster) ausgewählt, innerhalb derer dann alle Einheiten beobachtet werden. Ein klassischer Fall einer Klumpenstichprobe ist eine Stichprobe von Schulklassen, innerhalb derer alle Schüler beobachtet werden. Ein anderes Beispiel sind Stichproben von Adressen, bei denen alle dort ansässigen Personen befragt werden. Klumpen-
226 | 8 Grundlagen statistischer Inferenz stichproben werden an Stelle von einfachen Zufallsstichproben benutzt, wenn kein Verzeichnis der einzelnen Untersuchungseinheiten verfügbar ist, wohl aber eines der Klumpen.
Zwei- und mehrstufige Stichproben Die zweistufige Stichprobe ist der Klumpenstichprobe sehr ähnlich. Während wir bei der Klumpenstichprobe alle Einheiten innerhalb zuvor ausgewählter Cluster beobachten, zieht man bei der zweistufigen Stichprobe innerhalb der Cluster eine zweite Stichprobe, um die Untersuchungseinheiten auszuwählen. Die im ersten Schritt ausgewählten Cluster werden als „primäre Stichprobeneinheiten“ (engl. primary sampling unit, PSU) bezeichnet. Die Untersuchungseinheiten innerhalb der PSUs werden entsprechend „sekundäre Stichprobeneinheiten“ (engl. secondary sampling unit, SSU) genannt. PSUs können sowohl große Einheiten, wie Wahlkreise oder Häuserblocks, als auch kleine Einheiten, wie zum Beispiel Haushalte, darstellen. Eine SSU aus einer Stichprobe von Haushalten könnte dabei eine einzelne Person sein, die aus einem Haushalt ausgewählt wurde. Wenn sich – was meist der Fall ist – die Beobachtungen innerhalb der PSUs untereinander ähnlicher sind als die Beobachtungen unterschiedlicher PSUs, spricht man von „Verklumpung“ (engl. clustering). Eine weitere wichtige Eigenschaft von zweistufigen Stichprobendesigns ist, dass die potentiellen Untersuchungseinheiten der Grundgesamtheit oft nicht die gleiche Auswahlwahrscheinlichkeit aufweisen. Das zeigt sich z.B. an der Tatsache, dass Bewohner von Einpersonenhaushalten mit Sicherheit ausgewählt werden, wenn ihr Haushalt ausgewählt wurde, während dies für Bewohner größerer Haushalte nicht unbedingt der Fall ist. Wählt man aus jeder PSU genau eine Untersuchungseinheit, so beträgt die Auswahlwahrscheinlichkeit einer Person aus einer PSU der Größe k genau 1/k. Daraus folgt, dass Mitglieder von großen PSUs eine kleinere Wahrscheinlichkeit haben, in die Stichprobe zu gelangen, als diejenigen kleiner PSUs. Um gültige Schlussfolgerungen über die Grundgesamtheit machen zu können, müssen die Daten mit dem Kehrwert der Auswahlwahrscheinlichkeit gewichtet werden. Mehrstufige Stichproben sind Verallgemeinerungen der zweistufigen Stichprobe. Betrachten wir als Beispiel folgendes dreistufiges Stichprobendesign: Erstens wählt man eine Gemeinde aus einer Liste von Gemeinden aus, zweitens wählt man innerhalb dieser Gemeinden Adressen aus einer Adressenliste aus, und drittens wählt man an den ausgewählten Adressen eine der dort ansässigen Personen aus. Häufig werden die mehrstufigen Stichproben auch mit Klumpenstichproben kombiniert. In unserem Beispiel wäre das der Fall, wenn aus der ausgewählten Adresse alle dort ansässigen Personen ausgewählt würden.
8.2 Deskriptive Inferenz
| 227
Probability proportional to size Wissenschaftler haben oft ein Interesse daran, dass eine ausreichende Anzahl bestimmter Untersuchungseinheiten, die sie für besonders wichtig erachten, in ihrer Stichprobe enthalten ist. So werden zum Beispiel bei Unternehmensbefragungen mit Sicherheit große Unternehmen mit hohen Erträgen ausgewählt. Analog werden bei mehrstufigen Stichproben einige Städte ausgewählt, weil sie sehr groß sind und Forscher zumindest einige Menschen von dort in ihrer Stichprobe enthalten haben wollen. Eine häufig zur Anwendung kommende Methode, um die Wichtigkeit großer Einheiten zu berücksichtigen, ist die Stichprobenziehung mit zur Größe proportionaler Auswahlwahrscheinlichkeit (engl. probability proportional to size, PPS). Wie Sie gleich sehen werden, benötigt man für diese Technik Informationen über die Anzahl der Untersuchungseinheiten innerhalb jeder PSU. Stellen Sie sich vor, Sie hätten eine Liste aller deutschen Gemeinden und ihrer Einwohnerzahl. Einige dieser Gemeinden sind ziemlich groß – Berlin, zum Beispiel, hatte 2009 3.442.675 Einwohner – während andere eher winzig sind; die kleinste deutsche Gemeinde, Dierfeld in Rheinland-Pfalz, hatte 2009 nur acht Einwohner.² Deutschland als Ganzes hatte in diesem Jahr 81.802.257 Einwohner. Wenn wir die Gemeinden proportional zu ihrer Größe auswählen, so muss die Auswahlwahrscheinlichkeit für Berlin 4,2 % betragen und diejenige für Dierfeld 9, 8×10−6 %: . di 3442675/81802257 .04208533 . di 8/81802257 9.780e-08
Stellen Sie sich nun vor, dass wir zunächst die Gemeinden proportional zu ihrer Größe auswählen und danach, sagen wir, sechs Einwohner in jeder Gemeinde ziehen. Die kombinierte Auswahlwahrscheinlichkeit der Einwohner aus Berlin und Dierfeld wäre dann das Produkt aus der Auswahlwahrscheinlichkeit der Gemeinde und der Auswahlwahrscheinlichkeit einer Person aus dieser Gemeinde. Für Berlin und Dierfeld ergäbe sich: . di 3442675/81802257 * 6/3442675 7.335e-08 . di 8/81802257 * 6/8 7.335e-08
Die Auswahlwahrscheinlichkeit ist für Berliner und Dierfelder also identisch. Anders als die meisten zweistufigen Stichproben haben die Untersuchungseinheiten in PPS-Stichproben jeweils die gleichen Auswahlwahrscheinlichkeiten, weisen aber sehr wohl den Klumpeneffekt auf.
2 Das deutsche Gemeindeverzeichnis finden Sie unter http://www.destatis.de.
228 | 8 Grundlagen statistischer Inferenz In der Praxis ist es üblich, dass mehrstufige Stichproben ein PPS-Element auf einer der Stufen benutzen.
Schichtenstichprobe Bei einer Schichtenstichprobe wird die Grundgesamtheit zunächst in Untergruppen („Schichten“) aufgeteilt und dann für jede dieser Gruppen eine Stichprobe gezogen. Auf den ersten Blick scheint dies dem zweistufigen Verfahren zu entsprechen, der Unterschied besteht jedoch darin, dass bei der Schichtenstichprobe eine Stichprobe aus jeder Schicht gezogen wird, während die zweistufige Stichprobe im ersten Schritt einige, aber nie alle PSUs auswählt. Die Ziehung einer Schichtenstichprobe ist das typische Verfahren für Stichproben der Bevölkerung der Europäischen Union, bei denen in jedem Land eine getrennte Zufallsstichprobe gezogen wird. Schichtenstichproben finden aber auch dann Anwendung, wenn Forscher sichergehen wollen, dass genug Beobachtungen aus jeder Schicht vorhanden sind. Das GSOEP, das wir für data1.dta benutzt haben, ist ein Beispiel dafür. Für das GSOEP wurden getrennte Stichproben für Ost- und Westdeutschland sowie innerhalb Westdeutschlands getrennte Stichproben für Deutsche und Ausländer verwendet. Bei all dem ist zu berücksichtigen, dass Schichtenstichproben keine Alternative zu den oben genannten Verfahren sind. Vielmehr geht es darum, innerhalb jeder Schicht eines der oben genannten Verfahren anzuwenden; es muss also nicht für jede Schicht das gleiche Verfahren verwendet werden.
8.2.2.2 Stichprobenverteilungen für komplexe Stichproben Oben haben wir betont, dass Klumpung, Schichtung und ungleiche Auswahlwahrscheinlichkeiten Einfluss auf Punktschätzungen und ihre Standardfehler haben. Dies illustriert Abbildung 8.2. Für die Darstellung haben wir Unterstichproben von etwa 100 der 5.411 Beobachtungen von data1.dta gezogen, genau so, wie wir es in Abschnitt 8.1.3 gemacht haben. Wir haben diesmal jedoch nicht nur eine einfache Zufallsstichprobe, sondern zusätzlich eine Klumpenstichprobe, eine zweistufige Stichprobe, eine PPS-Stichprobe und eine Schichtenstichprobe gezogen. Für jedes dieser Stichprobendesigns haben wir 1.000 Stichproben produziert und in jeder dieser Stichproben dann das durchschnittliche Geburtsjahr ermittelt. Die Grafik zeigt Kerndichteschätzer der Verteilung dieser Mittelwerte (d.h. die Stichprobenverteilung) für alle komplexen Stichprobenmethoden. Zum Vergleich wurde dabei jeweils die Stichprobenverteilung einer einfachen Zufallsstichprobe gleichen Umfangs eingezeichnet. Wenn ein Stichprobendesign zu einer unverzerrten Schätzung des Mittelwerts in der Grundgesamtheit führt, so wird die Spitze der Verteilung ungefähr auf der vertikalen Linie liegen, die den wahren Wert repräsentiert. Je stärker die Abweichung, desto größer ist die Verzerrung. Analog: Je breiter die Kurve – oder: je niedriger die Spitze –, desto geringer die Effizienz des Stichprobendesigns.
8.2 Deskriptive Inferenz
Twostage
Twostage (weighted)
PPS
Strata
Strata (weighted)
0
.05
.1
.15
.2
.25
0
.05
.1
.15
.2
.25
Cluster
| 229
1950
1955
1960
1965
19701950
1955
1960
1965
19701950
1955
1960
1965
1970
Mean year of birth
Abb. 8.2. Stichprobenverteilung des durchschnittlichen Geburtsjahres für verschiedene komplexe Stichprobenverfahren (schwarze Linien) im Vergleich zu äquivalenten einfachen Zufallsstichproben (graue Linien). Do-File: ansamples.do
–
–
– –
–
Die wichtigsten Befunde aus der Grafik sind: Die Stichprobenverteilungen unterscheiden sich zwischen den Stichprobendesigns. Deswegen ist es nicht möglich, den Standardfehler für alle Methoden mit denselben Formeln zu ermitteln. Zwei Stichprobendesigns führen zu verzerrten Schätzungen des Mittelwerts der Grundgesamtheit: die zweistufige Stichprobe (große Verzerrung) und die Schichtenstichprobe (kleine Verzerrung). In beiden Fällen kann die Verzerrung aber durch eine gewichtete Schätzung der Stichprobenmittelwerte ausgeglichen werden. Dies wird im nächsten Abschnitt weiter erläutert. Die Gewichtung der Stichproben mit verzerrten Schätzungen beseitigt die Verzerrung, dies jedoch auf Kosten steigender Ineffizienz (d.h. größerer Standardfehler). Klumpenstichproben besitzen häufig größere Standardfehler, da sich die Fälle innerhalb des Klumpens mehr ähneln. Deswegen werden bei gleicher Stichprobengröße weniger Informationen aus einer Klumpenstichprobe gewonnen als aus einer einfachen Zufallsstichprobe. Schichtenstichproben haben kleinere Standardfehler als einfache Zufallsstichproben, wenn sich die untersuchte Variable zwischen den Schichten unterscheidet. Das war hier nicht der Fall. In der Praxis sind Schichtenstichproben meist auch Stichproben mit ungleicher Auswahlwahrscheinlichkeit zwischen den Schichten. Der Zugewinn an Effizienz geht als Folge der notwendigen Gewichtung daher meist wieder verloren (was man ebenfalls in der Grafik sehen kann).
230 | 8 Grundlagen statistischer Inferenz 8.2.2.3 Die svy-Befehle Die Darstellung der Methoden zur Schätzung von Standardfehlern für komplexe Stichproben ist jenseits dessen, was wir in diesem Buch behandeln können; wir verweisen daher auf Valliant et al. (2012). Nachfolgend wollen wir Ihnen aber zeigen, wie man mit Stata auch für Daten aus komplexen Stichproben korrekte Standardfehler schätzen kann. Dabei beschränken wir uns auf die Schätzung durch die sog. „TaylorLinearization“. Weitere implementierte Methoden sind „Bootstrapping“, „Balanced Repeated Replication“ und „Jackknife“. Da bei den meisten praktischen Anwendungen die Taylor-Linearization ausreichen dürfte, verweisen wir für die anderen Methoden auf Kreuter und Valliant (2007). Der Umgang mit komplexen Stichproben erfolgt in zwei Schritten. Beim ersten Schritt wird der Datensatz als aus einer komplexen Stichprobe stammend deklariert. Beim zweiten Schritt werden die jeweiligen statistischen Befehle mit dem Präfix svy versehen. Der Befehl zur Deklaration des Datensatzes als komplexe Stichprobe ist svyset. Hier werden die Variablen angegeben, die das komplexe Stichprobendesign beschreiben, und die Methode zur Schätzung des Standardfehlers eingestellt. Eine vereinfachte Version des Syntaxdiagramms von svyset ist svyset [ psu ] [ weight ] [ , strata(varname) vce(vcetype) ]
Die Bestandteile des Syntax-Diagramms haben folgende Bedeutung: – psu ist ein Platzhalter für die Variable, in der PSUs eindeutig identifiziert werden, – [ weight ] steht stellvertretend für den Namen der Variablen, die den Kehrwert der Auswahlwahrscheinlichkeit enthält, – strata(varname) enthält den Namen der Variablen, welche die Schichten einer Schichtenstichprobe eindeutig identifiziert, und – vce(vcetype) dient zur Auswahl der Methode zur Schätzung des Standardfehlers. Die Taylor-Linearization ist die Voreinstellung, die wir hier auch beibehalten. Lassen Sie uns die Deklaration einer komplexen Stichprobe anhand des Datensatzes data1.dta illustrieren. Um dies möglichst praxisnah zu tun, verwenden wir Informationen über das Stichprobendesign der Teile des GSOEP, die wir für unseren Übungsdatensatz verwendet haben.³ Die Beobachtungen in unserem Datensatz stammen aus fünf unabhängig voneinander gezogenen Stichproben: – A Westdeutsche (1984) – B Ausländer, die aus der Türkei, Italien, Spanien, dem ehemaligen Jugoslawien oder Griechenland nach Westdeutschland eingewandert sind (1984) – C Ostdeutsche (1990)
3 Die Datei data1.dta enthält nur eine Teilmenge des eigentlichen GSOEP und wurde zudem aus Datenschutzgründen ein wenig abgeändert. Das gesamte GSOEP umfasst weitere Stichproben. Die nachfolgenden Schätzungen sind daher keine gültigen Schätzungen für die deutsche Bevölkerung.
8.2 Deskriptive Inferenz
– –
| 231
D Einwanderer aus Osteuropa (1994/95) F Menschen mit Wohnsitz in Deutschland (2000)
Die Information, aus welcher Stichprobe die Beobachtung stammt, ist in der Variable sample gespeichert. Sie wird für die Option strata() des svyset-Befehls verwendet. Für alle Teilstichproben, außer einer, wurde ein zweistufiges Stichprobendesign in Kombination mit einem PPS-Design verwendet. Auf der ersten Stufe wurden geografische Cluster (je nach Stichprobe Wahlbezirke oder Gemeinden) ausgewählt; sie bilden die primären Stichprobeneinheiten. Der Identifikator für die primären Stichprobeneinheiten in unserem Datensatz ist die Variable psu. Auf der zweiten Stufe wurden Haushalte ausgewählt, innerhalb derer dann alle Personen, die der Grundgesamtheit zugehören, befragt wurden. Mit diesen Informationen haben wir bereits fast alle wesentlichen Merkmale der Stichprobe benannt. Ein Problem bereitet uns allerdings die GSOEP-Stichprobe D („Einwanderer“): Anders als bei den anderen Stichproben, wurde für sie kein mehrstufiges Verfahren verwendet. Wenn man einer Schicht keine oder nur eine primäre Stichprobeneinheit zugewiesen hat, wird Stata für diese keinen Standardfehler ausgeben. Dies lässt sich aber bereinigen, indem man die einstufige Schicht mit einer anderen kombiniert, bei der ein mehrstufiges Verfahren angewendet wurde. Wir machen das, indem wir die Stichprobe D mit der Stichprobe B kombinieren: . gen sampleR = sample . replace sampleR = 2 if sample==4
Die Deklaration der komplexen Stichprobe mit svyset sieht danach wie folgt aus: . svyset psu, strata(sampleR)
Nachdem wir die komplexe Stichprobe definiert haben, können wir nun beliebige E-Typ-Befehle mit dem Präfix svy versehen. In der Ausgabe des Modellbefehls findet man dann neben der gewünschten Statistik die Standardfehler unter Berücksichtigung des komplexen Stichprobendesigns. Darüber hinaus werden wesentliche Merkmale des deklarierten Stichprobendesigns ausgewiesen. Hier ein Beispiel mit dem ETyp-Befehl mean: . svy: mean ybirth (running mean on estimation sample) Survey: Mean estimation Number of strata = Number of PSUs =
4 515
Mean ybirth
1959.493
Number of obs = Population size = Design df = Linearized Std. Err. .3750048
5,411 5,411 511
[95% Conf. Interval] 1958.756
1960.23
232 | 8 Grundlagen statistischer Inferenz Wie bereits erwähnt, führen Schichtenstichproben häufig zu ungleichen Auswahlwahrscheinlichkeiten. Das ist auch beim GSOEP nicht anders. Der Datensatz wird daher mit der Variable design ausgeliefert, die die reziproke Auswahlwahrscheinlichkeit für jeden Befragten angibt. In data1.dta haben wir diese Variable in dweight umbenannt. Wenn wir diese Gewichtungsvariable beim svyset-Befehl mit angeben, so werden auch die ungleichen Auswahlwahrscheinlichkeiten bei der Schätzung berücksichtigt. Beachten Sie, dass jeder neue svyset-Befehl die Definitionen einer vorangegangenen Verwendung komplett löscht. Sie müssen daher immer alle Aspekte der komplexen Stichprobe in ihrem Befehl aufführen. . svyset psu [pweight=dweight], strata(sampleR) pweight: VCE: Single unit: Strata 1: SU 1: FPC 1:
dweight linearized missing sampleR psu
. svy: mean ybirth (running mean on estimation sample) Survey: Mean estimation Number of strata = Number of PSUs =
4 515
Mean ybirth
1958.894
Number of obs = Population size = Design df = Linearized Std. Err. .4092376
5,411 60,039,280 511
[95% Conf. Interval] 1958.09
1959.698
Das Ergebnis der Berücksichtigung der unterschiedlichen Auswahlwahrscheinlichkeiten ist eine kleine Änderung beim geschätzten Mittelwert, eine leichte Erhöhung des Standardfehlers und, in der oberen rechten Ecke, eine deutliche Erhöhung der geschätzten Größe der Grundgesamtheit. Wenn Sie die obigen Ergebnisse mit den Schätzungen vergleichen, bei denen die komplexe Stichprobe gänzlich ignoriert wurde (S. 225), sehen Sie die Effekte des Stichprobendesigns. Mit Berücksichtigung des komplexen Stichprobendesigns beträgt der Standardfehler für ybirth 0,4092376, bei Annahme einer einfachen Zufallsstichprobe dagegen nur 0,2464185. Der Standardfehler der geschichteten zweistufigen Klumpenstichprobe ist also um das 0, 4092376/0, 2464185 = 1, 6607422fache größer als der Standardfehler einer vergleichbaren einfachen Zufallsstichprobe. Im Allgemeinen wird das Ergebnis einer Division des Standardfehlers einer komplexen Stichprobe mit dem Standardfehler einer gleich großen einfachen Zufallsstichprobe „Designeffekt“ (DEFT) genannt. Wenn man einen Estimation-Befehl mit dem svy-Präfix ausgeführt hat, lassen sich diese Designeffekte mit estat effects ausgeben:
8.2 Deskriptive Inferenz
| 233
. estat effects Mean ybirth
1958.894
Linearized Std. Err. .4092376
DEFF
DEFT
2.71392
1.6474
Neben dem gerade erläuterten Designeffekt DEFT zeigt der Befehl noch einen zweiten Designeffekt, DEFF. Dieser ist das Quadrat von DEFT und gibt an, um wie viel größer eine komplexe Stichprobe sein müsste, um die gleiche Schätzgenauigkeit einer einfachen Zufallsstichprobe zu erhalten. Der Wert von 2,71392 in unserem Beispiel sagt uns, dass unsere Klumpenstichprobe fast um den Faktor 3 hätte größer sein müssen als eine einfache Zufallsstichprobe, um dieselbe Effizienz zu erreichen. Generell gilt, ein Designeffekt von eins bedeutet, dass die komplexe Stichprobe denselben Standardfehler wie die einfache Zufallsstichprobe produzieren würde. Der Designeffekt, den wir hier beobachten, ist sehr groß, was heißt, dass alle Aussagen über die Genauigkeit unserer Schätzungen sowie die darauf aufbauenden Konfidenzintervalle oder Signifikanztests (vgl. Abschn. 8.2.4) ziemlich nutzlos sind, wenn wir die komplexe Natur der GSOEP-Daten ignorieren.
8.2.3 Standardfehler bei fehlenden Daten Bisher haben wir uns nur mit Situationen beschäftigt, in denen die Stichprobe wie geplant gezogen werden konnte. Das heißt, alle ausgewählten Stichprobeneinheiten werden auch beobachtet. In der Praxis wird dies selten gelingen, und wenn die Beobachtungen mit einer Bevölkerungsumfrage erfolgen, dann gelingt dies eigentlich nie. Häufig verweigern Zielpersonen die Teilnahme an der Umfrage oder sind an der angegebenen Adresse nicht mehr ansässig oder aus anderen Gründen nicht erreichbar. Zudem kommt es vor, dass einige ausgewählte Untersuchungseinheiten zwar an der Umfrage teilnehmen, aber bei bestimmten Fragen die Antwort verweigern. Wenn ausgewählte Einheiten aus irgendeinem Grund aus der Stichprobe herausfallen, so nennen wir das einen vollständigen Ausfall („Unit-nonresponse“). Wenn uns lediglich bestimmte Informationen einer bestimmten Variablen fehlen, dann nennen wir das einen partiellen Ausfall („Item-Nonresponse“). Lassen Sie uns hier mit dem Unit-Nonresponse beginnen.
8.2.3.1 Unit-Nonresponse und Repräsentativitätsgewichte Unit-Nonresponse verringert die Anzahl der Beobachtungen, die zur Schätzung einer Statistik herangezogen werden können. Der Nenner auf der rechten Seite von Gleichung (8.2) auf Seite 224 wird folglich kleiner, so dass sich der Standardfehler erhöht. Noch problematischer ist freilich, wenn Unit-Nonresponse mit der Statistik korreliert
234 | 8 Grundlagen statistischer Inferenz ist, die wir schätzen wollen. Zum Beispiel kommt es häufig vor, dass Personen über einer gewissen Altersgrenze seltener an einer Umfrage teilnehmen als jüngere. Dadurch wird der Anteil von Personen über diesem Alter in der Stichprobe geringer als in der Grundgesamtheit. Wäre dies der Fall, so würde das durchschnittliche Geburtsjahr der Grundgesamtheit mit der Stichprobe zu niedrig eingeschätzt. Die gebräuchlichste Methode, Unit-Nonresponse zu begegnen, sind Gewichte aus einer sog. „Randverteilungsanpassung“; im Englischen wird in diesem Zusammenhang (uneinheitlich) von „Post-Stratification-Weights“ gesprochen, wir werden dagegen im Folgenden etwas vereinfachend von „Repräsentativitätsgewichten“ sprechen. In Abschnitt 8.2.2.1 haben wir gezeigt, dass die Auswahlwahrscheinlichkeit von zweistufigen Stichproben häufig nicht für alle Einheiten der Grundgesamtheit dieselbe ist. Um dieses Problem zu lösen, erzeugten wir eine Variable, die den Kehrwert der Auswahlwahrscheinlichkeit enthielt und haben diese als Gewicht bei der Berechnung unserer Statistiken benutzt. Ganz ähnlich funktionieren auch die Repräsentativitätsgewichte. Nehmen Sie an, Sie wüssten, dass Personen, die mindestens 70 sind, mit einer Wahrscheinlichkeit von, sagen wir, 50 % an einer Umfrage teilnehmen, und Personen unter 70 mit einer Wahrscheinlichkeit von 75 %. In diesem Fall könnten wir ein Repräsentativitätsgewicht erstellen, das den Kehrwert der Teilnahmewahrscheinlichkeit enthält: . gen postweights = 1/0.5 if (2009-ybirth) >= 70 . replace postweights = 1/0.75 if (2009-ybirth) < 70
Die Multiplikation der Auswahlwahrscheinlichkeit mit der Teilnahmewahrscheinlichket ergibt die Wahrscheinlichkeit, tatsächlich beobachtet zu werden. Entsprechend gibt die Multiplikation des Repräsentativitätsgewichts (postweight) mit dem Designgewicht (dweight) den Kehrwert der Beobachtungswahrscheinlichkeit. Gewichtet man die Daten mit dem Produkt der beiden Gewichte, so korrigiert man folglich sowohl die Unterschiede in der Auswahlwahrscheinlichkeit als auch die Unterschiede in der Teilnahmebereitschaft: . gen bothweights = dweight * postweights . mean ybirth [pweight = bothweights]
Das Problem der Repräsentativitätsgewichte ist natürlich, dass die Teilnahmewahrscheinlichkeit nicht direkt beobachtbar ist. Anders als die Auswahlwahrscheinlichkeit, die sich unmittelbar aus der Ziehungsmethode ergibt, hängt die Teilnahmewahrscheinlichkeit in letztlich unbekannter Weise von den Eigenschaften der Zielperson und der spezifischen Situation, in der sie kontaktiert wird, ab. Dem Wissenschaftler bleibt daher nicht viel anderes übrig, als die Teilnahmewahrscheinlichkeit anhand der sehr begrenzten Informationen, die ihm zur Verfügung stehen, abzuschätzen. Wie das am besten zu geschehen hat, ist Gegenstand eines ganzen Forschungszweiges und sprengt den Rahmen dieses Buches. Die gute Nachricht ist jedoch, dass viele Anbieter von Datensätzen die diversen vorgeschlagenen Methoden nutzen und die Gewich-
8.2 Deskriptive Inferenz
| 235
tungsvariablen in ihren Datensätzen mitliefern. Dies gilt auch für das GSOEP, das die Variable w1110109 enthält, die den Kehrwert der Beobachtungswahrscheinlichkeit im Jahr 2009 enthält. Der Einfachheit halber haben wir diese Variable in xweight umbenannt. Hier sehen Sie, wie man diese Variable als Gewicht verwendet. . svyset psu [pweight=xweight], strata(sampleR) pweight: VCE: Single unit: Strata 1: SU 1: FPC 1:
xweights linearized missing sampleR psu
. svy: mean ybirth, noheader (running mean on estimation sample) Mean ybirth
1959.616
Linearized Std. Err. .5040505
[95% Conf. Interval] 1958.626
1960.606
8.2.3.2 Item-Nonresponse und multiple Imputation Prinzipiell sind die Konsequenzen von Unit-Nonresponse und Item-Nonresponse dieselben: Der Standardfehler erhöht sich, da Beobachtungen verlorengehen, und die Statistiken der analysierten Variablen werden verzerrt, wenn die Ausfallwahrscheinlichkeit mit der interessierenden Variablen korreliert. Dennoch unterscheidet sich die Herangehensweise zur Lösung des Problems fundamental. Das liegt daran, dass zu einer Person, die nur eine einzige Frage nicht beantworten wollte, noch immer Informationen aus den anderen Fragen zur Verfügung stehen. Diese kann man nutzen, um die fehlende Angaben nachträglich zu schätzen und der Person zuzuschreiben (zu imputieren). Lassen Sie uns zunächst ein wenig fiktive Realität erschaffen: Wir erstellen eine neue Variable, die der Variablen ybirth gleicht, außer, dass ihr einige Werte fehlen (es also zu Item-Nonresponse kommt). Die fehlenden Werte werden so generiert, dass deren Wahrscheinlichkeit mit dem Alter der Befragten ansteigt und gleichzeitig bei Frauen höher ist als bei Männern. Dazu erstellen wir eine Kopie von ybirth in der wir dann einige Werte löschen. Genauer: ybirth wird auf Missing gesetzt, wenn das Geburtsjahr kleiner ist als eine rechtsschiefe Verteilung einer zufälligen Variablen zwischen 1910 und 1991, wobei sich die Schiefe der Verteilung für Männer und Frauen unterscheidet: . gen ybirthmis = ybirth . replace ybirthmis = . if sex == 1 & (ybirth < (1910 + 81 * rbeta(1,3))) . replace ybirthmis = . if sex == 2 & (ybirth < (1910 + 81 * rbeta(1,6)))
In der neuen Variable fehlen 425 Beobachtungen mit systematisch höherem Durchschnittsalter als die übrig gebliebenen:
236 | 8 Grundlagen statistischer Inferenz . gen missing = mi(ybirthmis) . tab sex missing, sum(ybirth) nost Means and Frequencies of Year of birth Gender
missing 0
1
Total
Male
1962.5293 2286
1939.7893 299
1959.899 2585
Female
1960.2651 2712
1931.9123 114
1959.1214 2826
Total
1961.3007 4998
1937.615 413
1959.4929 5411
Verwendet man ybirthmiss an Stelle von ybirth zu Schätzung des durchschnittlichen Geburtsjahrs der deutschen Bevölkerung, so liegt das Ergebnis um zwei Jahre zu hoch: . svy: mean ybirthmis, noheader (running mean on estimation sample) Mean ybirthmis
1961.546
Linearized Std. Err. .4809631
[95% Conf. Interval] 1960.601
1962.491
Wie können wir dieses Ergebnis korrigieren? Eine Möglichkeit wäre, die fehlenden Werte in ybirthmis mit plausiblen Werten aufzufüllen. Der erste plausible Wert, der einem einfallen könnte, wäre das Durchschnittsjahr der Beobachtungen, die noch im Datensatz vorhanden sind. Wir haben diesen Wert ja mit dem letzten Befehl berechnet, so dass wir uns gleich daran machen können, diesen Wert zu imputieren. Dazu erzeugen wir eine neue Version der Geburtsjahres-Variablen, die die Werte von ybirthmis enthält, falls diese verfügbar sind, und andernfalls einfach den Durchschnitt von ybirthmis einzusetzen. Beachten Sie dabei, dass der Punktschätzer von mean – wie bei allen E-Typ-Befehlen (vgl. Kap. 4) – mit _b[ybirthmis] abgerufen werden kann. . gen imputed1 = cond(!mi(ybirthmis),ybirthmis,_b[ybirthmis])
In Übereinstimmung mit der Terminologie von [MI] intro substantive nennen wir Daten, in denen wir die fehlenden Werte mit plausiblen Werten ersetzt haben, Imputationen. Wenn wir unsere Imputation (die Variable imputed1) benutzen, um das durchschnittliche Geburtsjahr in Deutschland im Jahr 2009 erneut zu schätzen, so stellen wir fest, dass sich die Schätzung nicht verändert, während sich der Standardfehler deutlich verringert:
8.2 Deskriptive Inferenz
| 237
. svy: mean ybirth imputed1, noheader (running mean on estimation sample) Mean ybirth imputed1
Linearized Std. Err.
1959.616 1961.546
.5040505 .4453407
[95% Conf. Interval] 1958.626 1960.671
1960.606 1962.421
Die einfache Mittelwertimputation verfehlt also einerseits das Ziel, den verzerrten Mittelwert zu korrigieren, und führt andererseits auch noch zu einer Unterschätzung der Standardfehler bzw. einer Überschätzung der Genauigkeit der Analyse. Letzteres kommt daher, dass die imputierten Werte bei der Analyse genauso wie die beobachteten Werte behandelt werden, obwohl sie eigentlich nur grobe Schätzungen sind. Was passiert, wenn wir nicht nur einen einzigen plausiblen Wert für die Ausfälle in ybirth wählen, sondern verschiedene Werte für unterschiedliche Gruppen? Unser Datensatz enthält die Variable heval, die aktuelle Selbsteinschätzung der Gesundheit. . tab heval Current Self-Rated Health Status
Freq.
Percent
Cum.
Very good Good Satisfactory Poor Bad
422 2,034 1,889 780 208
7.91 38.14 35.42 14.63 3.90
7.91 46.05 81.47 96.10 100.00
Total
5,333
100.00
Man könnte nun auf die Idee kommen, dass jene, die ihre Gesundheit als schlecht einschätzen, generell älter sind als jene, die sich sehr gesund fühlen. Betrachtet man die durchschnittlichen Geburtsjahre der verschiedenen Kategorien der Selbsteinschätzung der Gesundheit, . tab heval, summarize(ybirthmis) mis Current Self-Rated Health Status
Summary of ybirthmis Mean Std. Dev.
Freq.
Very good Good Satisfact Poor Bad Refusal Does not
1972.4522 1966.7335 1956.8259 1951.5218 1944.3118 1959.1667 1992
14.01109 15.009655 16.178493 15.91936 14.622767 20.044647 0
418 1,944 1,700 688 170 12 66
Total
1961.3007
17.322674
4,998
238 | 8 Grundlagen statistischer Inferenz so kann man sehen, dass das mittlere Geburtsjahr derer mit schlechtem Gesundheitszustand bei 1945 liegt, während diejenigen mit sehr gutem Gesundheitszustand durchschnittlich fast 30 Jahre später geboren wurden. Es wäre also durchaus plausibel, den Wert 1945 für jene zu imputieren, die ihre Gesundheit als schlecht bezeichnen, und 1972 für die Fälle zu imputieren, die ihren Gesundheitszustand als sehr gut einschätzen. Gesagt, getan: . egen mean =mean(ybirthmis), by(heval) . gen imputed2 = cond(!mi(ybirthmis),ybirthmis,mean)
Nun ermitteln wir das durchschnittliche Geburtsjahr mit dieser zweiten Imputation: . svy: mean ybirth imputed1 imputed2, noheader (running mean on estimation sample) Mean ybirth imputed1 imputed2
1959.616 1961.546 1961.158
Linearized Std. Err. .5040505 .4453407 .45418
[95% Conf. Interval] 1958.626 1960.671 1960.266
1960.606 1962.421 1962.05
Der Mittelwert hat sich leicht in Richtung des wahren Wertes bewegt, der Standardfehler wird jedoch weiter unterschätzt. Grundsätzlich lässt sich sagen, dass die Verzerrung in der Schätzung in dem Ausmaß verringert wird, wie die imputierten plausiblen Werte durchschnittlich korrekt sind. Wenn Sie also Gruppendurchschnitte von Variablen imputieren, die in einem hohen Maße mit dem Geburtsjahr korrelieren, so werden ihre plausiblen Werte besser und besser. Sie können sogar mehr als nur eine Variable zur Imputation der Werte verwenden, indem Sie entweder Durchschnitte für die Kombination von Gruppen errechnen oder indem Sie eine Variante der Modelle verwenden, die wir in Kapitel 9 und 10 dieses Buches beschreiben. Das Problem des unterschätzten Standardfehlers ist dagegen etwas schwieriger zu korrigieren. Der ausgegebene Standardfehler verringert sich, da unsere statistische Analyse den imputierten Werten dasselbe Maß an Zuverlässigkeit zuschreibt wie den beobachteten. Um dieses Problem zu lösen, müssen wir unserer Analyse mitteilen, dass die imputierten Werte für die Schätzung nicht genauso wichtig sein sollen, wie die tatsächlich beobachteten. Dies erreicht man mit der sogenannten „multiplen Imputation“. Die multiple Imputation ist ein fortgeschrittenes Thema, dessen ausführliche Behandlung den Rahmen dieses Buches sprengen würde. Die grundsätzliche Idee der Methode ist aber relativ simpel und wir wollen sie Ihnen kurz vorstellen. Zur weiteren Lektüre empfehlen wir [MI] intro substantial und die dort zitierte Literatur. Wie bereits gesagt, haben unsere bisherigen Analysen den imputierten Werten dieselbe Bedeutung beigemessen wie die beobachteten. Ein erster Schritt zur Verringerung der Bedeutung der imputierten Werte könnte es daher sein, ein wenig zufälliges Rauschen zu den imputierten Gruppendurchschnitten hinzuzufügen. Am ein-
8.2 Deskriptive Inferenz
| 239
fachsten wäre es, wenn man zu den Gruppendurchschnitten in der Variablen mean normal verteilte Zufallszahlen hinzuaddieren würde: . gen imputed3 = cond(!mi(ybirthmis),ybirthmis,mean+rnormal())
Bevor wir weitermachen, schauen wir gleich einmal, inwiefern das Zufallsrauschen die Schätzung des Mittelwertes und des Standardfehlers verändert: . svy: mean ybirth imputed1 imputed2 imputed3 , noheader (running mean on estimation sample) Mean ybirth imputed1 imputed2 imputed3
1959.616 1961.546 1961.158 1961.156
Linearized Std. Err. .5040505 .4453407 .45418 .4547494
[95% Conf. Interval] 1958.626 1960.671 1960.266 1960.263
1960.606 1962.421 1962.05 1962.05
Das ist nicht der Fall, jedenfalls nicht in nennenswertem Umfang. Der Grund für die kleine Änderung ist, dass wir durchschnittlich dieselben Werte wie zuvor imputiert haben. Außerdem behandelt die Analyse imputierte und beobachtete Werte ja immer noch gleich. Jedoch können wir jetzt, wo wir zufälliges Rauschen zu den imputierten Werten hinzugefügt haben, die Imputation mehrere Male wiederholen, wobei wir jedes mal neues Zufallsrauschen erzeugen. In jeder Wiederholung werden sich die Ergebnisse daher ein wenig verändern. Versuchen wir es mit fünf Wiederholungen: . forvalue i = 1/5 { 2. gen mi`i' = cond(!mi(ybirthmis),ybirthmis,mean+rnormal()) 3. } . svy: mean mi1-mi5, noheader (running mean on estimation sample) Mean mi1 mi2 mi3 mi4 mi5
1961.147 1961.16 1961.161 1961.153 1961.16
Linearized Std. Err. .4546549 .4544215 .4534704 .4542931 .4544258
[95% Conf. Interval] 1960.254 1960.267 1960.27 1960.26 1960.268
1962.041 1962.052 1962.052 1962.045 1962.053
Wir sehen jetzt, dass die Schätzung des durchschnittlichen Geburtsjahres nicht nur auf Grund der Stichprobe unsicher ist – diese Unsicherheit wird durch den Standardfehler in jeder Zeile des Outputs angegeben –, sondern auch durch die Unsicherheit in den imputierten Werten, die durch die kleinen Unterschiede zwischen den verschiedenen Mittelwerten zum Ausdruck gebracht wird. Je stärker sich die Mittelwerte voneinander unterscheiden, desto höher ist die Unsicherheit, die durch die Imputation eingebracht wird. Um die gesamte Unsicherheit der Schätzung des durchschnitt-
240 | 8 Grundlagen statistischer Inferenz lichen Geburtsjahres einzuschätzen, sollten wir beide Quellen der Unsicherheit berücksichtigen. Wie das geht, beantwortet die Fachliteratur zur multiplen Imputation (Rubin 1987; Schafer 1997). Wir wollen Ihnen hier nur an einem sehr einfachen Beispiel zeigen, wie uns Stata diese schwierigen Aufgabe abnimmt. In Stata erfolgt die Durchführung von multipler Imputation stets in zwei Schritten. Beim ersten Schritt weisen wir Stata an, mehrere Datensätze zu imputieren; dieser Schritt wird „Imputationsschritt“ genannt. Beim zweiten Schritt wird eine statistische Analyse mit jedem imputierten Datensatz durchgeführt und anhand der Ergebnisse Punktschätzer und Standardfehler ermittelt; dies ist der „Analyseschritt“. Der Imputationsschritt wird nochmals in drei Schritte unterteilt. Als Erstes müssen wir Stata mitteilen, wie die Datensätze mit den verschiedenen Imputationen organisiert werden sollen. Sie haben zwei Möglichkeiten, breit (engl. wide) oder lang (engl. long), wobei die letztere verschiedene Varianten hat. In unserem Fall ist diese Wahl nicht entscheidend, also benutzen wir mlong, was immer dann sinnvoll ist, wenn alle Stile möglich sind (vgl. [MI] styles). . mi set mlong
Beim zweiten Schritt geht es um die Registrierung von Variablen. Zunächst muss registriert werden, welche Variablen imputiert werden sollen. In unserem Fall ist das nur ybirthmis. Wir geben daher Folgendes ein: . mi register imputed ybirthmis
Außerdem ist es empfehlenswert, Variablen, die nicht imputiert werden sollen und deren Werte in keiner Weise von den zu imputierenden Variablen abhängen, als „regular“ zu registieren. In unserem Beispiel sind das alle Variablen außer ybirthmis. Deshalb geben wir ein: . mi register regular persnr-xweights
Schließlich gibt es sogenannte passive Variablen. Dies sind Variablen, die fest mit einer zu imputierenden Variablen verknüpft sind. Das Lebensalter ist z.B. mit dem Geburtsjahr verknüpft, genauso wie die Temperatur in Grad Celsius mit der Temperatur in Grad Fahrenheit. Hätten wir im Datensatz z.B. eine Altersvariable aus ybirthmis erstellt, so wäre dies ein Beispiel für eine passive Variable und wir hätten sie mit mi register passive als solche registrieren müssen. Der letzte Teilschritt des Imputationsschritts ist dann die eigentliche Erzeugung der multiplen Imputationen. Dafür müssen Sie Stata anweisen, wie die plausiblen Werte zu erstellen sind: Welche Variablen sollen benutzt werden, welche Imputationsmethode soll angewandt werden und wie viele imputierte Datensätze sollen erzeugt werden? Der Befehl mi impute ermöglicht es uns, all das mit einem Befehl anzugeben. Unser Beispiel benutzt die vorhergesagten Werte einer linearen Regression von ybirth auf sex und der Dummy-Variable heval (vgl. Kap. 9) zur Erzeugung der plau-
8.2 Deskriptive Inferenz
| 241
siblen Werte für die fehlenden Werte in ybirthmis. Die Option add(20) weist Stata an 20 Imputationen zu erzeugen. Beachten Sie auch, dass wir die fehlenden Werte in heval zu gültigen Werten recodiert haben, bevor wir mi impute eingegeben haben.⁴ . gen hevalR = heval (78 missing values generated) . replace hevalR = 6 if mi(heval) (78 real changes made) . mi impute regress ybirthmis = sex i.hevalR, add(20) Univariate imputation Linear regression Imputed: m=1 through m=20
Imputations = added = updated =
20 20 0
Observations per m Variable
Complete
Incomplete
Imputed
Total
ybirthmis
4998
413
413
5411
(complete + incomplete = total; imputed is the minimum across m of the number of filled-in observations.)
Wenn der Befehl mi impute ausgeführt ist, so ist der erste Schritt der multiplen Imputation erledigt. Die Ausgabe des Befehls sagt uns, dass wir mit mi impute 20 Imputationen für ybirthmis erstellt haben. Sie zeigt ebenfalls, dass in jeder Imputation 465 fehlende Werte imputiert wurden. Die imputierten Werte wurden unter die originalen Daten in die Variable ybirth geschrieben, so dass der Datensatz nun 6.343 + 20 ⋅ 465 = 15.643 Beobachtungen enthält. mi impute hat darüber hinaus die neuen Variablen mi_m, mi_id und mi_miss erzeugt. Diese werden im Analyseschritt benötigt. Der Analyseschritt der multiplen Imputation ist denkbar einfach. Es genügt, einem der Befehle, die in [MI] estimation aufgelistet sind, das Präfix [MI] mi estimate voranzustellen. Probieren wir das mit unserem Standardbeispiel: . mi estimate: svy: mean ybirthmis, noheader Multiple-imputation estimates Survey: Mean estimation
Imputations Number of obs
= =
20 5,411
Number of strata Number of PSUs
Population size =
80,858,869
DF adjustment: Within VCE type:
= =
4 515
Small sample Linearized Mean
ybirthmis
1961.183
Average RVI Largest FMI Complete DF DF: min avg max
Std. Err. .468537
= = = = = =
0.0304 0.0297 511 483.06 483.06 483.06
[95% Conf. Interval] 1960.262
4 Beachten Sie auch die Option force von mi impute.
1962.103
242 | 8 Grundlagen statistischer Inferenz Wie Sie sehen, sind die Ergebnisse, die wir für den Punktschätzer erhalten haben (den Durchschnitt von ybirthmis), in unserem Beispiel nicht besser als die Ergebnisse der einfachen Imputationsmethoden. Allerdings sind die Standardfehler jetzt wesentlich realistischer. Bezüglich der Punktschätzer ist zu sagen, dass deren Qualität wesentlich von der Plausibilität der imputierten Werte abhängt – hier unterscheidet sich die multiple Imputation in keiner Weise von der einfachen Imputation. Die Plausibilität der imputierten Werte hängt ihrerseits von den Informationen ab, von denen sie abgeleitet wurden. Je besser unser Wissen über die Gründe der fehlenden Werte, desto besser sind die Imputationen, und desto erfolgreicher ist die Korrektur der Verzerrung. In unserem Beispiel wurde der Ausfall durch ein Zusammenspiel von Geschlecht und Alter verursacht, der im Imputationsmodell nicht modelliert wurde; wie Interaktionsterme modelliert werden, wird in Abschnitt 9.4.2 beschrieben. Wichtiger ist jedoch, dass in unserem Beispiel die fehlenden Werte eine Funktion der zu imputierenden Variable selbst sind. In solchen Fällen ist es nahezu ausgeschlossen, ein Imputationsmodell zu entwickeln, bei dem die fehlenden Werte außer von den zur Imputation genutzten Variablen nur zufällig variieren.
8.2.4 Verwendungen für Standardfehler Im letzten Abschnitt haben Sie verschiedene Verfahren zur Schätzung des Standardfehlers kennengelernt. In diesem Abschnitt gehen wir davon aus, dass Sie den korrekten Standardfehler ermitteln konnten und stellen Ihnen zwei Verwendungsmöglichkeiten von Standardfehlern vor: Konfidenzintervalle und Signifikanztests.
8.2.4.1 Konfidenzintervalle Das Konfidenzintervall ist ein häufig genutztes Verfahren, um die Präzision oder die Zuverlässigkeit einer Statistik zum Ausdruck zu bringen. Zum Verständnis der Konfidenzintervalle sollten Sie sich nochmals vergegenwärtigen, dass die einzelnen Mittelwerte aus einer sehr großen Zahl von Zufallsstichproben eine Normalverteilung ergeben. Eine Annäherung an diese Normalverteilung haben Sie bereits in Abbildung 8.2 gesehen. Für die Dichte der Werte einer Normalverteilung gibt es eine Funktion, die „Wahrscheinlichkeitsdichtefunktion der Normalverteilung“. Diese lautet: f (x) = √
1
e−
(x−μ)2 2σ 2
, (8.3) 2πσ 2 wobei μ der unbekannte Mittelwert aller Stichprobenmittelwerte ist und σ die unbekannte Variation der Stichprobenmittelwerte (π ist die Zahl π ≈ 3, 141 …). Wie wir bereits erläutert haben, ist die beste Schätzung für die unbekannten Parameter μ und σ, die wir aus einer einzigen Stichprobe gewinnen können, der Stichpro-
8.2 Deskriptive Inferenz
| 243
benmittelwert und sein Standardfehler. Wenn wir diese Werte in die obere Formel einsetzen, so können wir uns eine Grafik einer hypothetischen Stichprobenverteilung mit den entsprechenden Parametern ausgeben. Verwenden Sie hierzu den Plottyp function, des Grafik-Typs twoway und tippen Sie die obige Funktion hinter das Gleichheitszeichen ein, wobei Sie die Werte 1959,6 und 0,504 von Seite 235 für μ und σ einsetzen und x zwischen, sagen wir, 1957,6 und 1961,6 variieren lassen.
0
.2
fx .4
.6
.8
. tw function > fx = 1/sqrt(2*_pi*.504^2) * exp((-(x-1959.6)^2)/(2*.504^2)) > , range(1957.6 1961.6) xline(1959.6)
1958
1959
1960
1961
1962
x
Die auf unsere Schätzungen für μ und σ basierende hypothetische Stichprobenverteilung legt nahe, dass das durchschnittliche Geburtsjahr in der Bevölkerung zwischen 1958 und 1961 liegt. Es muss jedoch klar sein, dass diese Aussage nur in soweit korrekt ist, als unsere Schätzung für μ und σ unverzerrt sind. Wenn dies der Fall ist gilt auch, dass 95 % der Intervalle von μ̂ − 1, 96 ⋅ σ̂ zu μ̂ + 1, 96 ⋅ σ̂ mit μ̂ und σ̂ die Schätzungen für die jeweiligen Parameter jeder Stichprobe, den wahren Parameter der Grundgesamtheit (Bevölkerung) enthalten. In unserem Fall können wir daher mit 95 % Sicherheit darauf vertrauen, dass das durchschnittliche Geburtsjahr für unsere Population zwischen . di 1959.6 - 1.96*0.504 1958.6122
und . di 1959.6 + 1.96*0.504 1960.5878
liegt. Das Intervall zwischen diesen beiden Zahlen ist das sogenannte 95 %-Konfidenzintervall. Beachten Sie die feinen Unterschiede in der Interpretation der Konfidenzintervalle. Wir sagen, dass 95 % der so gebildeten Intervalle den wahren Wert enthalten. Das
244 | 8 Grundlagen statistischer Inferenz Population average
1952
1954
1956
1958
1960
1962
1964
1966
1968
Abb. 8.3. Hundert 95 %-Konfidenzintervalle Do-File: grci.do
ist etwas anderes, als zu sagen, dass es eine 95-prozentige Wahrscheinlichkeit gibt, dass der wahre Wert innerhalb des Konfidenzintervalls liegt. Nur die erste Aussage ist korrekt. Die Abbildung 8.3 demonstriert den Unterschied zwischen den beiden Aussagen. Für die Grafik haben wir 100 einfache Zufallsstichproben mit 100 Beobachtungen aus der Grundgesamtheit von data1.dta gezogen. In jeder dieser Stichproben haben wir das 95 %-Konfidenzintervall gebildet. In der Abbildung wird jedes Konfidenzintervall mit einer horizontalen Linie dargestellt. Die sieben hervorgehobenen Konfidenzintervalle enthalten den tatsächlichen Wert nicht, das sind 7 % der Konfidenzintervalle. Auf lange Sicht werden 95 % der Konfidenzintervalle den tatsächlichen Wert enthalten, während 5 % dies nicht tun werden.
8.2.4.2 Signifikanztests In Stichprobendaten stellt sich oft die Frage, ob ein beobachteter Unterschied zwischen zwei Gruppen eine Folge der Stichprobenschwankungen ist, oder ob der Unterschied auch in der Grundgesamtheit sichtbar wäre. Oder man ermittelt eine bestimmte Statistik und fragt sich, ob diese wohl von Null verschieden wäre, wenn man sie in der Grundgesamtheit berechnen würde. Die Beantwortung derartiger Fragen ist Aufgabe von Signifikanztests. Im Rahmen der deskriptiven Inferenz geht es beim Signifikanztest stets um die Frage, wie wahrscheinlich es ist, dass wir in einer Stichprobe einen Wert von mindestens der beobachteten Größe erhalten, wenn der entsprechende Wert in der Grundgesamtheit Null wäre. Wenn diese Wahrscheinlichkeit unter einem bestimmten Schwellenwert liegt (auf den wir noch zu sprechen kommen), so spricht man davon, dass sich der Wert signifikant von Null unterscheidet – kurz: dass er „signifikant“ ist.
8.2 Deskriptive Inferenz
| 245
Bevor wir Signifikanztests ausführlich erläutern, müssen wir noch einen deutlichen Warnhinweis anbringen. In der angewandten Forschung werden die „signifikanten“ Ergebnisse häufig so dargestellt, als hätte man etwas sehr Wichtiges herausgefunden. Das ist aber ein Missverständnis. Tatsächlich gibt es ein lange Tradition der Kritik am Missbrauch von Signifikanztests unter Wissenschaftlern verschiedenster Disziplinen (statt weiterer Selvin 1970; Ziliak und McCloseky 2007; Läärä 2009). Seien Sie versichert, nicht alle signifikanten Ergebnisse sind bedeutsam und nicht alle nicht signifikanten Ergebnisse sind unwichtig. Wir raten dringend davon ab, inhaltliche Aussagen allein vom Ausgang von Signifikanztests abhängig zu machen. Einige unserer Beispiele unten werden das verdeutlichen.
Test eines Wertes gegen Null Die Logik des Signifikanztests wollen wir zunächst anhand eines einfachen Beispiels einführen. Bitte erzeugen Sie zunächst eine Variable, die den Altersunterschied zwischen dem Haushaltsvorsitzenden und dessen Partner wiedergibt. Die hierzu notwendigen Befehle werden im Abschnitt 5.5.2 ausführlich behandelt: . use data1, clear . by hhnr2009 (rel2head), sort: gen agediff=ybirth-ybirth[_n-1] if rel2head==2 . sum agediff Variable
Obs
Mean
agediff
1672
1.358852
Std. Dev.
Min
Max
5.168304
-27
33
Wie Sie sehen, gibt es in unserem Datensatz einen Altersunterschied von durchschnittlich mehr als einem Jahr zwischen den Haushaltsvorsitzenden und deren Partnern. Gleichzeitig sehen wir, dass diese Altersdifferenz stark schwankt – die Spanne reicht von 27 Jahre jünger bis 33 Jahre älter. Der erste Schritt eines Signifikanztests ist die Formulierung der sogenannten Nullhypothese. In unserem Fall lautet sie: „Im Jahr 2009 beträgt der durchschnittliche Altersunterschied zwischen den Haushaltsvorsitzenden und ihren Partnern null Jahre“.⁵ Lassen Sie uns nun annehmen, dass die Nullhypothese stimmt! Welche durchschnittlichen Altersunterschiede wären dann in unserer Stichprobe denkbar? Nun, wir haben bereits gelernt, dass die Stichprobenmittelwerte eine unendliche Anzahl von unabhängigen großen Stichproben eine Normalverteilung um den wahren Wert annehmen. Daher sollten, wenn unsere Nullhypothese stimmt, die Stichprobenmittelwerte um Null herum variieren. Wie stark variieren sie? Die beste Antwort auf diese Frage ist der Standardfehler für die Stichprobe, die uns vorliegt. Gehen wir der Einfachheit
5 Es handelt sich hier streng genommen um einen „paired t-test“. Genauso gut hätte man auch fragen können ob das mittlere Geburtsjahr aller Befragten von Null verschieden ist. Allerdings wäre der Test einer solchen Nullhypothese inhaltlich so absurd, dass wir dieses Beispiel hier bevorzugen.
246 | 8 Grundlagen statistischer Inferenz halber zunächst davon aus, wir hätten eine einfache Zufallsstichprobe gezogen und berechnen den Standardfehler mit . mean agediff Mean estimation
Number of obs Mean
agediff
1.358852
Std. Err. .126395
=
1,672
[95% Conf. Interval] 1.110942
1.606761
Unsere Schätzung für die Standardabweichung der Stichprobenmittelwerte ist 0,126. Bei Stichproben mit deutlich über 30 Untersuchungseinheiten können wir die erwartete Verteilung der Stichprobenmittelwerte mit Hilfe dieser Informationen in direkter Analogie zum letzten Abschnitt zeichnen.⁶ Zusätzlich zeichnen wir den hypothetischen wahren Wert für die Bevölkerung als durchgängige vertikale Linie ein, und den beobachteten Mittelwert unserer Stichprobe als gestrichelten Linie.
0
1
fx
2
3
. tw function > fx = 1/sqrt(2*_pi*.126^2) * exp((-(x-0)^2)/(2*.126^2)) > , range(-2 2) xline(0) xline(1.35882, lpattern(dash))
−2
−1
0 x
1
2
Die Grafik zeigt: Wenn es in der Grundgesamtheit im Schnitt keine Altersdifferenz zwischen den Haushaltsvorsitzenden und ihren Partnern gäbe, so müssten die meisten Stichproben der Größe, wie wir sie hier haben, eine sehr kleine durchschnittliche Altersdifferenz aufweisen. Tatsächlich sollten fast alle Stichproben Werte deutlich über -1 und unter 1 aufweisen. Der Durchschnitt, den wir in unserer Stichprobe berechnet haben –, hier angezeigt durch die gestrichelte Linie –, erscheint äußerst unwahrscheinlich. Wir können also wirklich ziemlich sicher sein, dass wir einen niedrigeren Mittelwert beobachtet hätten, wenn der wahre Wert tatsächlich bei Null gelegen hätte. 6 Bei kleineren Stichproben ist eine Anpassung nötig, auf die wir hier der Einfachheit halber verzichten. Näheres dazu erfahren Sie im folgenden Abschnitt
8.2 Deskriptive Inferenz
| 247
Wie sicher ist ziemlich sicher? Die Tatsache, dass es sich hier um eine Wahrscheinlichkeitsdichtefunktion handelt, erlaubt uns, eine numerische Antwort auf diese Frage. Die Wahrscheinlichkeit einen Wert von unter 1,359 zu beobachten entspricht der Fläche unter dem Grafen links der gestrichelten Linie. Formal ist dies das bestimmte Integral der Wahrscheinlichkeitsdichtefunktion von −∞ bis 1,359. Das klingt kompliziert, aber Stata hat eine eingebaute Funktion, die uns die Berechnung dieser Zahl erspart: normal(z). Allgemein gibt die Funktion die Wahrscheinlichkeit an, einen Wert unter z in einer Standardnormalverteilung (d.h. einer Normalverteilung mit einer Standardabweichung von eins) zu finden. Sie sollten die Funktion zunächst mit verschiedenen Werten für z ausprobieren. Beginnen wir mit z = 0: . di normal(0) .5
50 % der Werte einer Standardnormalverteilung sind kleiner als Null, oder anders formuliert: Die Wahrscheinlichkeit, in einer Standardnormalverteilung einen Wert unter Null zu finden, beträgt 50 %. Analog dazu betragen die Wahrscheinlichkeiten, Werte unter -1 und -2 zu erhalten, 16 % bzw. 2,3 %: . di normal(-1) .15865525 . di normal(-2) .02275013
Wir können die Funktion auch nutzen, um uns die Wahrscheinlichkeiten für Werte oberhalb eines bestimmten Wertes anzeigen zu lassen. Da alle Werte, die nicht unterhalb des Wertes liegen, über ihm liegen müssen, können wir uns die Gegenwahrscheinlichkeit zu Nutze machen. Das heißt, wir bekommen die gesuchte Wahrscheinlichkeit, indem wir das Ergebnis von normal(z) von 1 abziehen: . di 1- normal(-2) .97724987 . di 1- normal(2) .02275013
In einer Standardnormalverteilung beträgt die Wahrscheinlichkeit von Werten über -2 ungefähr 97,7 % und die Wahrscheinlichkeit von Werten über 2 beträgt ungefähr 2,3 %. Wie können wir die Funktion normal() benutzen, wenn die Stichprobenverteilung zwar normalverteilt ist, aber keine Standardabweichung von 1 hat? Dafür müssen Sie wissen, dass man jede Verteilung zu einer Verteilung mit einer Standardabweichung von 1 umskalieren kann. Hierfür wird jeder Wert der Verteilung durch die Standardabweichung der Ausgangsverteilung geteilt. In unserem Beispiel haben wir einen einzelnen Wert (1,359) aus einer Stichprobenverteilung mit einer Standardabweichung von 0,126. Wenn wir 1,359 durch 0,126 teilen, erhalten wir
248 | 8 Grundlagen statistischer Inferenz . di 1.359/0.126 10.785714
Der Wert 1,359 in einer Verteilung mit der Standardabweichung von 0,126 entspricht also dem Wert 10,786 in einer Verteilung mit einer Standardabweichung von 1. Das Ergebnis der Division eines Punktschätzers durch seinen Standardfehler wird üblicherweise als „Teststatistik“ bezeichnet. Die Teststatistik kann an Stelle der beobachteten Statistik verwendet werden. Anstatt die Wahrscheinlichkeit für Werte unter 1,359 in einer Normalverteilung mit der Standardabweichung von 0,126 zu prüfen, prüfen wir die Wahrscheinlichkeit für Werte unterhalb von 10,786 in einer Standardnormalverteilung. Damit können wir nun die Funktion normal() anwenden: . di normal(1.359/0.126) 1
Die Wahrscheinlichkeit, einen Wert unterhalb von 10,786 in einer Standardnormalverteilung zu beobachten ist praktisch 1. Deshalb ist auch die Wahrscheinlichkeit, einen Wert von 1,359 in einer Normalverteilung mit einer Standardabweichung von 0,126 zu erhalten praktisch 1. Entsprechend liegt die Wahrscheinlichkeit, einen Wert oberhalb von 1,359 zu beobachten, bei . di 1- normal(1.359/0.126) 0
Es ist also extrem unwahrscheinlich einen Wert zu beobachten, der so groß ist wie unserer, wenn der wahre Wert bei Null liegt. Deshalb sollten wir die Nullhypothese verwerfen. Im Jahr 2009 hatten Haushaltsvorstände und deren Partner in Durchschnitt nicht dasselbe Alter. Es ist übrigens gängige Praxis, die Nullhypothese immer dann zurückzuweisen, wenn die Wahrscheinlichkeit, einen Wert von mindestens der Größe der Teststatistik zu erhalten, unter 5 % liegt. Autoren schreiben dann häufig Formulierungen wie „der Wert ist signifikant auf dem 5 % Niveau“. Beachten Sie bei all dem die Rolle der Stichprobengröße. Wenn Sie denselben Mittelwert und dieselbe Standardabweichung wie in unserem Beispiel in einer einfachen Zufallsstichprobe mit 30 Untersuchungseinheiten beobachtet hätten, dann wäre der √ Standardfehler 5, 168/ 30 = 0, 944. Folglich würde die Teststatistik 1, 359/0, 944 = 1, 44 ergeben. Unter Annahme der Nullhypothese betrüge die Wahrscheinlichkeit, einen Wert dieser Größe zu erhalten, immerhin . di 1-normal(1.359/.944) .07498766
Obwohl dies immer noch recht niedrig ist, ist der Wert doch wesentlich höher als für unsere große Stichprobe und wäre nach der üblichen Praxis nicht mehr signifikant.
8.2 Deskriptive Inferenz
| 249
Sie lernen daraus, dass dieselben Werte für Mittelwert und Standabweichung in einer Stichprobe signifikant sein können und in einer anderen nicht. In unserem Beispiel haben wir einen einseitigen Test gemacht. Dieser ermittelt die Wahrscheinlichkeit für einen Wert oberhalb von z. Üblicher ist jedoch ein zweiseitiger Test, der die Wahrscheinlichkeit für einen Wert unterhalb von −z oder oberhalb +z errechnet. Sie würden einen zweiseitigen Test durchführen, wenn Sie zuvor keine begründete Hypothese über die Richtung der Altersdifferenz hätten. Wenn wir das Beispiel oben mit einer Stichprobengröße von 30 benutzen, so ist die Wahrscheinlichkeit, einen Wert zwischen −1, 359 und 1, 359 zu beobachten, gleich der Fläche unterhalb der Wahrscheinlichkeitsdichtefunktion zwischen den Werten −1, 359 und 1, 359.
0
.1
fx .2
.3
.4
. tw function > fx = 1/sqrt(2*_pi*.944^2) * exp((-(x-0)^2)/(2*.944^2)) > , range(-2 2) xline(0) xline(-1.359 +1.359, lpattern(dash))
−2
−1
0 x
1
2
Beachten Sie, wie viel breiter die Funktion jetzt für eine Stichprobengröße von 30 ist. Damit wir eine numerische Schätzung für die Fläche zwischen den beiden gestrichelten Linien erhalten, müssen wir die Fläche unterhalb von −1, 359 von der Fläche unterhalb 1, 359 abziehen. In Stata: . di normal(1.359/0.944) - normal(-1.359/0.944) .85002468
Wenn der durchschnittliche Altersunterschied zwischen den Haushaltsvorständen und ihren Partnern Null wäre, dann wäre die Wahrscheinlichkeit, einen Wert zwischen −1, 359 und 1, 359 in einer Stichprobe von 30 Fällen zu beobachten, 0,850; um die Wahrscheinlichkeit von Werten außerhalb des Intervalls [−1, 58; 1, 58] zu erhalten, müssen wir die Wahrscheinlichkeit für die Werte innerhalb des Intervalls [−1, 58; 1, 58] von 1 subtrahieren: . di 1 - (normal(1.359/0.944) - normal(-1.359/0.944)) .14997532
250 | 8 Grundlagen statistischer Inferenz Dies ist dasselbe wie die doppelte Wahrscheinlichkeit für Werte unter −1, 359: . di 2 * normal(-1.359/0.944) .14997532
Für die (fiktive) kleine Stichprobe ist die Wahrscheinlichkeit von Werten unter -1,359 oder über 1,359 nur knapp unter 0,15. Bei Gültigkeit der Nullhypothese erwarten wir also in fast 15 % der Stichproben durchschnittliche Altersdifferenzen in der Größe der tatsächlich beobachteten. Berurteilt man am Maßstab des üblichen Signifikanzniveaus von 5 % würden man die Nullhypohtese in diesem Fall nicht verwerfen. Nebenbei bemerkt: Wenn Sie dem Standard des 5 %-Niveaus folgen, wird die Nullhypothese eines zweiseitigen Tests in einer großen Stichprobe immer dann zurückgewiesen, wenn der absolute Wert der Teststatistik über 1,96 liegt, bzw. der beobachtete Punktschätzer etwa doppelt so hoch ist, wie sein Standardfehler. Bevor wir gleich zu einem praxisbezogeneren Beispiel kommen sei noch kurz erwähnt wie im Falle komplexer Stichproben vorzugehen ist. Dazu genügt es Mittelwert und Standardfehler unter Berücksichtigung der komplexen Stichprobenstruktur zu schätzen (vgl. S. 231): . . . .
gen sampleR = sample replace sampleR = 2 if sample==4 svyset psu [pweight=xweight], strata(sampleR) svy: mean agediff
Danach verfährt man analog. Zur Vermeidung von Rundungsungenauigkeiten verwenden wir hier die gespeicherten Ergebnisse des Befehls mean (vgl. Kap. 4): . di 2 * normal(-_b[agediff]/_se[agediff]) 5.895e-13
Mittelwertvergleiche mit zwei Gruppen Wenn Sie das Testen einer Nullhypothese verstanden haben, wird Ihnen das Testen von Unterschieden zwischen zwei Stichprobenmittelwerten keine größeren Probleme bereiten. Bei diesem Test heißt die Nullhypothese: „Die Differenz zwischen dem Mittelwert der Gruppe A und dem Mittelwert der Gruppe B ist Null“. Zum Testen der Hypothese berechnen wir die Differenz der beiden Mittelwerte und testen diese Differenz wie oben gegen Null. Nehmen wir als Beispiel den Altersunterschied zwischen Ost- und Westdeutschen. Ost- und Westdeutschland waren über lange Zeit hinweg verschiedene Staaten, mit verschiedenen Gesundheitssystemen, unterschiedlicher Familienpolitik und diversen anderen Faktoren, die sich auf die demografische Entwicklung ausgewirkt haben könnten. Andererseits gab es nach der Wiedervereinigung starke geografische Mobilität und inzwischen leben die Deutschen seit über 20 Jahren im selben poli-
8.2 Deskriptive Inferenz
| 251
tischen System. Es ist daher fraglich, ob ein Altersunterschied zwischen Ost- und Westdeutschland besteht, oder nicht. Schauen wir erst einmal, ob es einen Altersunterschied zwischen Ost- und Westdeutschland in unserer Stichprobe gibt: . generate east = state >= 11 if !mi(state) . tab east, sum(ybirth) Summary of Year of birth Mean Std. Dev. Freq.
east 0 1
1959.8282 1958.4773
18.140227 18.053304
4,068 1,343
Total
1959.4929
18.126422
5,411
Menschen, die in Westdeutschland leben, sind (nach unseren Daten) im Schnitt 1,35 Jahre älter als die Menschen in Ostdeutschland. Wie wahrscheinlich wäre es, dass wir in einer Stichprobe wie unserer einen solchen Unterschied beobachten, wenn die ost- und westdeusche Bevölkerung im Mittel gleich alt wäre? Um diese Frage beantworten zu können, müssen wir den Standardfehler sowohl für das durchschnittliche Geburtsjahr in West- als auch in Ostdeutschland berechnen. Der Einfachheit halber ignorieren wir die komplexe Natur der Stichprobe für einen Moment und schätzen den Standardfehler für beide Geschlechter mit mean. . mean ybirth, over(east) Mean estimation
Number of obs
=
5,411
0: east = 0 1: east = 1
ybirth
Over
Mean
0 1
1959.828 1958.477
Std. Err.
[95% Conf. Interval]
.2844148 .4926276
1959.271 1957.512
1960.386 1959.443
Wie gehabt, beginnt der Mittelwertsvergleichstest mit der Formulierung der Nullhypothese: „Im Jahr 2009 ist der Unterschied zwischen dem durchschnittlichen Geburtsjahr der Ostdeutschen und dem durchschnittlichen Geburtsjahr der Westdeutschen gleich Null.“ Dann nehmen wir an, die Nullhypothese sei wahr, und fragen uns, ob der in unserer Stichprobe beobachtete Unterschied im Bereich des Möglichen wäre. Zur Antwort benötigen wir den Standardfehler für die Differenz zweier Mittelwerte. Wenn wir annehmen, dass die Stichproben der Ost- und Westdeutschen unabhängig voneinander gezogen wurden, dann kann der Standardfehler der Differenz zwischen den beiden Gruppen mit 2 2 ̂ ̂ ̂ √S.E.(x S.E.(x A − xB ) = A ) + S.E.(x B )
(8.4)
252 | 8 Grundlagen statistischer Inferenz geschätzt werden. Diese Formel können wir mit den oben genannten Zahlen in Stata anwenden: . di sqrt(.2844148^2 + .4926276^2) .56883542
Nachdem wir nun den Standardfehler der Altersdifferenz ermittelt haben, können wir ausrechnen, wie wahrscheinlich eine Altersdifferenz von der Größe der hier Beobachteten wäre, wenn die Differenz in der Grundgesamtheit Null wäre. Mit dem kleinen Risiko, die Nullhypothese zu früh zu verwerfen (mehr dazu später), können wir einen vereinfachten Befehl für die zweiseitige Signifikanz benutzen: . di 2 * normal(-1.3509/.56883542) .01755598
Wenn die ost- und westdeutsche Bevölkerung gleich alt wäre, dann betrüge die Wahrscheinlichkeit, in einer Stichprobe einen Altersunterschied von 1,3509 Jahren zu messen, 1,76 %. Diese Wahrscheinlichkeit ist recht gering und es wäre die übliche Praxis, die Nullhypothese zu verwerfen: Die durchschnittliche Altersdifferenz zwischen Ost- und Westdeutschland ist wahrscheinlich nicht Null. Wir haben vorhin gesagt, dass wir riskieren, die Nullhypothese zu früh zu verwerfen. Das liegt daran, dass die Stichprobenverteilung der Differenzen zwischen Stichprobenmittelwerten nicht normal verteilt ist, sondern eine Student-t-Verteilung aufweist. Die Student-t-Verteilung ist der Normalverteilung sehr ähnlich, mit dem Unterschied, dass sie etwas breiter verteilt ist, wenn die Stichprobengröße unter 30 Beobachtungen fällt. In unserem Fall macht das keinen Unterschied, man sollte Differenzen von Stichprobenmittelwerten aber generell mit einer Student-t-Verteilung durchführen. Der einfachste Weg, das zu erledigen, ist der Befehl ttest. Da wir oben nicht davon ausgingen, dass die Stichprobenverteilungen in Ost- und Westdeutschland identisch sind, müssen wir ttest mit der Option unequal ausführen: . ttest ybirth, by(east) unequal Two-sample t test with unequal variances Group
Obs
Mean
0 1
4,068 1,343
combined
5,411
diff
Std. Err.
Std. Dev.
[95% Conf. Interval]
1959.828 1958.477
.2844148 .4926276
18.14023 18.0533
1959.271 1957.511
1960.386 1959.444
1959.493
.2464185
18.12642
1959.01
1959.976
1.350881
.5688354
.2353979
2.466365
diff = mean(0) - mean(1) Ho: diff = 0 Ha: diff < 0 Pr(T < t) = 0.9912
t = Satterthwaite's degrees of freedom = Ha: diff != 0 Pr(|T| > |t|) = 0.0176
2.3748 2301.37
Ha: diff > 0 Pr(T > t) = 0.0088
8.2 Deskriptive Inferenz
| 253
Der Output zeigt zunächst die Mittelwerte und deren Standardfehler für West- und Ostdeutschland, danach die entsprechenden Kennziffern für Deutschland insgesamt. In der mit „diff“ gekennzeichneten Zeile findet sich die Differenz der beiden Gruppenmittelwerte und dessen Standardfehler – hier sehen Sie die Werte von 1,35 und 0,57 die wir oben „von Hand“ ermittelt haben. Unterhalb der Tabelle finden Sie die Ergebnisse verschiedener Tests; der von uns durchgeführte zweiseitige Test steht in der Mitte. Das Ergebnis von ttest stimmt hier völlig mit unsere Berechnug überein, was regelmäßig dann der Fall ist, wenn der Umfang der verglichenen Stichproben über 30 ist. Bis hierin haben wir angenommen, dass die Stichproben für beide Gruppen, also Ost- und Westdeutschland, einfache Zufallsstichproben gewesen sind. Wir wissen aber bereits, dass dies nicht zutrifft. Um die komplexe Struktur der beiden Stichproben zu berücksichtigen, müssen wir die svy-Kommandos nutzen, die aber für ttest nicht funktionieren. Stattdessen berechnen wir die beiden Altersdurchschnitte mit svy: mean und benutzen danach das Kommando test: . svy: mean ybirth, over(east) (running mean on estimation sample) Survey: Mean estimation Number of strata = Number of PSUs =
4 515
Number of obs = Population size = Design df =
5,411 80,858,869 511
0: east = 0 1: east = 1 Over
Mean
0 1
1959.832 1958.493
ybirth
Linearized Std. Err. .5656418 1.085174
[95% Conf. Interval] 1958.721 1956.361
1960.943 1960.625
. test [ybirth]0 - [ybirth]1=0 Adjusted Wald test ( 1)
[ybirth]0 - [ybirth]1 = 0 F(
1, 511) = Prob > F =
1.18 0.2771
Der Befehl test führt einen „adjusted Wald-Test“ für einen spezifizierten Ausdruck durch. Im oben ausgeführten Befehl bezieht sich dieser Ausdruck auf die gespeicherten Ergebnisse von mean. [ybirth]0 ist das gespeicherte Ergebnis für den Mittelwert Westdeutschlands und [ybirth]1 ist das gespeicherte Ergebnis für den Mittelwert Ostdeutschlands. Mit dem obigen Befehl testen wir also, ob die Differenz zwischen den beiden gespeicherten Werten im Rahmen des Möglichen wäre, wenn die Differenz in der Grundgesamtheit Null wäre. Das Testergebnis zeigt, dass wir die Nullhypothese nun nicht mehr ohne Weiteres verwerfen können. Der korrekte Standardfehler ist sehr viel größer als die „naiven“
254 | 8 Grundlagen statistischer Inferenz Schätzungen unter der Annahme einer einfachen Zufallsstichprobe, mit der Folge, dass der Unterschied nicht mehr länger „signifikant auf dem 5 %-Niveau“ ist. Abgesehen davon, dass er die Berücksichtigung komplexer Stichprobendesigns zulässt, sei hier noch auf eine weitere nützliche Eigenschaft des test-Befehls hingewiesen. Mit ihm kann man nicht nur die Nullhypothese testen, sondern auch beliebige andere Hypothesen. Wäre Ihre Hypothese, dass Westdeutsche durchschnittlich zwei Jahre jünger sind als Ostdeutsche, dann sähe der entsprechende Befehl so aus: . test [ybirth]0 - [ybirth]1=-2 Adjusted Wald test ( 1)
[ybirth]0 - [ybirth]1 = -2 F(
1, 511) = Prob > F =
7.36 0.0069
8.3 Kausale Inferenz Als wir, die Autoren, uns Gedanken über den Inhalt dieses Kapitels gemacht haben, waren wir lange Zeit unentschlossen, ob wir auch einen Abschnitt über kausale Inferenz aufnehmen sollten. Der Grund unseres Unbehagens war, dass es soviel über kausale Inferenz zu sagen gibt, dass eine kurze Einleitung dazu vielleicht mehr Schaden anrichtet, als Nutzen stiftet. Andererseits folgen aus der Unterscheidung von kausaler und deskriptiver Inferenz einige sehr praxisbezogene Konsequenzen, auch für Anfänger in der Datenanalyse. Zum Beispiel können die Fragen, ob man Signifikanztests braucht, wenn die gesamte Grundgesamtheit beobachtet wird, oder ob Gewichte benötigt werden, nicht ohne die Unterscheidung zwischen kausaler und deskriptiver Inferenz beantwortet werden. Ohne zu diskutieren, was kausale Inferenz wirklich bedeutet, riskieren wir, dass Leser an Kausalität denken, obwohl sie eigentlich nur eine Beschreibung vor sich liegen haben. Also haben wir uns doch dafür entschieden, diesem Thema einen Abschnitt zu widmen. Ergänzend legen wir Ihnen die Lektüre von King et al. (1994); Winship und Morgan (1999); Imai et al. (2008); Stuart (2010) und nicht zuletzt von Berk (2004) ans Herz.
8.3.1 Grundlegende Konzepte Die Frage nach der Rolle des Zufalls ist eine – wenn nicht die – zentrale Frage der statistischen Inferenz. In unserer Diskussion um deskriptive Inferenz ging es um die Frage, ob nicht der Zufall dafür verantwortlich sein könnte, dass wir einen bestimmten Wert beobachten, der in der Grundgesamtheit Null ist. Bei der kausalen Inferenz gehen wir einen Schritt weiter und fragen: „Ist das, was wir sehen, dem Zufall geschuldet, oder steckt da was dahinter?“ Oder, etwas anders formuliert, gibt es einen Mechanis-
8.3 Kausale Inferenz |
255
mus, der die beobachtbaren Daten generiert hat, der nicht Zufall heißt? Um kausale Inferenz zu verstehen, benötigen Sie daher ein grundsätzliches Verständnis dessen, was wir hier den „datengenerierenden Prozess“ nennen wollen. Darüber hinaus müssen wir uns mit der „kontrafaktischen Konzeption von Kausalität“ beschäftigen und damit, was es heißt, wenn wir sagen, „unter sonst gleich bleibenden Bedingungen“. Im Folgenden wollen wir Ihnen diese grundlegenden Konzepte kurz vorstellen, bevor wir dann zu einem praktischen Beispiel kommen.
8.3.1.1 Datengenerierende Prozesse Laden Sie bitte den Datensatz titanic.dta aus unserem Datenpaket.⁷ . use titanic, clear (Death Rates for an Unusual Episode (Dawson 1995))
Der Datensatz enthält Informationen über Alter, Geschlecht, Klasse und Überlebende aller 2001 Personen an Bord der Titanic.⁸ Beachten Sie, dass der Datensatz keine Stichprobe aus einer größeren Grundgesamtheit darstellt, da ja weder die Crew noch die Passagiere durch eine bekannte Stichprobenmethode ausgewählt wurden. Die einzige Grundgesamtheit, von der wir hier reden können, ist die Grundgesamtheit der von der Titanic-Katastrophe betroffenen Personen, und da wir alle Personen an Bord beobachtet haben, können wir all unsere deskriptiven Aussagen direkt auf diese Grundgesamtheit beziehen. Die Frage nach deskriptiver Inferenz stellt sich hier nicht. Allerdings, wenn wir uns für Ursachen oder Korrelate des Überlebens der TitanicKatastrophe interessieren, benötigen wir trotzdem statistische Inferenz. Um das zu zeigen, wollen wir ein wenig fiktive Realität erschaffen. Dazu benutzen wir wieder den Zufallszahlengenerator von Stata (vgl. Abschn. 8.1.1). Die folgenden Befehle erstellen die Variable fsurvived, indem den Beobachtungen zufällig die Werte 0 und 1 zugewiesen werden. Weil wir erreichen wollen, dass der Wert 1 in 30 % der Beobachtungen auftritt, ziehen wir die Zufallszahlen aus einer Beta-Verteilung mit den Parametern 2 und 3 für α und β (vgl. Abschn. 8.1.2): . set seed 731 . gen fsurvived = int(rbeta(2,3)*2)
Angenommen die Variable fsurvived würde die echten Beobachtungen enthalten und angeben, ob eine Person den Untergang der Titanic überlebt hat oder nicht. Dann wäre es doch interessant zu sehen, ob es Unterschiede zwischen den Überlebensraten verschiedener Passagierklassen gäbe: 7 Stellen Sie bitte sicher, dass ihr Arbeitsverzeichnis c:/data/kk ist; vgl. S. 12. 8 Der Datensatz stammt aus der Untersuchung des Untergangs durch das British Board of Trade und wurde von Dawson (1995) publiziert. Die Erstellung unseres Stata-Datensatzes wird in crtitanic.do in unserem Datenpaket dokumentiert.
256 | 8 Grundlagen statistischer Inferenz . tab class fsurvived, row nofreq Class of passenger
fsurvived 0
1
Total
Crew First Second Third
70.28 64.62 72.98 71.10
29.72 35.38 27.02 28.90
100.00 100.00 100.00 100.00
Total
70.06
29.94
100.00
Tatsächlich zeigt dieser Output, dass die Passagiere der ersten Klasse häufiger überlebt haben, als die Passagiere der anderen Klassen und dass die dritte Klasse vergleichsweise kleine Überlebensraten hatte. Heißt das, dass die Ticketklasse eine Ursache für das Überleben war? Offensichtlich nicht. Die Variable fsurvived wurde ja gerade eben von uns mit einem Zufallsprozess erstellt, bei dem die Klassenzugehörigkeit kein Rolle spielte. Es gibt also überhaupt keinen ursächlichen Zusammenhang zwischen der Klasse und dem Prozess, mit dem die Daten in der Variable erstellt wurden. Es ist purer Zufall, dass der Zufallszahlengenerator die Daten so erstellt hat, dass sich ein Zusammenhang zwischen fsurvived und class ergeben hat. Bei echten Daten wissen wir nicht, welche Prozesse die beobachtbaren Eigenschaften der Untersuchungseinheiten erzeugt haben. Deswegen muss man sich stets fragen, ob ein beobachteter Zusammenhang durch einen Zufallsprozess zustande gekommen ist oder durch einen systematischen Einfluss eines bestimmten Einflussfaktors. Aufgabe der kausalen Inferenz ist es, diese beiden möglichen Elemente der datengenerierenden Prozesse zu unterscheiden.
8.3.1.2 Die kontrafaktische Konzeption der Kausalität In der Statistik wird Kausalität im Sinne der kontrafaktischen Konzeption definiert. Die Grundlagen der Konzeption werden Neyman et al. (1935) und Rubin (1974, 1979, 1980) zugeschrieben; eine andere Bezeichnung ist auch „Rubin Causal Model“ (Holland 1986). Nach der kontrafaktischen Konzeption von Kausalität ist der kausale Effekt einer Behandlung (Treatment) T der Unterschied zwischen einem Resultat (Outcome) Y einer spezifischen Untersuchungseinheit i, wenn diese Einheit die Behandlung bekommt, und dem Outcome für dieselbe Einheit, wenn die Einheit die Behandlung nicht bekommt. Formal: δi = YiT − YiC .
(8.5)
Hierbei ist YiT das Outcome für die Untersuchungseinheit i mit dem Treatment und YiC das Outcome ohne Treatment. δi ist der „kausale Effekt“. Die beiden Outcomes YiT und YiC sind „potentielle“ Outcomes, von denen grundsätzlich nur eines beobachtet werden kann. Denken wir dazu an Leonardo, einen Passagier der dritten Klasse, der
8.3 Kausale Inferenz |
257
während des Untergangs starb. Der Hollywoodfilm Titanic ließ uns im Glauben, dass Passagieren der dritten Klasse der Zugang zu den Rettungsbooten erschwert wurde, zum Vorteil der Passagiere der ersten und zweiten Klasse. Daher stellt sich die Frage, ob Leonardo starb, weil er nur ein Ticket der dritten Klasse besaß. Vom Standpunkt der kontrafaktischen Konzeption der Kausalität wäre dies der Fall, wenn es einen Unterschied zwischen dem Dritte-Klasse-Passagier Leonardo und demselben Leonardo als Erste- oder Zweite-Klasse-Passagier gegeben hätte. Weil Leonardo aber nicht gleichzeitig Passagier der dritten und der zweiten (oder ersten) Klasse sei kann, können wir nur eines der potentiellen Outcomes beobachten. Wir können nicht wissen, was passiert wäre, wenn Leonardo ein anderes Ticket gekauft hätte, aber wir können natürlich beobachten, was mit den Anderen geschah, die ein Ticket der ersten oder zweiten Klasse hatten. Kate, zum Beispiel, war Passagierin der ersten Klasse, und sie hat überlebt. Allerdings ist Kate nicht nur Passagierin der ersten Klasse. Sie ist auch eine junge Frau und nach der alten Seemannsregel „Frauen und Kinder zuerst“ sollte sie sogar dann überlebt haben, wenn sie in der dritten Klasse gereist wäre. Was wir also bräuchten, wäre ein Passagier aus der ersten Klasse, der Leonardo ähnlicher ist, am besten sogar identisch in allen Belangen, die die Überlebenswahrscheinlichkeit beeinflusst haben könnten, mit Ausnahme natürlich des Tickets. Zumindest sollte die Person männlich sein. Die Person sollte auch ein ähnliches Alter haben, da Kinder Vorrang bei den Rettungsbooten hatten und sehr alte Menschen allein auf Grund der Reisestrapazen gestorben sein könnten. Billy, einen männlicher Passagier aus der ersten Klasse von gleichem Alter wie Leonardo könnte ein guter Kandidat für einen Vergleichspassagier sein. Man könnte also Leonardos Outcome – ob er während des Untergangs gestorben ist oder nicht – mit Billys Outcome vergleichen, indem wir eine kleine Abwandlung von Geleichung Formel verwenden: δBilly,Leonardo = YLeonardo − YBilly .
(8.6)
Wenn wir die Werte 0 und 1 für das Outcome „Gestorben“, respektive „Überlebt“, einsetzen, so erhält man drei potentielle Ergebnisse für δBilly,Leonardo : – 0 falls beide sterben oder beide überleben, – 1 falls Leonardo stirbt und Billy überlebt, und – -1 falls Leonardo überlebt und Billy stirbt. Wir könnten versucht sein, den Wert von δBilly,Leonardo als Schätzung für den kausalen Effekt δi zu verwenden. In diesem Fall würden wir den Wert 1 als Beweis ansehen, dass das Reisen als Passagier in der dritten Klasse der Titanic die Wahrscheinlichkeit des Überlebens ursächlich verringert hat; -1 würde das Gegenteil bedeuten und 0 würde bedeuten, dass die Klassen keinen Einfluss hatten. Einer solchen Argumentation würde man aber wahrscheinlich nicht beipflichten wollen. Für unser Unbehagen gibt es verschiedene Gründe, doch hier wollen wir uns erst einmal auf einen davon konzentrieren: der Wert von δBilly,Leonardo könnte auch ein reines Zufallsprodukt sein.
258 | 8 Grundlagen statistischer Inferenz Wenn wir zwei andere Personen mit den gleichen Eigenschaften zur Bestimmung eines Äquivalents von δBilly,Leonardo ausgesucht hätten, dann hätten wir vielleicht auch einen anderen Wert erhalten und wären dann zu einer anderen Aussage verleitet worden. Ein Weg, um uns vor der Überschätzung von zufälligen Befunden zu schützen, ist, möglichst viele Beobachtungen von beiden Typen zu machen: dem Leonardo-Typ und dem Billy-Typ; nennen wir die Beobachtungen dieser beiden Typen die Behandlungsgruppe und die Kontrollgruppe. Wenn wir solche Daten haben, dann können wir die durchschnittlichen Outcomes in beiden Gruppen ermitteln und miteinander vergleichen. Hierdurch ergäbe sich folgende Schätzung des kausalen Effekts: T C δ̂ = Y − Y ,
(8.7)
T
wobei Y den durchschnittlichen Outcome der Treatment-Gruppe kennzeichnet und C Y den durchschnittlichen Outcome der Kontrollgruppe. Dies ist der sogenannte „Average Treatment Effecct“ (ATE). Zentral für die Validität des geschätzten ATE ist die Vergleichbarkeit der Treatment- und der Kontrollgruppe und dieses Kriterium stellt Sozialwissenschaftler oft vor ernsthafte Probleme. Grundsätzlich gilt, dass Treatment- und Kontrollgruppe dann vergleichbar sind, wenn sie sich nur darin unterscheiden, dass die eine Gruppe eine Behandlung bekommen hat und die andere nicht. Falls es noch andere Unterschiede zwischen den beiden Gruppen gibt, sollten diese zumindest nicht mit dem Outcome in Beziehung stehen. Eine gute Vergleichbarkeit von Treatment- und Kontrollgruppe kann in Experimenten erreicht werden, wenn man durch Zufall auswählt, welche Personen eine Behandlung bekommen und welche nicht.⁹. In den Sozialwissenschaften ist ein solches Vorgehen jedoch oft nicht möglich. Oft gibt es keine andere Möglichkeit, als die Fälle zu beobachten, die aus irgendwelchen Gründen zur Behandlungsgruppe dazugehören, und sie mit Fällen zu vergleichen, bei denen dies nicht der Fall ist. Bei solchen Studien muss die Vergleichbarkeit der Behandlungs- mit der Kontrollgruppe durch die statistische Kontrolle derjenigen Faktoren erfolgen, die die Zugehörigkeit zur Treatment- bzw. Kontrollgruppe beeinflusst haben. Dies erfordert normalerweise den Einsatz fortgeschrittener statistischer Methoden wie z.B. Fixed-Effects-Modellen für Paneldaten (Halaby 2004; Allison 2009), die Matching-Methoden (Stuart 2010), Instrumental Variable Regression (Baum et al. 2007) oder die Regression Discontinuity Modelle (Nichols 2007). Abhängig von den ausgewählten Fällen und den benutzten Methoden, schätzen diese Techniken sehr häufig nicht den ATE, sondern den sogenannten ATET, den „Average Treatment Effect of the Treated“. Mit Beobachtungsstudien lässt sich daher häufig nur feststellen, ob eine Behandlung für diejenigen, die die Behandlung er9 vgl. Stuart et al. (2011) für Methoden, um die Verallgemeinerbarkeit von Experimenten zu überprüfen
8.3 Kausale Inferenz |
259
fahren haben, einen Effekt hatte, nicht aber, ob die Behandlung auch für jene einen Effekt hätte, die die Behandlung (bislang) nicht erhalten haben. Im folgenden Abschnitt wollen wir ein empirisches Beispiel liefern, das die Logik der kausalen Inferenz anhand des Titanic-Datensatzes verdeutlicht. Beachten Sie jedoch, dass wir keinen Anspruch darauf erheben, den ATE oder den ATET in diesem Beispiel zu messen.
8.3.2 Der Effekt der dritten Klasse Bitte ermitteln Sie die klassenspezifischen Anteile des Wertes 1 der Variablen survived, men und adult: . tabstat survived men adult, by(class) Summary statistics: mean by categories of: class (Class of passenger) class
survived
men
adult
Crew First Second Third
.239548 .6246154 .4140351 .2521246
.9740113 .5538462 .6280702 .7223796
1 .9815385 .9157895 .888102
Total
.323035
.7864607
.9504771
Hieraus können wir lernen, dass 62 % der Passagiere aus der ersten Klasse die TitanicKatastrophe überlebten, während dies für nur 25 % der Passagiere der dritten Klasse zutrifft. Der Unterschied zwischen beiden Gruppen beträgt 37 Prozentpunkte. Wir können auch sehen, dass die Treatmentgruppe (die Passagiere aus der dritten Klasse) und die Kontrollgruppe (die Passagiere aus der ersten Klasse) sich auch in anderen Charakteristiken unterscheiden, die mit dem Überleben zusammenhängen dürften. Die Passagiere der dritten Klasse waren häufiger Männer und seltener Erwachsene. Ein direkter Vergleich der Überlebensraten der beiden Passagierklassen scheidet damit von vornherein aus – zumindest wenn Sie am kausalen Effekt der Passagierklasse interessiert sind. Sie müssen zuerst dafür sorgen, dass die Behandlungs- und die Kontrollgruppe in allen Charakteristiken übereinstimmen, die nicht selbst unmittelbare Folgen der Passagierklasse sind. Zum Beispiel könnten Sie sich auf den Vergleich der erwachsenen Männer beider Passagierklassen beschränken: . tabstat survived if men & adult, by(class) Summary for variables: survived by categories of: class (Class of passenger) class
mean
Crew First Second
.2227378 .3257143 .0833333
260 | 8 Grundlagen statistischer Inferenz Third
.1623377
Total
.2027594
Die durchschnittlichen Überlebensraten für erwachsene Männer sind kleiner als die durchschnittliche Überlebensrate insgesamt, und, in unserem Zusammenhang wichtiger, der Unterschied zwischen Passagieren der ersten und dritten Klasse hat sich auf 16 Prozentpunkte verringert. Wenn wir zu akzeptieren bereit sind, dass es keine anderen Unterschiede zwischen der Behandlungs- und der Kontrollgruppe gibt, so können wir darauf schließen, dass dieser Wert eine annehmbare Annäherung an den durchschnittlichen Effekt der „Dritte-Klasse-Behandlung“ darstellt. Denken wir nun noch mal über die Frage vom Beginn dieses Abschnitts nach. Wie wahrscheinlich ist es, dass der Unterschied von 16 Prozentpunkten in den Überlebensraten männlicher erwachsener Passagiere aus der ersten und dritten Klasse rein zufällig entstanden ist? Nun, wenn die Daten bei einen völlig unsystematischen Prozess entstanden wären, so sollte die Differenz zwischen arbiträren Gruppierungen innerhalb der Grenzen liegen, die noch im Rahmen zufälliger Fluktuationen sind. Das bringt uns zurück zu den Techniken von Abschnitt 8.2. Zur Schätzung des Standardfehlers der Anteilswerte verwenden wir im Folgenden allerdings den E-Typ-Befehl proportion an Stelle von mean. Aus . proportion survived if men & adult, over(class) Proportion estimation
Number of obs
=
1,667
No: survived = No Yes: survived = Yes Crew: First: Second: Third:
No
Yes
class class class class
= = = =
Crew First Second Third
Over
Proportion
Std. Err.
[95% Conf. Interval]
Crew First Second Third
.7772622 .6742857 .9166667 .8376623
.0141801 .0355276 .0213873 .0171749
.7482183 .6011716 .8639798 .8011045
.8038342 .7397978 .9501236 .8686028
Crew First Second Third
.2227378 .3257143 .0833333 .1623377
.0141801 .0355276 .0213873 .0171749
.1961658 .2602022 .0498764 .1313972
.2517817 .3988284 .1360202 .1988955
können wir sehen, dass Zufallsprozesse die durchschnittliche Überlebensrate der männlichen Erwachsenen aus der ersten Klasse zwischen 25,6 % und 39,5 % variieren lassen, und dass Zufallsprozesse die Überlebensraten für männliche Erwachsene der
8.3 Kausale Inferenz
| 261
dritten Klasse innerhalb der Grenzen zwischen 12,7 % und 19,6 % variieren lassen. Da sich die beiden Intervalle nicht überlappen, können wir ziemlich sicher sein, dass die beobachtete Differenz nicht nur zufälligen Fluktuationen geschuldet ist. Um das Ausmaß an Sicherheit zu quantifizieren, können wir die Überlebensraten aus dem letzten Output mit dem Befehl test testen: . test [Yes]First==[Yes]Third ( 1)
[Yes]First - [Yes]Third = 0 F(
1, 1666) = Prob > F =
17.14 0.0000
Wenn nur zufällige Prozesse gewirkt hätten, wäre die Wahrscheinlichkeit den beobachteten Unterschied zwischen den Überlebensraten der männlichen erwachsenen Passagiere der ersten und der dritten Klasse tatsächlich auch zu beobachten, Null. Daher können wir ganz sicher sein, dass hier etwas „Nicht-zufälliges“ vor sich ging. Bis jetzt haben wir nur den Unterschied in den Überlebensraten männlicher Erwachsener aus der ersten und dritten Klasse getestet. In ähnlicher Weise könnten wir Unterschiede auch für die anderen Gruppen – weibliche Erwachsene, männliche und weibliche Kinder – testen. Falls jede dieser Gruppen ähnliche Ergebnisse hervorbringt, so wären wir noch überzeugter, dass der Unterschied der Überlebensraten von erster und dritter Klasse kein Zufallsprodukt ist. Mit den wenigen (kategorialen) Kovariaten war es einfach, wichtige Unterschiede zwischen den Verteilungen der Kontroll- und der Treatmentgruppe zu kontrollieren. Wenn es noch mehr Kovariaten gibt und einige davon kontinuierlich sind, wird dies deutlich schwieriger. In diesem Fall können Regressionsmodelle oder Propensity Score Matching¹⁰ nützlich werden (vgl. Stuart 2010; Nichols 2007; Abadie et al. 2001).
8.3.3 Einige Probleme der kausalen Inferenz Das Beispiel aus dem letzten Abschnitt wurde mit einem Datensatz durchgeführt, der die gesamte Population enthielt über die eine Aussage gemacht werden sollte. Folglich wurden keine Methoden der deskriptiven Inferenz benötigt. Die Inferenz, die wir benutzt haben, bezog sich stattdessen auf den datengenerierenden Prozess. Im Speziellen haben wir überprüft, ob der datengenerierende Prozess ein Zufallsprozess war, was wir verneinten. Es muss also einen anderen Prozess geben, der die Daten erzeugt hat.
10 Es gibt zwar keinen offiziellen Stata-Befehl für Propensity Score Matching, wohl aber benutzerdefinierte Programme. Eine Übersicht finden Sie unter http://www.biostat.jhsph.edu/~estuart/ propensityscoresoftware.html. Kapitel 13 zeigt, wie man von benutzerdefinierte Programme finden und installieren kann.
262 | 8 Grundlagen statistischer Inferenz Aus den Ergebnissen unseres Beispiels sind wir geneigt zu sagen, dass Passagiere aus der dritten Klasse irgendwie daran gehindert worden sind, ein Platz in einem Rettungsboot zu bekommen. Jedoch sollten Sie sich, bevor Sie eine solch starke Aussage über die Ursache machen, daran erinnern, dass kausale Inferenz auf der kritischen Annahme beruht, dass die Behandlungs- und die Kontrollgruppe äquivalent sind. Diese Voraussetzung kann nur bei Experimenten sichergestellt werden, in denen der Forscher entscheiden kann, wer die Behandlung erfährt und wer nicht. Bei Daten, die auf Beobachtungen realer Situationen basieren, ist dies sehr viel schwieriger. Nehmen wir als Beispiel die Passagiere der ersten und der dritten Klasse der Titanic. Wir können mit Sicherheit ausschließen, dass es die Primärforscher (das British Board of Trade) waren, die festgelegt haben, wer ein Ticket der ersten oder der dritten Klasse bekommen hat. Vielmehr müssen wir davon ausgehen, dass die Zuweisung der Tickets eine Folge eines komplexen sozialen Prozesses war. Man darf davon ausgehen, dass Tickets der ersten Klasse hauptsächlich von reichen Personen gekauft wurden. Es ist ebenso plausibel, dass viele Besitzer von Tickets der dritten Klasse aus ihren Heimatländern auswandern wollten, um einer ernsten wirtschaftlichen Notlage zu entfliehen. Es ist ebenfalls bekannt, dass ein sehr viel größerer Anteil der Passagiere aus der dritten Klasse Ausländer ohne größere Englischkenntnisse waren. Damit ist offensichtlich, dass die Passagiere der ersten und der dritten Klasse sich nicht nur in Zusammensetzung von Alter und Geschlecht unterschieden, sondern auch in verschiedenen anderen Dimensionen. Zumindest einige dieser anderen Dimensionen stehen ebenfalls im Zusammenhang mit der Überlebensrate: Ärmere Menschen sind häufig weniger gesund, was ihre Chance, im kalten Wasser zu überleben, gegenüber den Reichen gesenkt haben dürfte; Ausländer in der dritten Klasse haben möglicherweise die Anweisungen der Crew nicht verstehen können; was wissen wir über die Fähigkeit, schwimmen zu können? War diese Fähigkeit im 20. Jahrhundert zwischen den unterschiedlichen sozialen Schichten gleich verteilt? All diese Faktoren dürften die Überlebenschance beeinflusst haben und sind Folge des kausalen Prozesses, der die Passagiere dazu gebracht hat, Tickets der ersten oder dritten Klasse zu kaufen. Vor diesem Hintergrund erscheint die Beschränkung der Analyse auf männliche Erwachsene nicht ausreichend. Bevor wir von kausalen Effekten der Passagierklassen sprechen können, sollten wir die Treatment- und Kontrollgruppe noch stärker angleichen Die statistischen Modelle, die wir in den folgenden Kapiteln vorstellen werden, zeigen einen Weg zur Angleichung von Treatment- und Kontrollgruppen. Im Kontext der kausalen Inferenz ist der grundsätzliche Gedanke bei diesen Methoden, ein theoretisches Modell des datengenerierenden Prozesses zu postulieren, und darauf aufbauend die Parameter des Modells zu schätzen. Ein Vorzug dieser Herangehensweise ist, dass man sich, wenn das postulierte theoretische Modell wirklich stimmt, keine Gedanken über Stichproben und all die Dinge aus Abschnitt 8.2 machen muss. Eine häufige Kritik an dieser Herangehensweise ist allerdings, dass diese postulierten Modelle viel zu simplistisch sind. Die übliche Reaktion auf solche Kritik ist dann, die Mo-
8.4 Übungen
| 263
delle über den datengenerierenden Prozess weiter zu verfeinern, wobei Berk (2004) argumentiert hat, dass viele dieser Verfeinerungen ihrerseits auf ungerechtfertigten oder nicht prüfbaren Annahmen beruhen. Diesen Streit können wir nicht entscheiden, jedoch empfehlen wir Ihnen, sich mit der eingangs zitierten Literatur auseinanderzusetzen bevor Sie Aussagen über kausale Effekte treffen. Bevor wir zu den statistischen Modellen selbst kommen, möchten wir betonen, dass die statistischen Methoden, die wir in den folgenden Kapiteln vorstellen, nicht nur für die kausale Analyse benutzt werden. Sie können auch dazu dienen, eine komplizierte empirische Realität sparsam zu beschreiben. Falls Sie die Methoden so benutzen, gibt es deutlich weniger Bedenken über die Richtigkeit der Modelle. In diesem Fall ist es eher die Frage, ob die Beschreibung interessant oder nützlich ist. Wenn Sie allerdings eine empirische Realität mit empirischen Daten beschreiben wollen, so muss es einen bekannten Zusammenhang zwischen den beobachteten Daten und der empirischen Realität geben. Wenn die Daten aus einer Stichprobe stammen, so muss beachtet werden, wie die Stichprobe gezogen wurde. Schauen Sie sich in diesem Fall die Methoden, die in Abschnitt 8.2 gezeigt wurden, genau an. In der Praxis haben es Forscher häufig mit der Situation zu tun, die beide Typen der statistischen Inferenz verlangt. Dies geschieht, wenn Forscher versuchen, kausale Inferenz anhand von Stichproben durchzuführen. Es gibt eine andauernde Debatte darüber, wie weit Methoden für deskriptive Inferenz ebenfalls für kausale Inferenz benötigt werden. Der grundsätzliche Hintergrund dieser Debatte ist, dass valide kausale Inferenz immer von einem korrekt spezifizierten Modell des datengenerierenden Prozesses abhängt. Wenn dieses Modell korrekt ist, so sind die Methoden, die für die deskriptive Inferenz benutzt werden, überflüssig. Andere argumentieren, dass es nie nur einen datengenerierenden Prozess für alle Mitglieder einer Grundgesamtheit geben kann. Man könne darum bestenfalls den Durchschnitt der Wirkung vieler in einer Grundgesamtheit simultan verlaufender datengenerierender Prozesse beschreiben. In diesem Fall würde man die Werkzeuge der statistischen Inferenz natürlich benötigen. Wie Sie sehen, ist dies offensichtlich nicht der richtige Ort, um die Debatte zwischen Beschreibern und Modellierern zu entscheiden (Groves 2004).
8.4 Übungen 1.
Erstellen Sie einen Datensatz mit 1.000 Beobachtungen und folgenden Variablen: – x1, eine Variable, die gleichverteilte Zufallszahlen zwischen 1 und 10 enthält, – x2, eine dichotome Variable mit Werten zwischen 0 und 1, bei der die Häufigkeiten beider Werte ungefähr gleich sind, – x3, eine dichotome Variable mit den Werten 0 und 1, wobei die Häufigkeit des Wertes 1 bei ungefähr 70 % liegt, – y, eine kontinuierliche Variable, die die Summe von x1, x2, x3 sowie zufälliger Werte aus einer Standardnormalverteilung ist.
264 | 8 Grundlagen statistischer Inferenz 2. 3.
4. 5. 6. 7. 8.
9.
10.
11.
Vergleichen Sie die Verteilung von y zwischen den jeweiligen Kategorien von x1, x2 und x3. Erstellen Sie eine einfache Zufallsstichprobe mit 1.000 Beobachtungen aus den Daten in data1.dta ohne den Datensatz zu zerstören. Berechnen Sie den Mittelwert der Variable income für Ihre Stichprobe. Wiederholen Sie die vorangegangene Aufgabe 100 Mal hintereinander und stellen Sie die Verteilung der 100 Stichprobenmittelwerte mit kdensity dar. Schätzen Sie den Standardfehler des Mittelwertes von income mit Hilfe der Mittelwerte der 100 Stichproben. Schätzen Sie den Standardfehler des Mittelwertes von income in einer einzigen der 100 Zufallsstichproben. Nehmen Sie an, data1.dta seien Daten aus einer einfachen Zufallsstichprobe und schätzen Sie den Standardfehler des Mittelwertes von income. Schätzen Sie den Standardfehler für den Mittelwert von income unter Annahme folgender Stichprobendesigns: – Schichtenstichprobe, wobei die Schichten Bundesländer darstellen, – zweistufige Schichtenstichprobe, wobei die Schichten Bundesländer darstellen und die PSUs Haushalte sind. – zweistufige Schichtenstichprobe, wobei die Schichten Bundesländer sind und die PSUs durch die Variable psu identifiziert werden, – zweistufige Schichtenstichprobe mit ungleichen Ziehungswahrscheinlichkeiten. Die Schichten sind Bundesländer, die PSU werden durch die Variable psu identifiziert und der reziproke Wert der Ziehungswahrscheinlichkeit ist in der Variable xweight gespeichert. – Stichprobe des GSOEP, wie auf Seite 231 beschrieben. Schätzen sich noch einmal den Standardfehler des Mittelwerts von income, wobei Sie 30 multiple Imputationen für die fehlenden Werte des Einkommens vornehmen. Die plausiblen Werte für income erzeugen Sie mit Hilfe der Variablen sex, ybirth, yedu, egp und rooms. Laden Sie data1.dta erneut. Analysieren Sie, ob der Einkommensunterschied zwischen Männern und Frauen zufälligen Stichprobenschwankungen geschuldet sein könnte. Benutzen Sie dabei die folgenden Einstellungen: – einfache Zufallsstichprobe – Stichprobe des GSOEP, wie auf Seite 231 beschrieben. Wiederholen Sie die Analyse für alleinlebende (mar), vollzeitarbeitende (emp) Befragte mit abgeschlossener Ausbildung (edu).
9 Einführung in die Regressionstechnik In Kapitel 7 haben wir die Verteilungen von Variablen beschrieben und für unterschiedliche Teilgruppen betrachtet. So haben wir z.B. die Verteilung der Parteiidentifikation von Männern und Frauen verglichen. Dabei haben wir uns unterschiedlicher Verfahren bedient. In Kreuztabellen haben wir die Häufigkeiten der Nennungen für die einzelnen Parteien unter der Bedingung untersucht, dass eine andere Variable, in unserem Fall das Geschlecht, verschiedene Werte aufweist (S. 175). Bei einem anderen Verfahren haben wir Maßzahlen des Einkommens, wie Mittelwert, Quantile oder Standardabweichung zwischen Männern und Frauen verglichen (S. 191). Man könnte auch sagen, wir haben untersucht, wie das Einkommen vom Geschlecht abhängt. Die Variable, deren Werte untereinander verglichen werden, bezeichnet man bei solchen Vergleichen daher als „abhängige Variable“.¹ In unserem Beispiel ist Einkommen die abhängige Variable. Die Variable, zwischen deren Kategorien die abhängige Variable verglichen wird, wird dagegen als „unabhängige Variable“ bezeichnet.² Bei unserem Vergleich der Einkommen von Männern und Frauen ist also Geschlecht die unabhängige Variable und Einkommen die abhängige. Welche Variablen als abhängig bzw. unabhängig bezeichnet werden, ergibt sich aus Ihrer Untersuchungsfrage oder einer Theorie. Kreuztabellen, wie wir sie in Kapitel 7 vorgestellt haben, eignen sich zur Darstellung, wenn Sie die Verteilung einer Variable zwischen einigen wenigen Subgruppen vergleichen wollen. Wenn Sie aber die Verteilung einer Variablen für sehr viele Subgruppen betrachten wollen, dürfte ein „Scatterplot“ die bessere Alternative sein. In einem Scatterplot wird jede Beobachtung in einem zweidimensionalen Raum (also in einem Achsenkreuz) abgebildet. Die Koordinaten jedes Punktes bilden sich aus den Werten einer Beobachtung auf den entsprechenden Variablen. Die Werte der unabhängigen Variablen werden entlang der x-Achse abgetragen und die Werte der abhängigen Variablen entlang der y-Achse. Abbildung 9.1 zeigt drei Beispiele³ für Scatterplots. Der erste Scatterplot zeigt den Zusammenhang zwischen der Lebenserwartung von Frauen gegen die Lebenserwartung von Männern auf der Basis von Daten aus 193 Ländern. Die Punkte verteilen sich von unten links nach oben rechts. Das bedeutet, dass eine hohe Lebenserwartung von Männern normalerweise mit einer hohen Lebenserwartung von Frauen einhergeht. In Fällen wie diesem spricht man von einem „positiven“ Zusammenhang. Der zweite Scatterplot zeigt den Zusammenhang zwischen der Kindersterblichkeit und der Alphabetisierungsrate von Erwachsenen für 110 Länder. Hier verteilen sich die Punkte von links oben nach rechts unten, d.h. je größer die Alphabetisierungsra1 Andere Bezeichnungen sind „Response Variable“, „endogene Variable“ oder „Kriteriumsvariable“. 2 Auch: „erklärende Variable“, „exogene Variable“, „Kovariate“ oder „Predictor-Variable“. 3 Die verwendeten Daten stammen aus dem Global Health Observatory Data Repository der WHO.
40
50
60 Male life expectancy
70
80
Child mortality (2010) 0 50 100 150 200
Female life expectancy 50 60 70 80 90
266 | 9 Einführung in die Regressionstechnik
40
60 Adult literacy rate 2008 (%)
80
100
Adult mortality (2009) 0 200 400 600
20
0
5 10 15 Total health expenditures 2009 (in % of GDP)
20
Abb. 9.1. Scatterplots mit positiver, negativer und schwacher Korrelation Do-File: grscatter.do
te, desto kleiner die Kindersterblichkeit. Dies bezeichnet man als einen „negativen“ Zusammenhang. Der dritte Scatterplot zeigt den Zusammenhang zwischen der Mortalitätsrate Erwachsener und den gesamten Gesundheitsausgaben als Prozentsatz des Bruttoinlandsprodukts (BIP). Hier verteilen sich die Punkte aus 190 Ländern ziemlich gleichmäßig über das gesamte Koordinatensystem. Der Zusammenhang zwischen Ausgaben im Gesundheitswesen und den verlorenen Lebensjahren ist darum alles andere als deutlich. Wir finden daher, wenn überhaupt, nur einen schwachen (negativen) Zusammenhang. In allen drei Abbildungen ist der Zusammenhang in Form einer Linie wiedergegeben: der „Regressionsgeraden“. In den beiden oberen Scatterplots liegen die Punkte ziemlich nah an der Regressionsgeraden. Hier sprechen wir von einer „starken Korrelation“. Im Gegensatz dazu bezeichnen wir ballonartige Punktewolken wie im dritten Scatterplot als „schwache Korrelationen“. Eine Maßzahl für die Stärke der Korrelation ist Pearson’s Korrelationskoeffizient r. Ein Korrelationskoeffizient von 0 bedeutet, dass zwischen zwei Variablen kein Zusammenhang besteht. Werte von -1 bzw. +1 stehen für die höchstmöglichen Korrelationen, wobei -1 eine stark negative und +1 eine stark positive Korrelation bezeichnet.
9 Einführung in die Regressionstechnik
| 267
Damit Sie ein Gefühl dafür bekommen, wie sich die Punktewolke eines Scatterplots für unterschiedliche Werte von r verändert, haben wir ein kleines Demonstrationsprogramm geschrieben. Dieses können Sie wie folgt verwenden. Mit⁴ . do cplot 0.5
erhalten Sie einen Scatterplot von zwei Variablen, deren Korrelationskoeffizient 0,5 beträgt. Sie können die Stärke des Zusammenhangs variieren, indem Sie hinter do cplot einen Korrelationskoeffizienten Ihrer Wahl schreiben. Übrigens: Egal wie stark die Korrelation auch ist, handelt es sich bei einem statistischen Zusammenhang nicht zwangsläufig um einen kausalen Zusammenhang. Die Lebenserwartung von Frauen z.B. wird wahrscheinlich nicht durch die Lebenserwartung von Männern verursacht. Vielmehr dürfte es eine gemeinsame Ursache für beide geben. Vielleicht lassen sich Gründe dafür finden, warum die Alphabetisierungsrate von Frauen die Kindersterblichkeit senkt. Mit Scatterplots, Korrelationskoeffizienten oder Regressionsgeraden allein lassen sich derartige Vermutungen aber nicht überprüfen (King et al. 1994; Berk 2004). Die Beschreibung des Zusammenhangs zwischen einer abhängigen und einer unabhängigen Variablen ist die Aufgabe der „linearen Einfachregression“. Eine einfache Verallgemeinerung der linearen Einfachregression beschreibt den Zusammenhang zwischen einer abhängigen Variablen und mehreren unabhängigen Variablen. Dies ist die „multiple lineare Regression“. Die Bezeichnung „multivariate Regression“ wird dagegen für ein Verfahren mit mehreren abhängigen Variablen verwendet. In Abschnitt 9.1 stellen wir das Grundprinzip der linearen Einfachregression vor und illustrieren es an einem Beispiel. Daran anschließend werden wir dieses Grundprinzip auf die multiple Regression anwenden (Abschn. 9.2). Die hinter einer linearen Regression stehenden Annahmen und ihre Überprüfung werden wir in Abschnitt 9.3 behandeln. Die daran anschließenden Abschnitte beschäftigen sich mit komplizierteren Regressionsmodellen (Abschn. 9.4), den verschiedenen Möglichkeiten zu Darstellung der Ergebnisse von Regressionsmodellen (Abschn. 9.5) und einer kleinen Auswahl von Erweiterungen des linearen Regressionsmodells (Abschn. 9.6). Für ein tieferes Verständnis der statistischen Grundlagen ist eine weitere Lektüre notwendig. Gut zu unserer Darstellung passen Hamilton (1992) oder Fox (1997). Sehr empfehlenswert ist auch das Buch von Berk (2004), das eine kritische Diskussion häufig gemachter Fehler enthält.
4 Bitte achten Sie darauf, dass Ihr Arbeitsverzeichnis c:\data\kk ist (vgl. S. 12).
268 | 9 Einführung in die Regressionstechnik
9.1 Lineare Einfachregression 9.1.1 Das Grundprinzip In diesem Abschnitt werden Sie mit Begriffen wie „OLS“, „RSS“, „vorhergesagte Werte“ und „Regressionskoeffizient“ vertraut gemacht. Leser, die diese Begriffe bereits kennen, können diesen Abschnitt überspringen. Das Grundprinzip aller Regressionsmodelle ist sehr einfach. Sie suchen eine Gleichung, die es Ihnen erlaubt, eine abhängige Variable mit einer oder mehreren unabhängigen Variablen möglichst gut vorherzusagen. Als Beispiel nehmen wir Folgendes an: Sie haben den Verdacht, dass die Wohnungsgröße vom Nettoeinkommen eines Haushalts bestimmt wird. Je mehr Einkommen – so vermuten Sie – desto größer die Wohnung. Gleichzeitig wissen Sie aber, dass auch wenn man kein Einkommen besitzt, die Wohnungsgröße nicht gleich Null sein kann. Das heißt, die Wohnungen von Personen ohne Einkommen haben in der Regel eine gewisse Mindestgröße. Mit Hilfe einer einfachen Formel können Sie diesen Verdacht so hinschreiben WohnungsgrößeMeier = β0 + β1 ⋅ EinkommenMeier + ϵMeier , oder Symbole an Stelle von Text verwenden: yMeier = β0 + β1 xMeier + ϵMeier ,
(9.1)
wobei y und x prinzipiell für beliebige Merkmale stehen. In der folgenden Darstellung werden wir aber stets y für die Wohnungsgröße und x für das Einkommen verwenden. In unserer Gleichung wird die Wohnungsgröße der Familie Meier, die hier stellvertretend für beliebige Haushalte stehen soll, mit dem Ergebnis einer Formel gleichgesetzt. Der erste Term in der Formel, β0 , steht dabei für die Mindestwohnungsgröße, d.h. die Wohnungsgröße von Personen ohne Haushaltseinkommen. Zu dieser Mindestwohnungsgröße addieren wir den Term β1 ⋅EinkommenMeier hinzu. Entscheidend ist dabei der Parameter β1 . Er gibt an, um wie viele Quadratmeter die Wohnungsgröße mit jedem Euro zusätzlichen Haushaltseinkommens zunimmt. Multipliziert man diese Größe mit dem Haushaltsnettoeinkommen der Meiers, erhält man einen Wert, der angibt, um wie viel die Wohnung der Meiers größer ist als die Mindestwohnungsgröße. Nun werden Sie sicher einwenden, dass das Einkommen nicht die einzige Variable ist, die einen Einfluss auf die Wohnungsgröße hat. So ist es gut vorstellbar, dass z.B. die Familiengröße ebenfalls eine Rolle spielt oder das Alter der Familienmitglieder oder was auch immer. Wenn Sie dieses „was auch immer“ nicht vollständig kennen, wird die mit der Gleichung berechnete Wohnungsgröße normalerweise etwas von den tatsächlichen Werten abweichen. Diese Abweichung nennt man den „Fehlerterm“. In Gleichung (9.1) ist er mit ϵ gekennzeichnet (bzw. mit ϵMeier , weil es der Fehlerterm der Familie Meier ist).
9.1 Lineare Einfachregression | 269
Obige Gleichung (9.1) ist nur eine andere Schreibweise des Verdachts, dass die Wohnungsgröße der Meiers von einer bestimmten Mindestgröße, von einer einkommensabhängigen Komponente und von irgendwelchen anderen Faktoren abhängt. Nun wäre es natürlich interessant, wenn wir den Wert des Grundbedarfs (β0 ) und der einkommensabhängigen Komponente (β1 ) wüssten. Genau dies, nämlich die Schätzung der „Regressionsparameter“ oder „Regressionskoeffizienten“ genannten Größen β0 und β1 , ist das Ziel der linearen Regressionsanalyse. Nehmen Sie nun einmal an, Sie hätten auf der Basis ihrer Alltagserfahrungen eine grobe Vorstellung darüber, wie hoch die Mindestwohnungsgröße und die einkommensabhängige Komponente sein könnte.⁵ Mit Hilfe dieser „Schätzung“ der Regressionsparameter könnten Sie dann versuchen, eine Prognose der Wohnungsgrößen von beliebigen Personen zu wagen. Dazu bräuchten Sie lediglich die Haushaltseinkommen dieser Personen zu ermitteln und in folgende Gleichung einzusetzen: ŷ i = b0 + b1 xi ,
(9.2)
wobei b0 und b1 Ihre Schätzungen der unbekannten Regressionsparameter β0 und β1 darstellen. (In der Statistik verwendet man häufig griechische Buchstaben für die Parameter, die man gerne kennen würde, und lateinische Buchstaben für die aus empirischem Material gewonnenen Schätzungen dieser Parameter.) Die Gleichung ähnelt ansonsten sehr der vorangegangenen Gleichung (9.1). An Stelle des Subskriptes „Meier“ verwenden wir nun den Buchstaben i, weil es nicht mehr nur um die Meiers, sondern um beliebige Haushalte geht. Außerdem fehlt der Fehlerterm ϵ, d.h., wir ignorieren alle Faktoren, welche die Wohnungsgröße außer dem Einkommen noch beeinflussen. Letzteres führt dazu, dass unsere Prognosen normalerweise von der tatsächlichen Wohnungsgröße abweichen. Um diesem Umstand Rechnung zu tragen, symbolisieren wir unsere prognostizierte Wohnungsgröße in Gleichung (9.2) mit einem „Dach“-Symbol. Wenn wir die wahren Werte der Wohnungsgröße kennen, können wir zudem ermitteln, wie weit wir mit unserer Prognose danebenliegen. Dazu berechnen wir einfach die Differenz zwischen der wahren Wohnungsgröße und unserer Prognose: ei = yi − ŷ i .
(9.3)
Die hier mit ei gekennzeichneten Differenzen zwischen den wahren und prognostizierten Werten nennt man „Residuen“. Sie spielen für die Schätzung der Regressionsparameter eine zentrale Rolle. Um dies zu verstehen, müssen Sie sich zunächst 5 Man könnte ja sagen, dass Küche und alle Flure zusammengenommen im Schnitt etwa 10 qm haben. Außerdem schätzen wir grob, dass Menschen im Schnitt etwa ein Drittel ihres Einkommens in die Wohnung investieren. Bei einem Quadratmeterpreis von 10 € könnten sich die Menschen dann jeweils mit 30 € Verdienst einen zusätzlichen Quadratmeter Wohnung leisten bzw. jeder zusätzliche verdiente 1 Euro brächte 30 qm Wohnung.
270 | 9 Einführung in die Regressionstechnik klarmachen, dass die Residuen tendenziell umso größer sind, je schlechter ihre geschätzten Regressionsparameter sind. Daraus ergibt sich umgekehrt, dass geschätzte Regressionsparameter, die tendenziell kleine Residuen produzieren, besser sind als solche, die große Residuen produzieren. Insofern ist es naheliegend, an Stelle der aus Alltagserfahrungen abgeleiteten groben Schätzungen, ein Verfahren zu verwenden, das systematisch versucht, möglichst kleine Residuen zu produzieren. Ein solches Verfahren ist das „Ordinary-Least-Squares“-Verfahren (OLS). Das OLS-Verfahren verwendet zur Schätzung der Regressionparameter folgende einfache Regel: „Verwende diejenigen Werte für die Regressionsparameter, bei denen die Summe aller quadrierten Residuen möglichst klein wird.“ Um zu verstehen, was damit gemeint ist, sollten Sie sich einmal den Scatterplot aus Abbildung 9.2 betrachten. Suchen Sie in dieser Grafik eine Gerade, mit der Sie den Zusammenhang der beiden Variablen wiedergeben können. Die Punkte liegen nicht alle auf einer Geraden, aber Sie können versuchen, einen geraden Strich so durch die Punkte zu ziehen, dass die Abstände zwischen den Punkten und der Geraden insgesamt möglichst klein werden. Wie groß die Abstände zwischen den Punkten und der Linie sind, können Sie mit einem Lineal nachmessen. Addieren Sie die Abstände auf und – Sie stolpern über das erste Problem. Negative und positive Abstände können sich gegenseitig aufheben und in der Summe sieht es so aus, als gäbe es gar keinen Abstand. Um das zu vermeiden, können Sie einfach die Abstände quadrieren und die quadrierten Abstände aufaddieren. Wenn Sie jetzt verschiedene Linien durchlegen, die Abstände abmessen und immer wieder aufs Neue die quadrierten Abstände addieren und dann alle Ergebnisse vergleichen, wird die Linie mit der kleinsten Abstandssumme diejenige sein, die den Zusammenhang zwischen den beiden Variablen am besten wiedergibt. Diese Suche ist nichts anderes als das OLS-Schätzverfahren. Die Punkte auf der Linie sind die für jeden beliebigen Wert von X vorhergesagten Werte (ŷ i ). Passt Ihr Modell gut, dann liegen die Punkte alle sehr nahe bei der gezeichneten Linie und die Summe der quadrierten Residuen wird klein. Passt das Modell schlecht, liegen die Punkte weit entfernt und die Summe der quadrierten Residuen wird groß. Eine Lösung des Regressionsproblems aus Abbildung 9.2 erhalten Sie mit . do grreg2.do
Lassen Sie uns das OLS-Prinzip nun ein wenig formaler darstellen. Es werden diejenigen Werte für b0 und b1 der Gleichung (9.2) gesucht, für welche die Summe der quadrierten Residuen (RSS als Abkürzung für „Residual Sum of Squares“) aller Beobachtungen minimal ist. Die oben beschriebene Suche durch Ausprobieren ist sehr aufwendig. Besser und einfacher geht es, wenn Sie mit Hilfe mathematischer Verfahren die Summe der quadrierten Residuen (RSS) minimieren. RSS lässt sich als Differenz der beobachteten und der vorhergesagten Werte aufschreiben: n
n
i=1
i=1
RSS = ∑ ei2 = ∑ (yi − ŷ i )2 .
(9.4)
| 271
0
1
2
3
y 4
5
6
7
8
9.1 Lineare Einfachregression
0
1
2
3 x
4
5
6
Abb. 9.2. Übung zum OLS-Prinzip Do-File: grreg1.do
Durch Einsetzen von ŷ i lässt sich dies schreiben als: RSS = ∑ ei2 = ∑ (yi − b0 − b1 xi )2 .
(9.5)
Ziel des OLS-Verfahrens ist es nun, den Wert für RSS zu minimieren. Das heißt, es müssen die Werte für b0 und b1 gefunden werden, bei denen (9.5) möglichst klein wird. Zu diesem Zweck wird die erste partielle Ableitung von (9.5) nach b0 und nach b1 ermittelt, gleich Null gesetzt und aufgelöst. Es ist an dieser Stelle nicht notwendig, dass Sie die Ableitungen tatsächlich selbst durchführen können. Sie sollten jedoch sehen, dass es sich bei dem ganzen Verfahren um die Suche nach dem Minimum einer Funktion mit zwei Unbekannten handelt.⁶ Falls Sie die Ableitungen selbst nachvollziehen wollen, finden Sie eine Wiederholung der hierfür notwendigen Schulmathematik bei Hagle (1996). 6 Falls Sie die Umformung nachvollziehen wollen, sehen die Ableitungen wie folgt aus: RSS = −2 ∑ yi + 2nb0 + 2nb1 ∑ xi . b0
(9.6)
Wenn Sie diese partielle Ableitung gleich Null setzen und auflösen ergibt sich: b0 = y − b1 x .
(9.7)
Nach demselben Prinzip lösen Sie die erste partielle Ableitung nach b1 auf: RSS = −2 ∑ yi xi + 2b0 ∑ xi + 2b1 ∑ xi2 = 0 . b1
(9.8)
Nun wird b0 in dieser Gleichung durch y − b1 x ersetzt. Nach einigen Umformungen erhalten Sie: b1 =
∑ (xi − x)(yi − y) . ∑ (xi − x)2
Eine ausführlichere Darstellung der Ableitung finden Sie bei Hamilton (1992: 33).
(9.9)
272 | 9 Einführung in die Regressionstechnik Bevor wir mit den mathematischen Grundlagen fortfahren, schätzen Sie einmal ihre Regressionkoeffizienten mit Stata. Sie werden sehen, wie einfach und hilfreich die Verwendung von Statistik-Programmen für solche Berechnungen ist. Doch Vorsicht: Die einfache Durchführbarkeit der Regressionsanalyse sollte Sie nicht dazu verleiten, nicht weiter über das nachzudenken, was Sie da tun. Wir werden im Verlauf des Kapitels auf einige inhaltliche Probleme zu sprechen kommen, die gegen die naive Anwendung des Regressionsbefehls auf Ihre Daten sprechen.
9.1.2 Lineare Regression mit Stata In diesem Abschnitt werden wir Ihnen die Berechnung einer Regression mit Stata erläutern. Im vorhergehenden Abschnitt hatten wir den Verdacht geäußert, dass sich die Wohnfläche auf das Nettoeinkommen des Haushalts zurückführen lässt. Sie sind nun an einer genauen Spezifizierung des Zusammenhangs interessiert und schätzen deshalb den Koeffizienten eines linearen Regressionsmodells der Wohnfläche (size) gegen das Haushaltseinkommen (hhinc). Dazu genügt:⁷ . use data1, clear (SOEP 2009 (Kohler/Kreuter)) . regress size hhinc Source
SS
df
MS
Model Residual
263141566 881575997
1 5,405
263141566 163103.792
Total
1.1447e+09
5,406
211749.457
size
Coef.
hhinc _cons
.0082545 800.9835
Std. Err. .0002055 9.404917
t 40.17 85.17
Number of obs F(1, 5405) Prob > F R-squared Adj R-squared Root MSE
= = = = = =
5,407 1613.34 0.0000 0.2299 0.2297 403.86
P>|t|
[95% Conf. Interval]
0.000 0.000
.0078516 782.5461
.0086574 819.4209
Wie Sie sehen, besteht das Kommando aus dem Befehl regress und einer Variablenliste. Beachten Sie, dass die erste Variable in der Variablenliste die abhängige und die zweite die unabhängige ist. Die Ausgabe besteht aus drei Teilen: Dem „AnovaBlock“ oben links, dem „Modellfit-Block“ oben rechts und dem „Koeffizientenblock“ im unteren Teil der Ergebnisdarstellung. Sie sollen im Folgenden der Reihe nach erklärt werden. Beginnen wollen wir mit dem Koeffizientenblock.
7 Bitte achten Sie auch hier darauf, dass Ihr Arbeitsverzeichnis c:\data\kk ist (vgl. S. 12).
9.1 Lineare Einfachregression
| 273
9.1.2.1 Der Koeffizientenblock Die folgende Beschreibung beschränkt sich auf die Koeffizienten in der ersten Spalte des Koeffizientenblocks. Die anderen Spalten dienen der Inferenzstatistik, wie wir sie in Kapitel 8 beschrieben haben. Wenn Sie sich für die inferenzstatistische Absicherung der Ergebnisse des vorliegenden Kapitels interessieren, sollten Sie die komplexe Stichprobenstruktur berücksichtigen. Dazu sollten Sie den auf Seite 231 gezeigten svyset-Befehl verwenden und danach alle nachfolgenden Regressionsbefehle mit dem Präfix svy: versehen. In der mit der Überschrift „Coef.“ versehenen Spalte des Koeffizientenblocks stehen die Schätzungen der Regressionskoeffizienten, also die Werte für b0 und b1 aus der Gleichung (9.2). Der Wert für b0 steht in der Zeile „_cons“ der Regressionsausgabe (S. 272). Er beträgt 800,9835. Laut Modell stehen jeder Familie ohne weiteres Einkommen knapp 800 ft2 (ca. 74 m2 ) Wohnfläche zur Verfügung. Der Wert für b1 steht in der Zeile, die mit „hhinc“ beginnt, und beträgt 0,0082545. Das heißt, mit jedem Euro zusätzlichen Jahreshaushaltseinkommens steigt die Wohnfläche um etwa 0, 008 ft2 (ca. 0,007 m2 ) an. Nimmt man an, dass die Familie Meier aus Gleichung (9.1) über ein jährliches Nettoeinkommen von 36.749 € verfügt, so lässt sich mit dem Modell abschätzen, wie groß die Wohnung der Familie Meier sein dürfte: ŷ Meier = 800.9835 + 0, 0082545 ⋅ 36.749 .
(9.10)
Sie können das Ergebnis direkt mit Stata ermitteln. Hierzu verwenden Sie den Befehl display als Taschenrechner: . display 800.9835 + .008245 * 36749 1103.979
Da das Abtippen der Zahlen sehr fehleranfällig ist und Sie nicht alle Kommastellen berücksichtigen können, empfehlen wir Ihnen, für solche Rechnungen auf die „gespeicherten Ergebnisse“ zurückzugreifen (vgl. Kap. 4). Regressionsmodelle gehören zu den E-Typen, weshalb Sie die gespeicherten Ergebnisse durch den Befehl ereturn list ansehen können. Wenn Sie das tun, werden Sie jedoch die Regressionskoeffizienten zunächst vergeblich suchen. Das liegt daran, dass alle geschätzten Regressionskoeffizienten in einer Matrix abgelegt werden, genauer in der Matrix „e(b)“. Um auf die Ergebnisse dieser Matrix zuzugreifen, verwendet man die Konstruktion _b[varname], wobei „varname“ durch den Namen einer der unabhängigen Variablen oder durch „_cons“ ersetzt wird. Die Berechnung für die Familie Meier sieht dann wie folgt aus: . display _b[_cons]+_b[hhinc]*36749 1104.3281
Die Zahl weicht ein bisschen von obiger ab, weil die gespeicherten Ergebnisse erst ab der 16-ten Stelle gerundet werden. Wenn Sie statt 36.749 € ein Einkommen
274 | 9 Einführung in die Regressionstechnik von 36.750 € einsetzen, werden Sie feststellen, dass das Ergebnis um den Betrag von b1 = bhhinc = 0, 0082545 größer ist. Vielleicht interessiert Sie weniger, wie groß die geschätzte Wohnungsgröße von Familien mit einem bestimmten Einkommen ist, sondern wie groß die Wohnungen von Familien mit diesem Einkommen tatsächlich sind. Die tatsächlichen Wohnungsgrößen aller Familien mit einem Einkommen von 36.749 € erhalten Sie durch folgenden Befehl: . list size hhinc if hhinc==36749
1756. 1757. 1758.
size
hhinc
1076 1072 1072
36749 36749 36749
Sie sehen, dass die von Ihnen vorhergesagten 1.104 ft2 nicht angezeigt werden, sondern Werte zwischen 1.072 ft2 und 1.076 ft2 . Die beobachteten Werte yi weichen also von den vorhergesagten Werten ŷ i ab. Diese Abweichungen sind die Residuen. Wenn Sie die vorhergesagten Werte für jeden Haushalt berechnen wollen, können Sie auf die gespeicherten Regressionskoeffizienten zurückgreifen.⁸ Der Befehl zur Berechnung der vorhergesagten Werte lautet:⁹ . generate sizehat=_b[_cons]+_b[hhinc]*hhinc
Das ist das gleiche Prinzip wie beim vorhergehenden display-Befehl, nur dass die Wohnungsgröße diesmal eben nicht ausschließlich für die Familie Meier, sondern für alle Familien vorhergesagt wird. Das Ergebnis der Berechnung schreiben wir in die Variable sizehat. Wir benutzen hier immer den Zusatz hat als Merkhilfe dafür, dass es sich um eine „geschätzte“ Variable handelt.¹⁰ Vorhergesagte Werte sind bei der Interpretation von Regressionsmodellen sehr nützlich. Beispielsweise können Sie einen Scatterplot der Variablen size gegen die Variable hhinc erstellen, und diesen dann mit einem Line-Plot der vorhergesagten Werte (sizehat) gegen die Variable hhinc überlagern; dies ist dann ein Scatterplot mit Regressionsgeraden. . sc size hhinc, msymbol(oh) || line sizehat hhinc, sort
8 Sie können die gespeicherten Regressionskoeffizienten überall dort einsetzen, wo Stata einen Ausdruck erwartet. Was hier unter Ausdruck verstanden wird, können Sie in Abschn. 3.1.6 noch einmal nachlesen. 9 Sie erhalten nach Eingabe dieses Befehls den Hinweis, dass einige fehlende Werte generiert wurden. Das sind alle die Personen, für die keine Einkommensangabe im Datensatz vorhanden ist. 10 Sie haben in den obigen Gleichungen schon gesehen, dass wir für die geschätzten Werte einen ̂ „Hut“ (engl. hat) auf das y gesetzt hatten: y.
| 275
0
1000
2000
3000
4000
5000
9.1 Lineare Einfachregression
0
100000
200000 300000 HH Post−Government Income
Size of housing unit in ft.^2
400000
500000
sizehat
Eine Anmerkung am Rande: Der twoway Plottyp lfit führt die Regressionsanalyse und die darauf folgende Berechnung der vorhergesagten Werte im Hintergrund durch. Ein Scatterplot mit Regressionsgerade lässt sich daher auch so erstellen: . sc size hhinc, msymbol(oh) || lfit size hhinc
Auf Grund der großen Bedeutung von vorhergesagten Werten für die Interpretation von Regressionsmodellen, hat Stata zwei einfache Befehle, um mit geschätzten Werten zu arbeiten: predict und margins. Mit dem Befehl predict kann ganz einfach eine Variable mit den geschätzten Werten erzeugt werden. Wenn Sie den Befehl predict gefolgt von einem Variablennamen eingeben, werden die vorhergesagten Werte in eine neue Variable mit dem angegebenen Namen gespeichert. Hier verwenden wir yhat als Variablennamen: . predict yhat
Die neue Variable yhat besitzt exakt die gleichen Werte wie die oben erzeugte Variable sizehat. Falls Sie sich davon überzeugen wollen, geben Sie list sizehat yhat1 ein. Bei predict handelt es sich um einen Befehl, der nach der Schätzung eines Regressionsmodells verwendet wird; er wird darum als „Post-Estimation-Kommando“¹¹ bezeichnet. margins ist ein weiteres Post-Estimation-Kommando. In seiner einfachsten Form zeigt margins die Mittelwerte der geschätzten Werte. Wenn Sie den Befehl margins ohne weitere Optionen eingeben, erhalten Sie den Mittelwert der vorhergesagten Werte des letzten Regressionsmodells, einschließlich der zugehörigen inferenzstatistischen Kennziffern:
11 Das Kommando postest stellte einen menügeführten Zugang zu allen Post-EstimationKommandos zur Verfügung.
276 | 9 Einführung in die Regressionstechnik . margins Predictive margins Model VCE : OLS Expression
Number of obs
=
5,407
: Linear prediction, predict() Margin
_cons
1107.638
Delta-method Std. Err. 5.492295
t 201.67
P>|t|
[95% Conf. Interval]
0.000
1096.871
1118.405
Da diese Werte identisch sind mit dem Durchschnitt der abhängigen Variablen selbst, ist diese Zahl aber ziemlich uninteressant. Interessant wird das Ganze, wenn mit margins Mittelwerte der vorhergesagten Werte an bestimmten Stellen der unabhängigen Variable(n) ermittelt werden. Beispielsweise zeigt der Befehl . margins, at(hhinc=(0(10000)100000)) vsquish Adjusted predictions Model VCE : OLS Expression 1._at 2._at 3._at 4._at 5._at 6._at 7._at 8._at 9._at 10._at 11._at
: : : : : : : : : : : :
=
5,407
Linear prediction, predict() hhinc = 0 hhinc = 10000 hhinc = 20000 hhinc = 30000 hhinc = 40000 hhinc = 50000 hhinc = 60000 hhinc = 70000 hhinc = 80000 hhinc = 90000 hhinc = 100000 Margin
_at 1 2 3 4 5 6 7 8 9 10 11
Number of obs
800.9835 883.5285 966.0735 1048.618 1131.163 1213.708 1296.253 1378.798 1461.343 1543.888 1626.433
Delta-method Std. Err. 9.404917 7.829203 6.525876 5.685452 5.523436 6.094179 7.226089 8.702896 10.3784 12.1708 14.0354
t 85.17 112.85 148.04 184.44 204.79 199.16 179.39 158.43 140.81 126.85 115.88
P>|t|
[95% Conf. Interval]
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
782.5461 868.1801 953.2801 1037.473 1120.335 1201.761 1282.087 1361.737 1440.998 1520.029 1598.918
819.4209 898.8769 978.8668 1059.764 1141.992 1225.655 1310.419 1395.86 1481.689 1567.748 1653.948
die geschätzte durchschnittliche Wohnungsgröße für Haushalte mit Einkommen, die in Schritten von 10.000 € von 0 € bis 100.000 € laufen. Um dies zu erreichen, verwenden wir die Option at(), wobei wir innerhalb der Klammer eine numlist (vgl. Abschn. 3.1.7) für die Werte von hhinc angeben. (Die Option vsquish ist unwichtig; sie spart lediglich etwas Platz)
9.1 Lineare Einfachregression
| 277
Die Ergebnisse zeigen, dass die durchschnittliche Wohnungsgröße für Haushalte ohne Einkommen 801 ft2 (74 m2 ) beträgt (dem niedrigsten at-Level). Für Haushalte mit einem Einkommen von 100.000 € (dem höchsten at-Level) beträgt die durchschnittliche Wohnungsgröße hingegen 1.626 ft2 oder 151 m2 . Der Befehl marginsplot stellt die Ergebnisse von margin grafisch dar. In vielen Fällen reicht es, marginsplot ohne weitere Optionen direkt nach dem Befehl margins einzugeben. In unserem Fall erhalten wir hierdurch dieselbe Regressionslinie wie in der vorherigen Grafik, diesmal jedoch mit 95 %-Konfidenzintervallen und nur für Einkommen zwischen 0 € und 100.000 €. . marginsplot
800
1000
Linear Prediction 1200 1400
1600
Adjusted Predictions with 95% CIs
0
10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 HH Post−Government Income
Wahrscheinlich werden Sie sagen, dass die Erzeugung eines Plots der Regressionsgeraden mit twoway lfit einfacher war und zu einem optisch ansprechenderen Ergebnis geführt hat. Sie werden aber später sehen, dass die Kombination von margin und marginsplot äußert hilfreich ist, um kompliziertere Regressionsmodelle zu interpretieren (vgl. Abschn. 9.5). Neben der Verwendung für die Interpretation der Regressionsmodelle können geschätzte Werte auch zur Berechnung der Residuen verwendet werden. Sie erhalten diese durch die Subtraktion der vorhergesagten Werte von den beobachteten: . generate resid1=size-sizehat
Die in der neuen Variablen gespeicherte Differenz ist nichts anderes als die Strecke, die Sie zwischen jedem Punkt und der Linie in der Abbildung auf Seite 271 messen können. Sie können Residuen auch mit Hilfe der Option residuals des Post-EstimationBefehls predict, unter Angabe eines Variablennamens, erhalten (hier, resid2):¹² . predict resid2, resid 12 Bitte widerstehen Sie der Versuchung e als Name für die Residuen zu verwenden. Der Name e ist prinzipiell ein gültiger Variablenname, er könnte jedoch bei der wissenschaftlichen Schreibweise von
278 | 9 Einführung in die Regressionstechnik Tab. 9.1. Haushaltsgröße und Wohnraum
Paul John Ringo
Wohngr.
Stadt
Abwei.
HH.-größe
Schätz.
Residuum
40 55 80
55 55 55
-15 0 +25
1 2 3
45 60 75
-5 -5 +5
9.1.2.2 Der Anova-Block „ANOVA“ ist die Abkürzung für „Analysis of Variance“. Wir verwenden die Bezeichnung „Anova-Block“ für den oberen linken Abschnitt der Stata-Regressionsausgabe, weil darin die Variation der abhängigen Variablen in einen erklärten und einen nicht erklärten Teil zerlegt wird. Zur Erinnerung haben wir Ihnen hier die Werte des AnovaBlocks von Seite 272 nochmals abgedruckt:
Source
SS
df
MS
Model Residual
263141566 881575997
1 5405
263141566 163103.792
Total
1.1447e+09
5406
211749.457
Zur Erklärung des Anova-Blocks wollen wir ein fiktives Beispiel konstruieren: Stellen Sie sich einmal vor, Sie werden gefragt, wie viel Wohnraum dem Studenten Paul zur Verfügung steht. Wenn Sie nichts über Paul wissen, würden Sie vielleicht diejenige Wohnungsgröße nennen, die Sie als durchschnittliche Wohnungsgröße für Studierende annehmen. In diesem Fall lägen Sie gar nicht schlecht, denn die durchschnittliche Wohnungsgröße ist derjenige Wert, mit dem man insgesamt die kleinste quadrierte Abweichung bekommt. Mit anderen Worten: Der Mittelwert ist der „OLSSchätzer“. In Tabelle 9.1 haben wir die Wohnungs- und Haushaltsgrößen von drei Studierenden einer Stadt eingetragen, in welcher der Mittelwert der Wohnungsgrößen 55 m2 beträgt.¹³ Verwendet man diese 55 m2 , um die Größe der Wohnung des Studenten Paul zu schätzen, so liegen wir um 15 m2 zu hoch.¹⁴ Bei den beiden anderen liegen wir einmal
Zahlen zu Verwirrungen führen (vgl. Abschn. 5.1.1 für eine Liste von Variablennamen, die vermieden werden sollten). 13 Die Anregung zu einer solchen Tabelle stammt aus Hair et al. (1995). 14 In Tabelle 9.1 wird die Abweichung zwischen beobachteten Werten und geschätztem Mittelwert mit 40 − 55 − 15 berechnet.
9.1 Lineare Einfachregression
| 279
genau richtig und einmal unterschätzen wir um 25 m2 . Quadriert man diese Abweichungen und summiert sie auf, so ergibt sich eine Gesamtabweichung von 1.450 m4 . Sie wird als „Total Sum of Squares“ (TSS) bezeichnet. Allgemein ist TSS = ∑(yi − y)2 .
(9.11)
Dies entspricht dem Ausdruck im Zähler bei der Formel für die Varianz (s2 ). TSS wird darum auch häufig als „Variation“ bezeichnet. Vielleicht ist es aber gar nicht so klug, den Mittelwert zu verwenden. Schließlich dürften die Wohnungen umso größer sein, je mehr Menschen in ihr leben. Den Ihnen bekannten Studenten stehen jeweils 15 m2 zur Verfügung, ein Wert, von dem Sie glauben, dass er auch für andere Studenten gilt. Die Wohnungsgröße dürfte daher mindestens 15 m2 für jeden darin lebenden Studenten betragen. Wahrscheinlich ist sie aber noch größer. Denn in jeder Wohnung gibt es Bad und Küche, für die man noch einmal grob 30 m2 veranschlagen könnte. Sie können diese Hypothese in folgender Modellgleichung darstellen: yi = 30 + 15xi .
(9.12)
Mit diesem Modell berechnen Sie nun für jede Haushaltsgröße eine Wohnungsgröße. Die Differenz zwischen dem tatsächlichen Wohnraum und Ihrem Modell finden Sie in der letzten Spalte der Tabelle. Auch hier quadrieren Sie die Ergebnisse und addieren sie auf. Damit erhalten Sie die bereits in Abschnitt 9.1.1 vorgestellte „Residual Sum of Squares“ (RSS). Der Wert der RSS Ihrer Hypothese beträgt 75. Wenn Sie TSS und RSS voneinander abziehen, erhalten Sie mit „Model Sum of Square“ (MSS) einen Wert für die Verbesserung Ihrer Schätzung durch Ihre Hypothese: TSS −RSS
= =
850 75
= MSS
=
775
Die quadrierten Residuen, die Sie mit Kenntnis der Haushaltsgröße erhalten, sind um 775 kleiner als die bei der Schätzung ohne Kenntnis der Haushaltsgröße. Ihre Schätzung ist also sehr viel näher an den tatsächlichen Werten, wenn Sie die Haushaltsgröße in Ihre Schätzung einbeziehen. Der MSS kann als Ausgangspunkt zur Abschätzung der Qualität Ihres Modells angesehen werden. Je höher der MSS, desto größer ist der Vorteil ihres Modells gegenüber einer Vorhersage mit dem Mittelwert. Der Mittelwert ist insofern der Standard, an dem man die Qualität eines Modells bemisst. Im Anova-Block der Regressionsausgabe finden Sie die Angaben über MSS, RSS und TSS in der mit „SS“ überschriebenen Spalte. Die erste Zeile enthält MSS, die zweite RSS und die dritte TSS. Im Output auf Seite 278 beträgt RSS mithin 881.575.997, die Gesamtzahl der quadrierten Residuen bei einer Schätzung durch den Mittelwert (TSS)
280 | 9 Einführung in die Regressionstechnik beträgt 1, 1447⋅109 und die Differenz der beiden Werte (MSS) beträgt 263.141.566. Diese und die übrigen Kennziffern im Anova-Block sind für den Modellfit-Block von Bedeutung. In der mit „df“ überschriebenen mittleren Spalte finden sich die „Freiheitsgrade“ (Degrees of Freedom).¹⁵ Die Freiheitsgrade von MSS entsprechen der Zahl aller ins Modell aufgenommenen unabhängigen Variablen k − 1, wobei k für die Anzahl der Regressionskoeffizienten steht, also der Konstanten und aller unabhängigen Variablen. Die Freiheitsgrade von RSS sind n − k mit n = der Zahl der Beobachtungen. Die Freiheitsgrade von TSS sind n − 1. In der letzten Spalte stehen die mittleren Abweichungen (MS). Sie können diese selbst errechnen, wenn Sie die erste Spalte dieses Blocks durch die zweite (die Freiheitsgrade) teilen.
9.1.2.3 Der Modellfit-Block Zur Erinnerung hier nochmals der Modellfit-Block aus der Ergebnistabelle von Seite 272: Number of obs F( 1, 5405) Prob > F R-squared Adj R-squared Root MSE
= 5407 = 1613.34 = 0.0000 = 0.2299 = 0.2297 = 403.86
Im vorherigen Abschnitt haben wir Ihnen gezeigt, dass Ihnen MSS angibt, um wie viel sich die Summe der quadrierten Residuen durch die Hinzunahme unabhängiger Variablen verringert hat. Den absoluten Wert von MSS können Sie jedoch nicht zum Vergleich verschiedener Modelle verwenden. Er hängt ja nicht nur von der Qualität des Modells ab, sondern auch davon, wie viele „quadrierte Residuen“ (TSS) ursprünglich überhaupt zur Verfügung standen. Folglich ist es sinnvoll, das Ausmaß der Reduktion der quadrierten Residuen relativ zur Gesamtzahl der quadrierten Residuen zu betrachten. Dies geschieht mit dem Determinationskoeffizienten R2 : R2 =
∑ ei2 RSS MSS =1− =1− . TSS TSS ∑ (yi − y)2
(9.13)
R2 steht für den Anteil der durch das Modell erklärten quadrierten Residuen an den insgesamt vorhandenen quadrierten Residuen. Wenn wir sagen, dass das Modell einen Residuenanteil „erklärt“, so meinen wir damit jenen Anteil der Residuen, der aus dem Modell ohne unabhängige Variablen verschwindet, wenn wir eine unabhängige Variable einsetzen. Deshalb wird R2 als Anteil „erklärter Variation“ oder als An-
15 Eine gut verständliche Erklärung der Freiheitsgrade findet sich bei Howell (1997: 53).
9.1 Lineare Einfachregression
| 281
teil „erklärter Varianz“ bezeichnet. Sie finden diese Kennziffer im Modellfit-Block der Stata-Ergebnistabelle, wo sie mit „R-squared“ bezeichnet wird. In unserem Beispiel beträgt R2 = 0, 2299. Das heißt, unser Modell erklärt 23 Prozent der Variation der Wohnfläche. Fälschlicherweise werden Regressionsmodelle oft allein anhand der Höhe von R2 beurteilt. Dies ist nicht zulässig und in hohem Maße gefährlich. Wir werden Ihnen in Abschnitt 9.3 zeigen warum. Eine Alternative zu R2 ist der „Root MSE“. Dieser entspricht der Wurzel der durchschnittlichen Residuen des Modells aus dem Anova-Block: Root MSE = √
RSS . n−K
(9.14)
Diese Maßzahl ist gut zu interpretieren, da sie in der Einheit der abhängigen Variablen angegeben wird. Der Root MSE von 403,86 in unserem Beispiel lässt sich so interpretieren, dass wir mit unserem Modell im Schnitt um rund 404 ft2 „danebenliegen“. (Die Interpretation ist nicht ganz korrekt, da es sich nicht wirklich um einen Durchschnitt handelt. Letztlich ist √1/n ∑ ei2 ≠ 1/n ∑ ei . Dennoch erscheint uns obi-
ge Formulierung vertretbar.) Zwei weitere Zeilen des Modellfit-Blocks der Regressionstabelle haben wir bisher noch nicht besprochen: die Werte hinter „F(1, 5407)“ und hinter „Prob > F“ (Für „Adj R-squared“ vgl. S. 286). Sie beziehen sich auf Stichprobendaten und beantworten die Frage, ob das Regressionsmodell als Ganzes signifikant ist (vgl. Kap. 8). Der F-Wert berechnet sich aus MSS/(k − 1) F= . (9.15) RSS/(n − k) Der F-Wert ist die Division der beiden Werte in der dritten Spalte des AnovaBlocks. Diese Prüfgröße folgt einer F-Verteilung und ist ein Signifikanztest für R2 . In anderen Worten: Mit F wird die Hypothese geprüft, ob ein R2 , wie wir es mit unseren Stichprobendaten berechnen, überhaupt möglich ist, wenn R2 in der Grundgesamtheit eigentlich gleich Null ist.¹⁶ Oder noch anders ausgedrückt: Könnte es am Zufall liegen, dass wir TSS durch Aufnahme der unabhängigen Variablen auf RSS reduziert haben, obwohl die unabhängigen Variablen in der Grundgesamtheit nicht zu einer Reduktion von TSS beitragen.¹⁷ Der Wert hinter „Prob > F“ gibt die Wahrscheinlichkeit an, mit der ein R2 in der Höhe, wie wir es in unserer Stichprobe berechnen, möglich ist, wenn das R2 in der 16 Eine Darstellung dieses Zusammenhangs finden Sie bei Gujarati (1995: 249). 17 Oftmals wird der F-Test auch als ein Test der Nullhypothese angesehen: „Alle Koeffizienten außer der Konstanten sind gleich Null“ (Gujarati 1995: 247). Es ist aber denkbar, dass die Konfidenzintervalle der einzelnen Koeffizienten den Wert Null nicht enthalten und das gesamte Modell trotzdem „nicht signifikant“ ist. Genaueres dazu können Sie unter http://www.stata.com/support/faqs/stat/#tests erfahren. Zu den Konfidenzintervallen vgl. Abschn. 8.2.
282 | 9 Einführung in die Regressionstechnik Grundgesamtheit eigentlich Null ist. Deutlich sinnvoller als ein Test des Gesamtmodells ist die Überprüfung des Modells anhand einer anderen Stichprobe. Wenn Sie sich eine Replikation Ihrer Daten nicht leisten können, sollten Sie zumindest einen Blick auf das sog. „Cross-Validation-Verfahren“ werfen (vgl. Fox 1997: 514–518).
9.2 Die multiple Regression Bitte laden Sie data1.dta in den Arbeitsspeicher . use data1, clear
Im vorangegangenen Abschnitt hatten wir Ihnen die lineare Regression mit einer unabhängigen Variablen vorgestellt. Eine Erweiterung dieser sog. linearen Einfachregression ist die „multiple Regression“. Kennzeichen der multiplen Regression ist, dass mehrere unabhängige Variablen verwendet werden. Die Modellgleichung der linearen Regression lautet entsprechend Gleichung (9.1): yi = β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i + ϵi .
(9.16)
Die Gleichung wird also um weitere x-Variablen und ihre zugeordneten Regressionsparameter erweitert. Es gibt zwei Gründe für die Aufnahme weiterer Variablen in ein Regressionsmodell: In Abschnitt 9.1.2 hatten wir die Regressionsparameter für die Vermutung, dass die Wohnungsgröße vom Haushaltseinkommen abhängt, mit einer einfachen linearen Regression der Wohnungsgröße gegen das Haushaltseinkommen geschätzt. Mit dieser Regression war es uns gelungen, 23 Prozent der Variation der Wohnungsgröße zu erklären, und der durchschnittliche Fehler bei der Prognose der Wohnungsgröße lag bei 404 ft2 . Wenn wir an einer guten Prognosefähigkeit unseres Modells interessiert sind, dürften uns diese Werte kaum zufriedenstellen. Eine Verbesserung der Prognosefähigkeit können wir erreichen, wenn wir weitere Variablen in die Regressionsgleichung aufnehmen. Dies ist der erste Grund für die Anwendung der Regression mit mehreren unabhängigen Variablen. Der zweite Grund ist komplizierter. Oben hatten wir den Einfluss des Einkommens auf die Wohnungsgröße untersucht. Das Haushaltseinkommen dürfte aber mit der Größe des Haushalts zusammenhängen, da zusätzliche Haushaltsmitglieder tendenziell ebenfalls zum Haushaltseinkommen beitragen könnten. Gleichzeitig dürften Haushalte mit mehr Haushaltsmitgliedern im Schnitt größere Wohnungen haben als Haushalte mit weniger Haushaltsmitgliedern. Es ist darum möglich, dass der Koeffizient für den Einfluss des Haushaltseinkommens den Einfluss der Haushaltsgröße mit einschließt. Es ist daher berechtigt zu fragen, welche Wirkung das Haushaltseinkommen hat, wenn man dabei die Auswirkungen der Haushaltsgröße herausrechnet. Man kann die Frage dadurch beantworten, dass man die Haushaltsgröße als weitere unabhängige Variable in das Regressionsmodell einführt.
9.2 Die multiple Regression
| 283
Im Folgenden werden wir Ihnen zunächst zeigen, wie man mit Stata eine multiple lineare Regression durchführt und die geschätzten Regressionskoeffizienten interpretiert. Danach werden wir Ihnen einige spezielle Kennziffern der linearen Regression vorstellen. Schließlich wollen wir Ihnen erläutern, was mit der Floskel „unter Kontrolle“ bei der Interpretation der Regressionskoeffizienten im multiplen Regressionsmodell gemeint ist (Abschn. 9.2.3).
9.2.1 Multiple lineare Regression mit Stata Der Stata-Befehl für die multiple Regression unterscheidet sich nicht von dem für die lineare Einfachregression. Zusätzliche unabhängige Variablen werden in beliebiger Reihenfolge an die Variablenliste angehängt. Dabei dürfen Sie die üblichen Regeln für Variablenlisten anwenden (S. 54). Wichtig ist nur, dass die abhängige Variable stets zuerst genannt wird. Auch die Ergebnisdarstellung entspricht derjenigen der linearen Einfachregression. Einziger Unterschied hier: Sie bekommen für alle weiteren unabhängigen Variablen eine zusätzliche Zeile für die entsprechenden Schätzungen des Regressionskoeffizienten. Schließlich entsprechen auch die gespeicherten Ergebnisse sowie die Möglichkeit, mit predict und margins die vorhergesagten Werte bzw. die Residuen zu erzeugen, dem Vorgehen bei der linearen Einfachregression. Beispiel: Es soll ein Regressionsmodell der Wohnungsgröße geschätzt werden, das neben der Haushaltsgröße und dem Haushaltseinkommen auch die Variablen für den Gegensatz von Ost und West sowie eine Variable für den Gegensatz von Haushalten mit Eigentumswohnungen und Haushalten mit Mietwohnungen enthält. Hierzu sind zunächst einige Recodierungsarbeiten notwendig:¹⁸ . generate owner = renttype == 1 if !mi(renttype) . generate east = state >=11 if !mi(state)
Danach können Sie das Regressionsmodell berechnen: . regress size hhinc hhsize east owner Source
SS
df
MS
Model Residual
507558816 637158747
4 5,402
126889704 117948.676
Total
1.1447e+09
5,406
211749.457
size
Coef.
hhinc
.0046358
Std. Err. .0001956
t 23.70
Number of obs F(4, 5402) Prob > F R-squared Adj R-squared Root MSE
= = = = = =
5,407 1075.80 0.0000 0.4434 0.4430 343.44
P>|t|
[95% Conf. Interval]
0.000
.0042523
18 Bei Schwierigkeiten mit diesen Recodierungsbefehlen lesen Sie bitte Kap. 5.
.0050193
284 | 9 Einführung in die Regressionstechnik hhsize east owner _cons
83.56691 -106.6267 366.1249 550.58
4.396585 10.88597 9.889078 12.39905
19.01 -9.79 37.02 44.41
0.000 0.000 0.000 0.000
74.94783 -127.9676 346.7383 526.2729
92.18599 -85.28581 385.5115 574.8872
Die Interpretation der geschätzten Koeffizienten im multiplen Regressionsmodell ist völlig identisch mit derjenigen im einfachen Regressionsmodell. Einziger Unterschied ist, dass die b-Koeffizienten nun – wie man sagt – unter Kontrolle der übrigen unabhängigen Variablen berechnet werden. Was hiermit gemeint ist, wollen wir weiter unten verdeutlichen (Abschn. 9.2.3). Hier soll zunächst nochmals die formale Interpretation der Koeffizienten illustriert werden. Die Regressionskoeffizienten geben die durchschnittliche Veränderung der Wohnungsgröße bei einer Veränderung der unabhängigen Variablen um eine Einheit wieder. Für den geschätzten Koeffizienten des Haushaltseinkommens bedeutet dies: „Im Durchschnitt steigt die Wohnungsgröße mit jedem Euro zusätzlichen Haushaltseinkommens um 0, 005 ft2 an. Entsprechend steigt die Wohnungsgröße mit jeder zusätzlichen Person im Haushalt um 83, 57 ft2 “. Die Variablen east und owner sind sogenannte „Dummy-Variablen“. Hierunter werden Variablen verstanden, die lediglich zwei Ausprägungen mit den Werten 0 und 1 besitzen.¹⁹ Ihre Interpretation in einem Regressionsmodell ist prinzipiell dieselbe wie die aller übrigen Variablen. Bezogen auf die Variable owner, die für alle Mieter 0 und für alle Eigentümer 1 ist, können wir sagen: „Mit jedem Anstieg der Variablen owner um eine Einheit steigt die Wohnungsgröße um durchschnittlich ca. 366 ft2 “. Da Dummy-Variablen aber nur einmal um eine Einheit steigen können, lässt sich das auch kürzer formulieren: „Eigentümer haben durchschnittlich um 366 ft2 größere Wohnungen als Mieter.“ Entsprechend sind die Wohnungen der Ostdeutschen im Schnitt um 107 ft2 kleiner als die Wohnungen der Westdeutschen. Die Regressionskonstante gibt an, wie groß die Wohnung derjenigen Personen ist, die auf allen Variablen des Modells den Wert 0 aufweisen. In unserem Beispiel sind dies die westdeutschen Mieter ohne Haushaltseinkommen und ohne Haushaltsgröße. Ein reichlich uninteressanter Wert, da es keine Personen gibt, deren Haushaltsgröße Null ist. Es ist deshalb oft sinnvoll, metrische unabhängige Variablen in Regressionsmodellen zu zentrieren, d.h. von jedem Wert den Mittelwert abzuziehen. Nach einer Zentrierung der Einkommensvariablen haben Personen mit mittlerem Einkommen den Wert 0. Entsprechend würde die Regressionskonstante den vorhergesagten Wert für das mittlere Einkommen angeben. Eine einfache Art, Variablen zu zentrieren, finden Sie in Kapitel 4. Wenn wir diese Methode anwenden . summarize hhsize . generate c_hhsize = hhsize - r(mean)
19 Es gibt auch andere Möglichkeiten zur Codierung dichotomer Variablen (vgl. Aiken und West 1991: 127–130).
9.2 Die multiple Regression
| 285
. summarize hhinc . generate c_hhinc = hhinc - r(mean)
und danach das Regressionsmodell mit der zentrierten Variablen erneut schätzen . regress size c_hhinc c_hhsize east owner, noheader size
Coef.
c_hhinc c_hhsize east owner _cons
.0046358 83.56691 -106.6267 366.1249 940.9296
Std. Err. .0001956 4.396585 10.88597 9.889078 7.511176
t 23.70 19.01 -9.79 37.02 125.27
P>|t| 0.000 0.000 0.000 0.000 0.000
[95% Conf. Interval] .0042523 74.94783 -127.9676 346.7383 926.2047
.0050193 92.18598 -85.28581 385.5115 955.6546
stellen wir fest, dass, mit Ausnahme der Konstanten, alle geschätzten Koeffizienten gleich bleiben. Die vorhergesagte Wohnungsgröße von Befragten aus Westdeutschland mit einem durchschnittlichen Einkommen und einer durchschnittlichen Haushaltsgröße beträgt 940 ft2 Post-Estimation-Befehle können auch nach multiplen Regressionsmodellen verwendet werden. Mit Hilfe der Befehle margins und marginsplot lassen sich ModellErgebnisse auf einfache Art grafisch darstellen. Insbesondere bei der Interpretation von komplizierten Modellen sind so erzeugte Grafiken sehr hilfreich. An dieser Stelle verwenden wir erneut margins, um die mittleren vorhergesagten Werte für verschiedene Werte von hhinc in Schritten von 10.000 zwischen 0 und 100.000 zu berechnen, dieses Mal aber separat für alle Kombinationen von east und owner. Danach verwenden wir marginsplot, um die Grafik zu erzeugen. Bevor wir diese Schritte tun, schätzen wir das Modell aber unter Verwendung der ursprünglichen Variablen erneut, da es weder notwendig noch vorteilhaft ist, zentrierte Variablen für die grafische Darstellung zu verwenden. . regress size hhinc hhsize east owner . margins, at(hhinc=(0(10000)100000)) over(owner east) . marginsplot, by(east)
east=1
1000
1500
east=0
500
Linear Prediction
2000
Predictive Margins with 95% CIs
0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000
HH Post−Government Income owner=0
owner=1
286 | 9 Einführung in die Regressionstechnik In dieser Abbildung stellt die Steigung jeder Linie den Einfluss der ersten genannten Variablen in der Option at() von margins auf die Haushaltsgröße dar – bei uns also das Haushaltseinkommen.²⁰ Je größer die Steigung, desto stärker ist der geschätzte Effekt des Haushaltseinkommens auf die Wohnungsgröße. Innerhalb jeder Grafik zeigt der Unterschied zwischen den beiden Linien den geschätzten Einfluss von Wohneigentum. Je größer die Differenz zwischen den beiden Linien, desto stärker ist die Wirkung von Wohneigentum auf die Wohnungsgröße. Schließlich zeigt der Unterschied zwischen den beiden einander entsprechenden Linien jeder Grafik den Unterschied zwischen den durchschnittlichen Wohnungsgrößen von West- und Ostdeutschland. Bei der Interpretation solcher Grafiken müssen Sie aber berücksichtigen, dass sie die geschätzten Effekte des jeweiligen Modells vor sich sehen. In unserem Modell habe wir z.B. nicht vermutet, dass die Wirkung von Wohneigentum auf die Wohnungsgröße in Ost- und Westdeutschland unterschiedlich ist. Deshalb muss der Abstand zwischen den beiden Linien in beiden Teilgraphiken identisch sein. Wenn Sie vermuten, dass Wohneigentum in Ostdeutschland einen geringeren Einfluss auf die Größe der Wohnung hat als in Westdeutschland, müssen sie dies durch Aufnahme eines sogenannten Interaktionsterms in das Regressionsmodell explizit angeben (vgl. Abschn. 9.4.2).
9.2.2 Spezielle Kennzahlen der multiplen Regression Korrigiertes R2 In unserem Regressionsmodell ist R2 von 23 auf 44 Prozent gestiegen. Das ist eine deutliche Verbesserung des Modells. Allerdings steigt R2 fast immer durch die Hinzunahme weiterer unabhängiger Variablen.²¹ Hier ist dies nicht weiter dramatisch, da das Verhältnis von befragten Personen und verwendeten unabhängigen Variablen sehr günstig ist. Wenn Sie aber nur mit wenigen Fällen arbeiten, z.B. bei einem Vergleich der europäischen Länder untereinander, und dabei mit vielen Variablen operieren, wird R2 leicht zu einem unverlässlichen Maß.²² Um dies zu verdeutlichen, stellen Sie sich bitte einmal einen Scatterplot mit zwei Punkten vor. Diese beiden Punkte können Sie mit einer Linie verbinden, der Regressionsgeraden. Sie haben alle Varianz „erklärt“, da keine Abstände mehr zwischen den Punkten und der Geraden zu sehen sind. Aber heißt das nun, dass die beiden Variablen, die den Scatterplot aufspannen, tatsächlich inhaltlich in dem durch die Gerade angezeigten Zusammenhang stehen? Wenn Sie das Bruttosozialprodukt Großbritanniens und Deutschlands vergleichen und als einzige „unabhängige“ Variable die Länge 20 Diese Grafik ist ein Beispiel für einen sogenannten „Conditional-Effects-Plot“; lesen Sie mehr über „Conditional-Effects-Plot“ in Abschnitt 9.5.3. 21 Der Wert von R2 wird nur dann nicht ansteigen, wenn der geschätzte Koeffizient der zusätzlichen Variablen exakt Null ist. Dies ist in der Praxis so gut wie ausgeschlossen. 22 Eine Auflistung der mit R2 verbundenen Probleme finden Sie bei Kennedy (2008: 26–28).
9.2 Die multiple Regression
| 287
der Küste der beiden Länder nehmen, können Sie den Unterschied im Bruttosozialprodukt zwischen Deutschland und England „perfekt“ erklären – und gleichzeitig Ihre wissenschaftlichen Koffer packen. Da der Wert von R2 bei Hinzunahme weiterer unabhängiger Variablen allenfalls steigen, aber niemals sinken kann, wird mit „Adj R-squared“ eine Maßzahl ausgedruckt, welche die Zahl der Modellparameter k (alle Terme auf der rechten Seite Ihrer Gleichung) und die Zahl der Beobachtungseinheiten berücksichtigt (vgl. Greene 2008: 240): n−1 (1 − R2 ) , (9.17) R2a = 1 − n−k wobei k die Zahl der Parameter und n die Fallzahl darstellt. Allerdings wird dieses korrigierte R2 kaum von R2 abweichen, solange die Fallzahl nicht sehr klein wird – in unserem Fall wird der Unterschied erst an der vierten Nachkommastelle sichtbar. Generell gilt, dass es nur eine wirksame Methode gegen fehlspezifizierte Modelle gibt: sorgfältige theoretische Überlegungen und sorgfältige Diagnostik (vgl. Kap. 9.3).
Standardisierte Regressionskoeffizienten In unserem Regressionsmodell ist der geschätzte Koeffizient für die Haushaltsgröße deutlich größer als derjenige für das Haushaltseinkommen. Dieser Größenunterschied verlockt zu der Annahme, dass die Haushaltsgröße einen größeren Einfluss auf die Wohnungsgröße hat als das Haushaltseinkommen. Bei genauerer Überlegung werden Sie jedoch feststellen, dass dieser Vergleich hinkt. Die geschätzten Koeffizienten geben an, wie stark sich der Mittelwert der abhängigen Variable verändert, wenn man die jeweilige unabhängige Variable um eine Einheit verändert. Sie vergleichen folglich die Veränderung der Wohnungsgröße bei einem Anstieg des Einkommens um einen Euro mit der Veränderung der Wohnungsgröße bei einer Veränderung der Haushaltsgröße um eine Person! Zum Vergleich der Einflussstärken verschiedener Variablen mit unterschiedlichen Maßeinheiten gibt es Standardisierungen der geschätzten Regressionskoeffizienten (b∗k ). Sie werden durch sX (9.18) b∗k = bk k sY
berechnet, wobei bk den geschätzten Koeffizienten der k-ten Variablen darstellt, sY die Standardabweichung der abhängigen Variablen und sXk die Standardabweichung der k-ten unabhängigen Variablen. Die standardisierten Regressionskoeffizienten werden häufig auch Beta-Koeffizienten genannt, man erhält sie in Stata deshalb durch die Option beta. In diesem Zusammenhang ist es hilfreich zu wissen, dass Sie Ihr zuletzt eingegebenes Regressionsmodell durch den Befehl regress ohne Variablenliste nochmals anzeigen lassen
288 | 9 Einführung in die Regressionstechnik können – ohne dass das Modell dabei nochmals neu geschätzt wird. Dabei erhalten Sie die Werte für beta in der rechten Spalte des Koeffizientenblocks.²³ . regress, beta noheader
Die standardisierten Regressionskoeffizienten werden wie folgt interpretiert: Eine Erhöhung des Haushaltseinkommens um eine Standardabweichung erhöht die Wohnungsgröße um 0,27 Standardabweichungen. Die Erhöhung der Haushaltsgröße um eine Standardabweichung erhöht die Wohnungsgröße dagegen nur um 0,21 Standardabweichungen. Gemessen am standardisierten Regressionskoeffizienten hat das Haushaltsnettoeinkommen demnach einen stärkeren Einfluss auf die Wohnungsgröße als die Haushaltsgröße. Standardisierte Regressionskoeffizienten sind zum Vergleich der Einflussstärke unterschiedlicher Variablen in einem Modell sehr beliebt. Allerdings werden dabei häufig folgende Punkte übersehen: – Die Verwendung standardisierter Regressionskoeffizienten bei dichotomen Variablen ist unzulässig (etwa bei den Dummy-Variablen east und owner). Da die Standardabweichung einer dichotomen Variablen eine Funktion ihrer Schiefe ist, werden die standardisierten Regressionskoeffizienten gemäß (9.18) umso niedriger, je schiefer die Variable ist.²⁴ – In der Gegenwart von Interaktionstermen (vgl. 9.4.2) ist die Berechnung von b∗k nach (9.18) ungültig, die von Stata ausgegebenen Beta-Koeffizienten sind deshalb nicht interpretierbar. Zur Ermittlung der Beta-Koeffizienten müssen die an der Bildung des Interaktionsterms beteiligten Variablen im Vorfeld der Regression z-standardisiert werden (Aiken und West 1991: 28–48). – Standardisierte Regressionskoeffizienten sollten nicht zum Vergleich von Regressionsmodellen in zwei verschiedenen Datensätzen herangezogen werden, da die Varianzen der Variablen in den Datensätzen variieren können (Berk 2004: 28–31).
9.2.3 Was bedeutet eigentlich „unter Kontrolle“? Die b-Koeffizienten eines Regressionsmodells geben an, um wie viel sich die vorhergesagten Werte der abhängigen Variablen verändern, wenn sich die unabhängige Varia23 Die Option noheader unterdrückt die Ausgabe des ANOVA-Blocks und des Modell-Fit-Blocks. 24 Zur Demonstration haben wir den Do-File anbeta.do geschrieben. Darin werden 1.000 Regressionen mit einer dichotomen unabhängigen Variablen geschätzt. In der ersten Regression hat keine Beobachtung die Ausprägung 1 auf der unabhängigen Variablen. Mit jeder weiteren Regression erhöht sich der Anteil von Beobachtungen mit 1 um einen weiteren Fall, bis in der letzten Regression wieder alle Fälle die gleiche Ausprägung auf der unabhängigen Variablen haben. Die Beta-Koeffizienten jeder dieser 1.000 Regressionen werden in einer Grafik dargestellt.
9.2 Die multiple Regression
| 289
ble um eine Einheit erhöht. In einem multiplen Regressionsmodell wird diese Veränderung unter Kontrolle der übrigen unabhängigen Variablen angegeben. Im Folgenden werden wir dies genauer erläutern. Hierzu wollen wir zunächst eine einfachere Fassung des vorangegangenen Regressionsmodells berechnen: . regress size hhinc hhsize, noheader
Bitte betrachten Sie einmal den b-Koeffizienten des Haushaltseinkommens. Er unterscheidet sich sowohl von dem im einfachen Modell erzielten Ergebnis (S. 272) als auch von dem des multiplen Modells (S. 283). Wie kommt es zu diesen Veränderungen? Um eine Antwort hierauf zu geben, wollen wir den OLS-Koeffizienten des Haushaltseinkommens einmal auf eine andere Art ermitteln: Bitte berechnen Sie hierzu zunächst einmal die Residuen der Regression der Wohnungsgröße auf die Haushaltsgröße: . regress size hhsize, noheader . predict e_fs, resid
Hierdurch haben Sie eine neue Variable e_fs erzeugt. Bevor Sie weiterlesen, sollten Sie sich gründlich überlegen, was diese Residuen inhaltlich bedeuten. Wir schlagen folgende Interpretation vor: Die Residuen entsprechen der Wohnungsgröße, aus der die Haushaltsgröße herausgerechnet wurde. Mit anderen Worten ist dies der Teil der Wohnungsgröße, der nichts mit der Haushaltsgröße zu tun hat, oder noch anders formuliert, die von der Haushaltsgröße bereinigte Wohnungsgröße. Nun brauchen wir noch die Residuen einer Regression des Haushaltseinkommens gegen die Haushaltsgröße: . regress hhinc hhsize, noheader . predict e_hh, resid
Auch diese Residuen können Sie inhaltlich interpretieren. Entsprechend zu oben handelt es sich hier um den Teil des Haushaltseinkommens, der nichts mit der Haushaltsgröße zu tun hat, also um das von der Haushaltsgröße bereinigte Haushaltseinkommen. Bitte führen Sie nun eine lineare Regression von e_fs auf e_hh durch. Sie erhalten: . regress e_fs e_hh, noheader
Betrachten Sie nun den b-Koeffizienten von e_hh. Er entspricht genau dem geschätzten Koeffizienten des multiplen Regressionsmodells von oben. Verwendet man nun die Interpretation der b-Koeffizienten der linearen Einfachregression zur Interpretation des Koeffizienten, so würde man etwa folgende Formulierung treffen: Die von der Haushaltsgröße bereinigte Wohnungsgröße steigt mit jedem Euro des um die Haushaltsgröße bereinigten jährlichen Haushaltseinkommens um 0, 006 ft2 an. Die gleiche Interpretation gilt auch für den Koeffizienten im multiplen Modell. Die Regres-
290 | 9 Einführung in die Regressionstechnik sionskoeffizienten im multiplen Regressionsmodell geben somit den um die übrigen unabhängigen Variablen bereinigten Einfluss auf die abhängige Variable wieder. Dies bezeichnen wir als „unter Kontrolle“.
9.3 Regressionsdiagnostik Multiple Regressionsmodelle lassen sich mit Hilfe der modernen Statistikpakete einfach berechnen. Deshalb wird oft vergessen, dass der multiplen Regressionsanalyse eine Reihe von Annahmen unterliegen, die, wenn sie nicht erfüllt sind, die Ergebnisse fragwürdig erscheinen lassen. Diese Annahmen werden als „Gauß-MarkovAnnahmen“ bezeichnet.²⁵ Zur Illustration der Notwendigkeit einer Überprüfung der Gauß-Markov-Annahmen bitten wir Sie, im Datensatz anscombe.dta folgende Regressionsmodelle zu berechnen:²⁶ . . . . .
use anscombe, clear regress y1 x1 regress y2 x2 regress y3 x3 regress y4 x4
Notieren Sie sich dabei für jede Regression die Ergebnisse der geschätzten Koeffizienten, die Varianz der Residuen (RSS) und die erklärte Varianz R2 . Sie werden feststellen, dass es zwischen den vier Ergebnissen keinen in den Zahlen erkennbaren Unterschied gibt. In allen vier Regressionsmodellen erhalten Sie einen R2 von 0,67. Die Konstante liegt bei 3 und die Steigung der Regressionsgeraden beträgt 0,5. Ohne Kenntnis der Modellannahmen und ohne Kenntnis der Notwendigkeit von Regressionsdiagnostik würden Sie nun aufhören und alle vier Modelle als gut tauglich bezeichnen. Erstellen Sie nun Scatterplots für jede dieser Variablenkombinationen und überlegen Sie sich anschließend, welches der Modelle Sie überzeugt und welches nicht. Es genügt, wenn Sie nacheinander die Befehle scatter y1 x1, scatter y2 x2 usw. eingeben. Wir haben die Grafiken mit granscomb.do erzeugt. Sie sind aber erst auf Seite 291 abgedruckt, damit die Spannung erhalten bleibt. Die Grafiken in Abbildung 9.3 zeigen sehr anschaulich, dass die Ergebnisse der linearen Regression mit Vorsicht zu genießen sind. Den scheinbar gleichen Werten für R2 , der Konstanten und des Koeffizienten liegen völlig unterschiedliche Daten zu
25 Wenn Sie mit den Gauß-Markov-Annahmen bereits vertraut sind, können Sie sich mit help regdiag einen schnellen Überblick über die in Stata vorhandenen Möglichkeiten der Regressionsdiagnostik verschaffen. 26 Der Datensatz stammt von Anscombe (1973).
9.3 Regressionsdiagnostik
Y2 6 4 2
4
6
Y1 8
8
10
10
Y2 on X2
12
Y1 on X1
| 291
6
8
10
12
14
4
6
8
10
X1
X2
Y3 on X3
Y4 on X4
12
14
4
6
6
8
Y4 10
Y3 8 10
12
12
14
4
4
6
8
10 X3
12
14
5
10
15
20
X4
Abb. 9.3. Scatterplots des Anscombe-Quartetts Do-File: granscomb1.do
Grunde. Die Höhe von R2 kann also nicht ohne weiteres als Maß für die Modellgüte verwendet werden. Wir wollen Ihnen nun Möglichkeiten zur Prüfung der Gauß-Markov-Annahmen vorstellen. Die meisten der dabei vorgestellten Verfahren sind Grafiken. Die Darstellung setzt deshalb Kenntnisse des Befehls graph voraus (Kap. 5). Eine detaillierte Darstellung der grafischen Diagnoseverfahren geben Cook und Weisberg (1994). Berk (2004: Kap. 9) diskutiert die Beschränkungen der Regressionsdiagnostik.
9.3.1 Die Verletzung von E(ϵi ) = 0 Die Schätzung der Parameter eines Regressionsmodells mit dem OLS-Verfahren erfolgt unter der Annahme, dass der „Erwartungswert“ des Fehlerterms aus Gleichung (9.1) Null ist, oder formal: E(ϵi ) = 0. Um diese Annahme zu verstehen, müssen Sie sich zunächst vergegenwärtigen, was ein Erwartungswert ist: Stellen Sie sich dazu vor, Sie würden die Wohnungsgröße der Meiers aus Gleichung (9.1) immer und immer wieder vermessen. Dabei würden Sie wahrscheinlich zwar stets ähnliche, aber nie völlig identische Resultate erzielen. Von all diesen wiederholten Messungen könnten Sie aber immerhin den Mittelwert berechnen. Diesen Mittelwert über hypothetische Wiederholungen eines Experiments bezeichnet man als „Erwartungswert“; im Beispiel wäre es der Erwartungswert der Wohnungsgröße. Bei E(ϵi ) = 0 geht es um den Erwartungswert des Fehlerterms. Wir haben oben gesagt, dass im Fehlerterm eines Regressionsmodells alle diejenigen Einflüsse zusammengefasst sind, die außer den unabhängigen Variablen noch einen Einfluss auf die abhängige Variable haben. Mit E(ϵi ) = 0 meint man daher, dass diese sonstigen Einflüsse über eine große Zahl von Wiederholungen Null sind. Oder, anders formuliert:
292 | 9 Einführung in die Regressionstechnik Alle nicht im Modell enthaltenen Einflüsse auf eine abhängige Variable heben sich im Durchschnitt gegeneinander auf. Schätzt man die Parameter eines Modells, indem man eine solche vereinfachende Annahme trifft, stellt sich natürlich die Frage, was passiert, wenn diese vereinfachende Annahme nicht zutrifft. Was also passiert, wenn die Fehler sich nicht gegenseitig aufheben? Die Antwort hierauf ist so schlicht wie naheliegend: Dann sind die mit OLS ermittelten Regressionskoeffizienten verzerrte Schätzungen der Regressionsparameter. Die in dem Beispiel von Anscombe gezeigten Probleme sind Verletzungen dieser Annahme. Wer verzerrte Schätzungen von Regressionparametern vermeiden möchte, sollte darum stets überprüfen, ob die zur Schätzung notwendigen Annahmen auch tatsächlich zutreffen. Die Überprüfung von E(ϵi ) = 0 hat dabei besonderes Gewicht. Die Annahme ist verletzt, wenn 1. der Zusammenhang zwischen der abhängigen und einer unabhängigen Variablen nichtlinear ist, 2. einzelne Ausreißer das Regressionsergebnis übermäßig stark beeinflussen, 3. mit den übrigen unabhängigen Variablen im Modell korrelierende Einflussfaktoren übersehen wurden. Zur Überprüfung der Annahme können für jedes der oben genannten Problemfelder spezielle Verfahren eingesetzt werden. Einen ersten Blick auf alle drei möglichen Ursachen liefert jedoch der „Residual-vs.-Fitted-Plot“. Bei dieser Darstellung handelt es sich um einen Scatterplot der Residuen einer linearen Regression gegen die vorhergesagten Werte. Für die zuletzt durchgeführte Regressionsanalyse kann der Plot von Hand durch . . . .
regress predict predict scatter
y4 x4 yhat resid, resid resid yhat
oder durch den Befehl rvfplot erzeugt werden; der Befehl rvfplot ist eine der speziellen statistischen Grafiken, von denen in Abschnitt 6.2.2 die Rede war. . rvfplot
In beiden Fällen muss zuvor ein Regressionsbefehl eingegeben worden sein. Beim rvfplot können Sie alle Grafikoptionen normaler Scatterplots verwenden. In Abbildung 9.4 zeigen wir Ihnen die Residual-vs.-Fitted-Plots für die Regressionen des Anscombe-Beispiels. Beachten Sie, dass der Mittelwert der Residuen in diesen Grafiken stets Null ist. Dies liegt an der Definition des Regressionsmodells, bei der die Regressionskoeffizienten so geschätzt werden, dass der Mittelwert der Residuen Null wird. Damit die Annahme E(ϵi ) = 0 erfüllt ist, muss jedoch zusätzlich gelten, dass der Mittelwert der Residuen auch lokal Null ist. Damit ist gemeint, dass der Mittelwert
9.3 Regressionsdiagnostik
−2
−2
Residual of Y2 on X2 −1 0 1 2
RvF−Plot of Y2 on X2
Residual of Y1 on X1 −1 0 1 2
RvF−Plot of Y1 on X1
| 293
5
6
7 8 Fitted value
9
10
5
7 8 Fitted value
9
10
RvF−Plot of Y4 on X4
−2
Residual of Y3 on X3 −1 0 1 2 3
Residual of Y4 on X4 −1 0 1 2
RvF−Plot of Y3 on X3
6
5
6
7 8 Fitted value
9
10
6
8
10 Fitted value
12
Abb. 9.4. Residual-vs.-Fitted-Plot des Anscombe-Quartetts
Do-File: granscomb2.do
der Residuen für beliebige Streifen der x-Achse Null sein soll. In Abbildung 9.4 gilt dies nur für das erste und letzte Regressionsmodell. Nebenbei bemerkt: Bei der linearen Einfachregression – d.h. einer Regression mit nur einer unabhängigen Variablen – lässt sich die Verletzung der Gauß-MarkovAnnahmen bereits in einem einfachen Scatterplot der abhängigen Variablen gegen die unabhängige Variable überprüfen. Der Vorteil des Residual-vs.-Fitted-Plots liegt darin, dass er auch auf multiple Regressionsmodelle anwendbar ist. In der Praxis fallen Verletzungen von E(ϵi = 0) meist nicht so leicht auf wie bei den konstruierten Daten von Anscombe. Aus diesem Grund sollen im Folgenden spezielle Diagnosetechniken für die drei Ursachen der Annahmeverletzung vorgestellt werden.
9.3.1.1 Linearität Damit Sie die folgenden Beispiele nachvollziehen können, berechnen Sie bitte zunächst die Regression der Wohnungsgröße auf das Haushaltseinkommen und die Haushaltsgröße mit den Daten des GSOEP: . use data1, clear . regress size hhinc hhsize
Eine der wichtigsten Bedingungen für die lineare Regression ist, dass die abhängige Variable tatsächlich mit einer linearen Funktion der unabhängigen Variablen beschrieben werden kann. Zur Untersuchung der funktionalen Form eines Zusammenhangs müssen nichtparametrische Analyseverfahren verwendet werden. Bei diesen Verfahren wird versucht, die Zahl der im Vorhinein aufgestellten Annahmen möglichst klein zu halten. Als Beispiel mag der Scatterplot dienen, dem lediglich einige allgemeine wahrnehmungstheoretische Annahmen zu Grunde liegen.
294 | 9 Einführung in die Regressionstechnik Einen ersten Blick auf die Beziehungen zwischen allen an einem Regressionsmodell beteiligten Variablen erlaubt die Scatterplot-Matrix. Darin werden zweidimensionale Scatterplots zwischen allen Variablen einer Variablenliste gezeichnet. Hier ist ein Beispiel: . graph matrix size hhinc hhsize
In jeder Teilgrafik dieser Darstellung wird diejenige Variable, die neben der Teilgrafik steht, als y-Variable verwendet und diejenige, die unter der Grafik steht als x-Variable. In der ersten Zeile der Darstellung finden Sie daher Scatterplots der Wohnungsgröße gegen alle unabhängigen Variablen des Regressionsmodells. Einfache Scatterplots eignen sich jedoch nur bei kleinen Fallzahlen zur Untersuchung der funktionalen Form eines Zusammenhangs. Bei größeren Fallzahlen sollten informationsangereicherte Scatterplots verwendet werden, insbesondere solche mit sog. „Scatterplot-Smoothern“ (Schnell 1994: 102–106). Ein Beispiel für einen Scatterplot-Smoother ist der „Median-Trace“. Bei der Konstruktion eines Median-Trace wird die Variable der x-Achse in Streifen unterteilt und für jeden Streifen der Median berechnet. Anschließend werden die Mediane mit einer geraden Linie verbunden. In Stata wird der Median-Trace durch den Plottyp mband der Twoway-Grafik angefordert. Mit der Option bands() wird die Anzahl der Streifen angegeben, in die die x-Achse unterteilt wird. Je größer die Anzahl, desto glatter die Linie. . scatter size hhinc, ms(oh) || mband size hhinc, bands(20) clp(solid)
| 295
0
1000
2000
3000
4000
5000
9.3 Regressionsdiagnostik
0
100000
200000 300000 HH Post−Government Income
Size of housing unit in ft.^2
400000
500000
Median bands
Auf den ersten Blick zeigt die Abbildung, dass es sowohl beim Haushaltseinkommen als auch bei der Wohnungsgröße eine Vielzahl an Ausreißern gibt. Diese Beobachtungen könnten die Regressionsergebnisse stark beeinflussen, aber damit werden wir uns im nächsten Abschnitt beschäftigen. Betrachten wir lediglich Haushaltseinkommen unter 100.000 €, finden wir Anzeichen von Kurvilinearität. Dies ist ein erster Hinweis auf eine Verletzung der Linearitätsannahme. Allerdings müssen Sie beachten, dass die funktionale Form einer Beziehung zwischen zwei Variablen sich ändern kann, sobald in einem multiplen Regressionsmodell der Einfluss anderer Variablen kontrolliert wird. Die Abbildung zeigt einen im Schwerpunkt der Daten linearen Verlauf. Die Grafik zeigt auch, dass sowohl beim Einkommen als auch bei der Wohnungsgröße eine Reihe von Ausreißern vorliegen.²⁷ Selbst wenn für zwei Variablen ein linearer Zusammenhang festgestellt werden kann, ist es denkbar, dass sich der Zusammenhang zwischen diesen beiden Variablen durch Hinzunahme weiterer Variablen in das Regressionsmodell ändert. Das heißt, durch die Kontrolle anderer Variablen kann sich die funktionale Form des Zusammenhangs zweier Variablen ändern. Aus diesem Grund muss auch die Linearität der kontrollierten Beziehung untersucht werden. Einen ersten Anhaltspunkt für den Zusammenhang zwischen der abhängigen Variablen und einer unabhängigen Variablen gibt der Plot der Residuen gegen die entsprechende unabhängige Variable. Dieser Plot gibt allerdings keinen Aufschluss über die genaue Form einer etwa vorhandenen Kurvilinearität. Ein U-förmiger und ein logarithmischer Zusammenhang liefern unter bestimmten Umständen den gleichen Plot (vgl. Berk und Both 1995).²⁸
27 Diese stellen möglicherweise Beobachtungen dar, die das Regressionsergebnis stark beeinflussen. Genaueres hierzu erfahren Sie im nachfolgenden Abschnitt. 28 Die Unterscheidung dieser beiden Zusammenhangsformen ist notwendig, da bei einem Uförmigen Zusammenhang ein quadratischer Term eingefügt werden sollte und bei einem logarith-
296 | 9 Einführung in die Regressionstechnik Der „Component-Plus-Residual-Plot“, auch „partieller Residuenplot“ genannt, ist eine Abwandlung des eben beschriebenen Plots und erlaubt die Bestimmung der funktionalen Form des Zusammenhangs. In Component-Plus-Residual-Plots wird an Stelle der Residuen das Produkt aus Residuum und linearem Anteil der unabhängigen Variablen gegen die unabhängige Variable geplottet. Was damit gemeint ist, zeigt folgendes Beispiel: Um zu prüfen, ob Wohnungsgröße und Haushaltseinkommen unter Kontrolle der Haushaltsgröße linear zusammenhängen, speichern Sie zunächst die Residuen des Regressionsmodells, z.B. in der Variablen e1: . predict e1, resid
Danach wird zu den gespeicherten Residuen der lineare Anteil des Haushaltseinkommen addiert und die sich daraus ergebende Größe gegen das Haushaltseinkommen geplottet. Da wir die vereinzelt sehr hohen Werte beim Haushaltseinkommen außer Acht lassen wollen, beschränken wir uns dabei auf die Beobachtungen mit einem Haushaltseinkommen unterhalb von 100.000 €:
−1000
0
1000
2000
3000
4000
. generate e1plus = e1 + _b[hhinc]*hhinc . sc e1plus hhinc || mband e1plus hhinc, bands(30) || if hhinc < 100000
0
20000
40000 60000 HH Post−Government Income e1plus
80000
100000
Median bands
Aus der Grafik schließen wir, dass sich die Wohnungsgröße linear zum Haushaltseinkommen verhält. Das gleiche Ergebnis erhalten Sie, wenn Sie das in Stata implementierte spezielle Grafikkommando cprplot verwenden, das die eben beschriebene Prozedur für eine unabhängige Variable Ihrer Wahl durchführt.²⁹ Hinter cprplot wird der Name derjemischen Zusammenhang eine Transformation der abhängigen Variablen genügen kann (vgl. Abschn. 9.4.3.1). 29 Ebenfalls implementiert ist der „Augmented Component-Plus-Residual-Plot“ von Mallows (1986): acprplot. An Stelle des hier verwendeten Median-Trace kann im Befehl cprplot auch der „Scatterplot-Smoother“ LOWESS (Schnell 1994: 109) verwendet werden. Hierzu wird die Option lowess angegeben.
9.3 Regressionsdiagnostik
| 297
nigen unabhängigen Variablen eingegeben, für die die Grafik erstellt werden soll. Die gerade Linie im Plot entspricht der Regressionsgeraden. Wir verwenden hier zusätzlich einen „Median-Spline“, der im Wesentlichen mit dem Median-Trace identisch ist, nur dass Kurven an Stelle von Geraden verwendet werden, um die Mediane miteinander zu verbinden. . regress size hhinc hhsize . cprplot hhinc, msopts(bands(20))
Der cprplot-Befehl ist überaus nützlich, jedoch erlaubt er keine if-Bedingung. Aus diesem Grund ist es nützlich, solch eine Grafik auch quasi „per Hand“ erstellen zu können.
Lösungsmöglichkeiten Im vorliegenden Beispiel scheinen die vorhandenen Beziehungen linear. Liegen nichtlineare Beziehungen vor, müssen die beteiligten Variablen transformiert oder zusätzliche quadratische Terme in die Gleichung aufgenommen werden. Hinweise hierzu finden Sie in Abschnitt 9.4.3.1.
9.3.1.2 Einflussreiche Beobachtungen „Einflussreiche“ Beobachtungen sind Beobachtungen, welche die Ergebnisse eines Regressionsmodells stark beeinflussen. Meistens handelt es sich dabei um Beobachtungen, die außergewöhnliche Kombinationen der an einer Regression beteiligten Variablen aufweisen („multivariate Ausreißer“); zum Beispiel eine Person mit sehr hohem Einkommen und einer sehr kleinen Wohnung. Multivariate Ausreißer sind nicht unbedingt durch bivariate Scatterplots auffindbar. Fälle, die in einem Scatterplot als Ausreißer auftauchen, können sich bei Kontrolle einer weiteren Variablen als „normal“ herausstellen. Stellt sich in unserem Beispiel heraus, dass die besagte Person an ihrem Zweitwohnsitz befragt wurde, erscheint die kleine Wohnung weniger überraschend. Ausreißer sind oft erklärbar. Sollten Sie eine Hypothese haben, welche Variable den oder die Ausreißer erklären kann und steht Ihnen gleichzeitig die unabhängige Variable ihrer Hypothese im Datensatz zur Verfügung, dann besteht die Lösung des Problems „multivariater Ausreißer“ darin, diese Variable in das multiple Regressionsmodell aufzunehmen. Für das eben konstruierte Beispiel müsste eine Variable in das Regressionsmodell aufgenommen werden, die zwischen Zweit- und Erstwohnsitz unterscheidet. Erste Hinweise auf einflussreiche Beobachtungen gibt bereits die Scatterplot-Matrix der an einer Regression beteiligten Variablen. Da jeder Datenpunkt eines Scatterplots auch in den übrigen Scatterplots auf der gleichen Zeile bzw. Spalte liegt, sind auffällige Beobachtungen über die Plots hinweg lokalisierbar (Schnell 1994: 148). Fol-
298 | 9 Einführung in die Regressionstechnik gende Grafik illustriert dies anhand einer Beobachtung, die wir zu diesem Zweck besonders hervorgehoben haben. . gen str label = string(hhnr2009) if hhinc == 507369 . graph matrix size hhsize hhinc, mlab(label)
0
5 5000
Size of housing unit in ft.^2
82507
82507
0
5
82507
Number of Persons in HH
82507
82507
82507
0
600000
HH Post−Government Income
0
5000
0
400000 200000
0 200000 400000 600000
Eine formalere Art, einflussreiche Fälle zu entdecken, ist DFBETA. Die Berechnung von DFBETA folgt einer einfachen Logik: Zunächst wird ein Regressionsmodell geschätzt. Danach wird die Regression erneut durchgeführt, diesmal lässt man jedoch eine Beobachtung weg. Das Ergebnis dieser Regression vergleicht man mit den vorherigen Ergebnissen. Sollte ein großer Unterschied in den geschätzten Koeffizienten zu sehen sein, hat der Fall, der bei der zweiten Schätzung nicht berücksichtigt wurde, einen großen Einfluss. Dieses Verfahren wird nun für jede Beobachtung wiederholt. Auf diese Weise lässt sich für jede Beobachtung notieren, wie groß ihr Einfluss auf Schätzung der Regressionskoeffizienten ist. Die Berechnung wird für jeden der k Regressionskoeffizienten einzeln durchgeführt. Formal lautet die Formel zur Berechnung des Einflusses der i-ten Beobachtung auf den k-ten Regressionskoeffizienten DFBETAik =
bk − bk(i)
se(i) /√RSSk
,
(9.19)
mit bk , dem geschätzten Koeffizienten der Variablen k, und bk(i) , dem entsprechenden Koeffizienten ohne die Beobachtung i; se(i) ist die Standardabweichung der Residuen ohne die Beobachtung i. Der Ausdruck im Nenner der Formel bewirkt eine Standardisierung der Differenz, so dass die Einflüsse der Beobachtungen zwischen den Koeffizienten vergleichbar bleiben (Hamilton 1992: 125). In Stata werden die Werte für DFBETAik durch den Befehl dfbeta berechnet. Der Befehl muss nach einem Regressionskommando eingegeben werden. Durch die Angabe einer Variablenliste wird spezifiziert, für welchen Koeffizienten die Veränderungen betrachtet werden sollen. Ohne Variablenliste werden die DFBETAs für alle Koeffizienten berechnet. Die Ergebnisse werden in Variablen geschrieben, die mit _dfbeta beginnen.
9.3 Regressionsdiagnostik
| 299
Durch die Befehlssequenz . regress size hhinc hhsize . dfbeta
werden zwei Variablen mit den Namen _dfbeta_1 und _dfbeta_2 erzeugt. Beide Variablen enthalten den Einfluss jeder Person auf die Schätzung des entsprechenden Koeffizienten. Ob es in Ihrem Datensatz einflussreiche Fälle gibt, kann z.B. durch einen Box-Plot mit Kennzeichnung der Ausreißer erkannt werden:
1
. graph box _dfbeta*, > marker(1, mlab(hhnr2009) ms(i)) > marker(2, mlab(hhnr2009) ms(i))
−1
0
82507 44100
140421
8091 9755 22902 115499 135402 46401 162777 43741 1642 8346 165056 81343 37221 161364 75241 44154 40006 49660 114964 85350 140164 32155 30991 12545 157660 34052 8949 155462 13052 113711 94349 83306 75399 121862 27311 46610 96544 37142 70757 48157 142890 14610 50248 109596 2263 30494 155924 152461 89075 129994 125414 129775 94459 18106 148865 136552 2633 115870 125713 72251 133968 73053 116823 115349 144078 61105 97680 123253 117726 138323 55322 98144 34348 72723 96358 129025 6804 103952 100889 116360 53900 39750 75947 12908 115413 22399 115772 125010 121556 164718 132014 137467 42938 146704 108697 23939 137914 105899 17749 10242 129501 132529 141363 77339 49676 156909 56904 117059 151977 117322 121510 3201 138813 121026 81897 163003 56806 30932 158352 145908 27661 135657 36315 123316 122107 106146 23244 154812 47512 153262 58651 147265 138550 5906 12101 82650 120311 64846 22110 42900 75544 98699 136356 154757 147513 43006 129724 37400 80735 41190 49246 160747 111815 4897 141624 102887 107471 57061 98562 82743 76096 91696 24749 89712 29584 72295 109399 166964 125205 88654 9229 32798 22353 61160 106497 96903 166518 15250 128864 150 81737 3951 41658 112209 44047 136314 60887 94957 57723 14144 41040 142662 100799 28011 127703 156620 52067 165712 73684 72945 29151 44819 85 138513 49796 45651 3550 143257 164667 118110 49489 92155 25569 137545 77450 88526 73150 127173 91750 36747 142409 136858 82894 68351 153663 147055 70401 8801 127955 2005 55250 91905 81010 79164 11015 41381 133833 146367 53295 10605 21750 126919 124422 132066 85957 123179 34708 91405 136761 5952 43550 112674 127330 62400 23149 86796 148413 84347 30555 132608 65440 127489 86947 165216 101853 148724 82865 57909 116071 130163 104801 155211 48946 135882 79293 32098 104399 9003 900 111688 22806 112065 73304 114318 114607 153309 87080 75455 148325 86985 102436 108349 119278 142625 2589 103254 27212 18250 116169 71504 136706 112376 121396 136470 23749 85439 113503 36792
85439 27212 114607 23749 113503 142625 159030 119278 22110 132608 116360 112065 36792 29151 148325 146367 153309 6354 8801 37999 22952 72610 136470 69106 126919 126417 165712 13550 136098 46700 115499 114231 126224 133833 127489 130163 153663 132066 102436 112376 127703 103254 156620 81737 155462 23244 71504 7636 40350 32798 1512 41381 127755 111564 131519 136356 91481 41040 6593 155053 111815 94006 62882 127330 53295 139667 75947 114318 116071 121396 150707 136314 118261 163714 54108 83694 71866 27544 47858 158565 149278 162615 47512 41190 57822 136911 163003 112168 120311 150111 79164 109851 65342 136858 136623 24749 36989 22806 119861 91003 117322 122299 103865 165216 165677 51009 139200 162414 51718 153262 165361 57061 129501 164667 139963 32098 88537 95453 131668 21220 131811 105643 164718 110544 31695 25029 37710 68449 135966 49676 143427 146057 2263 88092 140554 26910 143257 114356 28011 98216 121510 76399 120718 106497 27311 135657 89088 103106 114252 65826 102887 142251 13893 111373 5509 4697 117609 17199 129724 43438 19514 57315 150963 147837 132529 86903 98453 82811 116217 23209 62304 51202 122360 142164 132313 93100 36315 44546 153775 139152 36711 123253 18442 55988 108697 106089 83306 134978 63248 23939 67807 141363 76096 72295 1067 35248 34052 41893 21796 132014 13052 121456 53862 158352 73304 128356 125010 142801 116771 75894 115870 37142 46133 81897 60887 30932 67552 52743 111006 95302 126853 116653 17749 16250 1642 105756 55360 76291 67250 166452 8949 34673 115413 30834 151478 145908 47135 98419 125713 109098 71893 115772 100839 164164 116517 42198 98144 35896 125572 77450 121556 39750 14610 49246 106893 2633 44154 6804 21750 110751 3442 152908 36747 33860 100483 125205 73839 101655 109399 123179 81343 38344 155924 124758 140164 77339 85350 8091 10242 96903 37400 163824 81617 14197 75399 55322 138003 28649 115349 81010 70401 11015 18106 49660 161364 146704 129775 37601 129025 23149 43741 33500 22603 54765 166964 110806 56904 142890 46401 44998 153059 25569 138323 44819 152461 125414 75455 37221 155211 11312 5906 97680 97351 95605 62051 164614 109208 116169 114964 166429 9755 84761 46610 109596 22902 135402 44100
140421
−2
82507
Dfbeta hhinc
Dfbeta hhsize
Es gibt zwei Datenpunkte, welche die geschätzten Koeffizienten für das Haushaltseinkommen stark verringern. Gleichzeitig ist festzuhalten, dass keine Beobachtungen vorhanden sind, die dies in die entgegengesetzte Richtung ausgleichen. Darüber hinaus gibt es zwei Beobachtungen, die die geschätzten Koeffizienten der Haushaltsgröße erhöhen, ohne dass andere Datenpunkte einen Ausgleich liefern. Aus der Beschriftung erkennen wir, dass die Beobachtungen, die den Koeffizienten des Haushaltseinkommens erhöhen, aus denselben Familien stammen, die auch die Koeffizienten der Haushaltsgröße verringert haben. Beobachtungen aus diesen Haushalten sollten daher mit Vorsicht behandelt werden. √ In der Literatur gelten Werte von |DFBETA| > 2/ n als groß (Belsley et al. 1980: 28).³⁰ Im vorliegenden Modell wird diese Grenze gleich von mehreren Beobachtungen überschritten. Durch folgende Schleife erhält man eine Liste dieser Beobachtungen:³¹
30 Andere Autoren geben 1 als Grenzwert für DFBETA an (Bollen und Jackman 1990: 267). 31 Zum Befehl foreach vgl. Abschn. 3.2. Der Ausdruck abs() ist eine Funktion und gibt den Betrag des in Klammern stehenden Arguments wieder (Abschn. 3.1.6.2). Mit e(N) wird die Fallzahl des zuletzt geschätzten Regressionsmodells angesprochen (Kap. 4).
300 | 9 Einführung in die Regressionstechnik . foreach var of varlist _dfbeta* { . list persnr `var' if (abs(`var') > 2/sqrt(e(N))) & `var' < . . }
Eine weitere Möglichkeit zur Entdeckung von Ausreißern ist der „Added-VariablePlot“ („Partieller Regressionsplot“). Um den Added-Variable-Plot der Variablen X1 zu erstellen, wird zunächst eine Regression von Y gegen alle unabhängigen Variablen außer X1 durchgeführt. Danach wird eine Regression von X1 auf die übrigen unabhängigen Variablen berechnet. Die Residuen dieser beiden Regressionen werden gespeichert und anschließend gegeneinander geplottet.³² Added-Variable-Plots können in Stata mit den Post-Estimation-Kommandos avplot oder avplots erzeugt werden. Im Anschluss an eine lineare Regression erzeugt der Befehl avplot den Added-Variable-Plot für eine angegebene unabhängige Variable, avplots dagegen alle möglichen Plots in einer einzigen Darstellung. In unserem Beispiel haben wir denjenigen Haushalt, der uns zuvor auffällig erschien, kenntlich gemacht:
4000 e( size | X ) 0
e( size | X ) 1000 2000
2000
3000
4000
. gen suspicious = string(hhnr2009) if inlist(hhnr2009,82507,140421) . avplots, mlab(suspicious) mlabpos(6)
140421
140421
0
200000 400000 e( hhinc | X )
coef = .00644712, se = .00021379, t = 30.16
600000
−4000
−1000
0
−2000
82507
82507
−8
−6
−4 −2 e( hhsize | X )
0
2
coef = 106.89126, se = 4.9045815, t = 21.79
Weit außen liegende Punkte in diesen Plots sind „multivariate Ausreißer“. Derartige Fälle haben potentiell großen Einfluss auf die Regressionsergebnisse. Auffällig sind in den obigen Abbildungen vor allem einige Beobachtungen, deren Haushaltseinkommen höher ist, als man dies gemessen an der sonstigen Variablenkonstellation erwarten dürfte. In den hier gezeigten Grafiken sehen wir erneut die schon zuvor identifizierten problematischen Beobachtungen.
32 Die Logik des Added-Variable-Plots entspricht damit dem Vorgehen zur Interpretation der b-Koeffizienten des multiplen Regressionsmodells (Abschn. 9.2.3). Ein Scatterplot der dort erzeugten Residuen wäre ein Added-Variable-Plot.
9.3 Regressionsdiagnostik
| 301
Hamilton (1992: 141; 128–129) empfiehlt, Added-Variable-Plots zu verwenden, bei denen die Plotsymbolgröße proportional zu DFBETA ist. Hierzu müssen die Plots von Hand erzeugt werden. Für das Haushaltseinkommen in der vorliegenden multiplen linearen Regression würde man einen solchen Plot wie folgt erstellen:³³ regress size hhsize predict esize, resid regress hhinc hhsize predict ehhinc, resid generate absDF = abs(_dfbeta_1) graph twoway || sc esize ehhinc [weight = absDF], msymbol(oh) || lfit esize ehhinc, clp(solid)
−1000
0
1000
2000
3000
4000
. . . . . . > >
0
200000
400000
600000
Residuals Residuals
Fitted values
In Stata-Grafiken kann die Plotsymbolgröße über die Gewichtungsanweisung gesteuert werden. Der Gewichtungstyp spielt dabei keine Rolle. Im vorliegenden Fall ist darauf zu achten, dass die Werte von DFBETA negativ sein können. Aus diesem Grund werden zunächst die Absolutwerte von DFBETA berechnet und mit diesen gewichtet.³⁴ Die letzte Abbildung zeigt, dass die zuvor identifizierten multivariaten Ausreißer nennenswerten Einfluss auf die Regressionsgerade haben. Insgesamt scheinen die relativ wenigen Beobachtungen mit sehr hohen Einkommen das Regressionsergebnis vergleichsweise stark zu beeinflussen. Bisher wurden die Auswirkungen von einzelnen Beobachtungen für die unterschiedlichen Koeffizienten getrennt untersucht. Mit „Cook’s D“ steht eine Maßzahl zur Verfügung, die den Einfluss einer Beobachtung auf alle Regressionskoeffizienten simultan abschätzt (Fox 1991: 84), also den Einfluss einer Beobachtung auf das gesamte Regressionsmodell.
33 Im Beispiel wird die oben auf S. 299 erzeugte Variable _dfbeta_1 verwendet. Die x-Achse der hier erstellten Grafik wurde automatisch durch die vom predict-Befehl vergebenen Variablenlabels beschriftet. Zur Änderung dieser Beschriftung vgl. Abschn. 6.3.4.5. 34 Zur Gewichtungsanweisung allgemein vgl. Abschn. 3.3.
302 | 9 Einführung in die Regressionstechnik Der Maßzahl liegt die folgende Überlegung zu Grunde: Der Einfluss einer Beobachtung auf das Regressionsmodell setzt sich aus zwei Aspekten zusammen, dem Wert auf der abhängigen Variablen und der Kombination der unabhängigen Variablen. Eine einflussreiche Beobachtung besitzt einen außergewöhnlichen Y-Wert und eine außergewöhnliche Kombination von x-Werten. Nur wenn beide Aspekte vorliegen, wird die Schätzung der Koeffizienten durch die jeweilige Beobachtung stark beeinflusst. Dies wird durch die Grafiken in Abbildung 9.5 verdeutlicht. Die Grafiken zeigen Scatterplots der Wohnungsgröße gegen das Einkommen von fünf Engländern aus den Jahren 1965, 1967 und 1971.
50 60 70 80 90
1965 Sgt. Pepper
Paul John
George Ringo
Flat size
50 60 70 80 90
1967 Sgt. Pepper Paul John George Ringo
50 60 70 80 90
1971 Paul John
Sgt. Pepper
George Ringo
2000
2500
3000
3500
Income
Abb. 9.5. Scatterplots zu Leverage und Diskrepanz
Do-File: grbeatles.do
Im ersten Scatterplot hat Sgt. Pepper eine für sein Einkommen außergewöhnlich große Wohnung. Das Einkommen von Sgt. Pepper ist dagegen nicht ungewöhnlich; es entspricht dem Mittelwert des Einkommens der fünf Engländer. In die Abbildung sind zwei Regressionsgeraden eingezeichnet, die gepunktete Linie ist die Regressionsgerade, die sich bei einer Regression ohne Sgt. Pepper ergeben würde. Wird Sgt. Pepper mit in die Regression aufgenommen, verschiebt sich die Regressionsgerade ein wenig nach oben. Die Steigung der Geraden (der b-Koeffizient des Einkommens) ändert sich nicht. Im Scatterplot für das Jahr 1967 hat Sgt. Pepper ein außergewöhnlich hohes Einkommen. Die Größe seiner Wohnung entspricht dagegen genau der Quadratmeterzahl, die wir auf Grund unseres Modells erwarten würden. Sgt. Pepper hat also einen außergewöhnlichen Wert auf der x-Variablen, jedoch einen für diesen x-Wert recht gewöhnlichen y-Wert. Die Regressionsgeraden, die sich bei einer Berechnung mit und ohne Sgt. Pepper ergeben, sind in diesem Fall identisch. Im Scatterplot für das Jahr 1971 hat Sgt. Pepper ein außergewöhnlich hohes Einkommen und eine für dieses Einkommen außergewöhnlich kleine Wohnung. Hier
9.3 Regressionsdiagnostik
| 303
treffen damit beide oben genannten Aspekte zusammen. Entsprechend deutlich verändert sich die Regressionsgerade.³⁵ Die Feststellung, dass sich der Einfluss eines Punktes aus der Außergewöhnlichkeit der x- und y-Werte zusammensetzt, lässt sich mathematisch wie folgt ausdrücken: Einfluss = Leverage×Diskrepanz ,
(9.20)
wobei wir als „Leverage“ die Außergewöhnlichkeit der Kombination der x-Variablen bezeichnen (wie im zweitem Scatterplot) und als Diskrepanz die Außergewöhnlichkeit der y-Variablen (wie im ersten Scatterplot). Da Leverage und Diskrepanz multipliziert werden, ist der Einfluss einer Beobachtung gleich 0, wenn einer der beiden Aspekte fehlt. Zur Berechnung des Einflusses (9.20) benötigen wir Maßzahlen für Leverage und Diskrepanz. In einem Regressionsmodell mit nur einer unabhängigen Variablen kann als Maßzahl für Leverage der Anteil des Abstands einer Beobachtung vom Mittelwert an der Summe aller Abstände vom Mittelwert verwendet werden.³⁶ Bei mehreren unabhängigen Variablen wird der Abstand zwischen einer Beobachtung und dem Schwerpunkt der unabhängigen Variablen unter Berücksichtigung der Korrelations- und Varianzstruktur der unabhängigen Variablen verwendet (vgl. Fox 1997: 84). In Stata erhalten Sie den Leverage-Wert jeder Beobachtung durch den Befehl predict lev, leverage im Anschluss an die entsprechende Regression. Mit diesem Befehl würden Sie die Leverage-Werte jeder Beobachtung unter dem Variablennamen lev abspeichern. Zur Messung der Diskrepanz scheint es zunächst naheliegend, die Residuen des Regressionsmodells zu verwenden. Dies ist jedoch nicht sinnvoll. Bedenken Sie, dass Punkte mit einem hohen Leverage die Regressionsgerade in ihre Richtung ziehen und dadurch kleine Residuen aufweisen können. Wendet man Gleichung (9.20) mit den Residuen als Messung der Diskrepanz an, kann es vorkommen, dass man einen kleinen Wert für den Einfluss berechnet, obwohl der Datenpunkt die Ergebnisse der Regression deutlich verändert.³⁷ Zur Bestimmung der Diskrepanz benötigen wir deshalb eine um den Einfluss des Leverage bereinigte Maßzahl. Dies ist das standardisierte Residuum ei′ einer Beobach35 Stellen Sie sich die Regressionsgerade als eine Wippe vor. Suchen Sie in Gedanken den Mittelwert der unabhängigen Variablen, dort liegt der Keil oder Angelpunkt der Wippe. Punkte, die weit von diesem Angelpunkt und der Regressionsgeraden entfernt liegen, sind wahrscheinlich einflussreiche Punkte. 36 Mathematisch: 1 (x − x)2 hi = + n i (9.21) n ∑j=1 (xj − x)2 37 Dies lässt sich gut anhand der vierten Grafik des Anscombe-Quartetts verdeutlichen (S. 291). Würde man den Einfluss des Ausreißers in dieser Grafik mit der Gleichung (9.20) bestimmen und dabei die Residuen als Diskrepanz-Maßzahl heranziehen, läge der Einfluss des Ausreißers bei 0.
304 | 9 Einführung in die Regressionstechnik tung. Sie erhalten die Werte der standardisierten Residuen durch die predict-Option rstandard. Nachdem eine Maßzahl für Diskrepanz und Leverage gefunden ist, können beide Maßzahlen gemäß (9.20) miteinander multipliziert werden. Allerdings sollte man darauf achten, dass die beiden Werte mit einem geeigneten Gewicht in die Multiplikation einfließen. Diese Aufgabe wollen wir jedoch den Statistikern überlassen. Einer von ihnen – Cook – hat folgende Berechnung vorgeschlagen: Di =
ei 2 hi × , (1 − hi ) k⏟ +1 ⏟ ′
Leverage
(9.22)
Diskrepanz
wobei ei′ das standardisierte Residuum ist und hi für den Leverage einer Beobachtung steht. Cook’s D-Werte über 1 bzw. 4/n gelten als groß. Schnell (1994: 225) empfiehlt zur Bestimmung der einflussreichen Fälle eine Grafik, bei der die Beobachtungen gegen ihre laufende Nummer im Datensatz geplottet werden und der Schwellenwert mit einer waagerechten Linie markiert wird. Für die Grafik berechnen wir zunächst die Werte für Cook’s D im Anschluss an die Regression. Dies erreichen Sie durch die Option cooksd des Post-Estimation-Befehls predict: . regress size hhsize hhinc . predict cooksd, cooksd
Danach speichern wir den Schwellenwert in einem lokalen Makro. Dazu verwenden wir die Fallzahl des letzten Regressionsmodells (vgl. Kap. 4): . local max = 4/e(N)
Wir bilden die Variable index für die laufende Nummer und verwenden sie als x-Achse für die Grafik. Wir erzeugen die Grafik hier mit logarithmierter y-Achse:
Cook’s D
.2.4..681
. generate index = _n . scatter cooksd index, yline(`max') msymbol(p) yscale(log)
0
2000
4000 index
6000
9.3 Regressionsdiagnostik
| 305
Die Abbildung zeigt eine ganze Reihe von Beobachtungen, die über dem kritischen Wert liegen. Durch folgendes Kommando können Sie feststellen, dass es sich hierbei besonders um diejenigen Beobachtungen handelt, die ein vergleichsweise hohes Einkommen haben: . generate bigcook = cooksd > `max' . tabulate bigcook, summarize(hhinc) bigcook
Summary of HH Post-Government Income Mean Std. Dev. Freq.
0 1
35570.493 75854.632
20567.621 79519.082
5,195 212
Total
37149.971
26727.972
5,407
Zusammenfassend zeigen die in diesem Abschnitt vorgenommenen Analysen einen klaren Befund: Bei allen Diagnosen waren Beobachtungen aus zwei Haushalten auffällig, die beide außergewöhnlich hohe Einkommen hatten. Die Ergebnisse des Modells werden durch diese relativ wenigen Beobachtungen sehr viel stärker geprägt als durch die sehr vielen Beobachtungen mit kleinen, mittleren und hohen (aber nicht sehr hohen) Einkommen. Lesen Sie weiter, um zu erfahren, wie Sie mit einflussreichen Beobachtungen umgehen können.
Lösungsmöglichkeiten Natürlich fragt man sich, was im Falle einflussreicher Beobachtungen zu tun ist. Erweist sich eine einflussreiche Beobachtung unzweifelhaft als Messfehler, ist dieser zu korrigieren oder die Beobachtung ist aus dem Datensatz zu entfernen. Sind die einflussreichen Beobachtungen eine Folge von extremen Werten der abhängigen Variablen, bietet sich eine Median-Regression an (Abschn. 9.6.1). Fast immer sind einflussreiche Beobachtungen aber die Folge eines nicht vollständig spezifizierten Modells. Außergewöhnliche Fälle sind ja nur deshalb außergewöhnlich, weil unsere Theorie sie unvollständig erklärt. Da im vorliegenden Fall insbesondere sehr hohe Einkommen die Regression stark beeinflussen, sollte man sich fragen, ob es einen Faktor gibt, der die Wohnungsgröße zusätzlich beeinflusst und der typischerweise mit hohem (bzw. niedrigem) Einkommen einhergeht. Bei rechtsschiefen Verteilungen, wie die der Variablen Einkommen, besteht eine denkbare Veränderung des Modells oft darin, das logarithmierte Haushaltseinkommen statt des Haushaltseinkommens zu verwenden. Inhaltlich hat dies den Effekt, dass man dem Haushaltseinkommen eine logarithmische Beziehung zur Wohnungsgröße unterstellt: Je höher das Haushaltseinkommen, desto geringer ist die Veränderung der Wohnungsgröße bei einer Veränderung des Haushaltseinkommens um jeden weiteren Euro.
306 | 9 Einführung in die Regressionstechnik Wenn für Sie keine dieser Lösungen zufriedenstellend ist, ist es natürlich auch möglich, die einflussreichen Beobachtungen aus Ihrem Datensatz herauszunehmen und die Regression erneut berechnen zu lassen. Wenn Sie dies tun, sollten Sie jedoch immer beide Ergebnisse berichten – also das mit den fraglichen Beobachtungen und das ohne. Einer inhaltliche Aussage, die lediglich anhand eines der beiden Modelle getroffen werden kann, sollte man äußerst skeptisch gegenüberstehen.
9.3.1.3 Übersehene Einflussfaktoren Als „übersehene Einflussfaktoren“ werden Variablen bezeichnet, die einen Einfluss auf die abhängige Variable haben und gleichzeitig mindestens mit einer der übrigen Variablen im Modell korrelieren. Prinzipiell sind auch nichtlineare Beziehungen und einflussreiche Fälle übersehene Einflussfaktoren. Im ersten Fall wurde übersehen, dass eine unabhängige Variable nicht über ihren ganzen Wertebereich den gleichen Einfluss auf die abhängige Variable hat. Im zweiten Fall wurde entweder versäumt, eine explizite Fehlertheorie in das Modell einzubauen, oder es wurden diejenigen Mechanismen übersehen, die auch die Ausreißer erklärbar machen würden. Zur Entdeckung weiterer fehlender Einflussfaktoren kann ein Plot der Residuen gegen nicht im Modell enthaltene Variablen erstellt werden (Schnell 1994: 229). Allerdings ist das nur mit Variablen möglich, die im Datensatz vorhanden sind. Selbst wenn sich in den Plots keine Auffälligkeiten zeigen, kann das Problem trotzdem bestehen. Diese Diagnostik ist daher sinnvoll, aber nicht hinreichend. Die Identifizierung übersehener Einflussfaktoren ist in erster Linie ein theoretisches Problem. Vor allzu schematischer Anwendung von Hilfsmitteln zur Entdeckung übersehener Einflussfaktoren sei darum gewarnt. Im Übrigen besteht bei dem Ziel, alle wichtigen Einflussfaktoren in das Modell aufzunehmen, immer auch die Gefahr der „Multikollinearität“. Wenn sich eine x-Variable durch eine andere x-Variable mit einer Linearkombination vollständig vorhersagen lässt, wird Stata eine der beiden Variablen bei der Berechnung aus dem Modell entfernen. Aber auch wenn die Vorhersage gelingt können Probleme entstehen: Der Standardfehler (Abschn. 8.1.4) der geschätzten Koeffizienten erhöht sich und es kommt zu unerwarteten Veränderungen in der Koeffizientengröße oder deren Vorzeichen. Sie sollten es darum dringend vermeiden, wahllos Variablen in das Regressionmodell einzuführen. Schließlich wollen wir Sie noch auf einen weiteren Stata-Befehl aufmerksam machen, auch wenn wir das dahinter liegende statistische Konzept an dieser Stelle nicht weiter erläutern möchten. Zur Entdeckung von Multikollinearität können Sie im Anschluss an das Regressionsmodell estat vif eingeben, Sie bekommen dann für jede unabhängige Variable den sog. „Variance Inflation Factor“, zur Interpretation und Erklärung vgl. z.B. Fox (1997: 338).
9.3 Regressionsdiagnostik
| 307
9.3.2 Heteroskedastizität Die Annahme VAR(ϵi ) = δ2 fordert, dass die Varianz der Fehler für alle Werte von X gleich sein soll. Sie wird auch als „Homoskedastizitätsannahme“ bezeichnet und ihre Verletzung entsprechend als „Heteroskedastizität“. Heteroskedastizität führt im Gegensatz zur Verletzung von E(ϵi ) = 0 nicht zu einer verzerrten Schätzung der Koeffizienten. Die geschätzten Koeffizienten eines Regressionsmodells, bei dem die Homoskedastizitätsannahme verletzt ist, sind jedoch nicht effizient. Bei ineffizienten Schätzungen erhöht sich die Wahrscheinlichkeit dafür, dass der konkret ermittelte Regressionskoeffizient vom wahren Wert in der Grundgesamtheit abweicht. Die Ursachen für Heteroskedastizität sind vielfältig. Relativ häufig tritt das Problem auf, wenn die Verteilung der abhängigen Variablen im Modell nicht symmetrisch ist. Zur Untersuchung der Symmetrie von Variablen eignen sich z.B. die in Abschnitt 7.3.3 beschriebenen Verfahren zur grafischen Darstellung von Variablen mit vielen Ausprägungen. Ein spezielles Verfahren zur Untersuchung der Symmetrie von Verteilungen ist der „Symmetrieplot“ (Schnell 1994: 76). Hierbei wird zunächst der Median bestimmt. Danach werden die Abstände der nächstgrößeren und der nächstkleineren Beobachtung zum Median bestimmt und beide Werte gegeneinander geplottet. Entsprechend wird auch mit den übernächsten und allen anderen Beobachtungen verfahren. Sind die Abstände stets gleich groß, liegen die Plotsymbole auf der Hauptdiagonalen. Sind die Abstände der Beobachtungen über dem Median größer als die Abstände unter dem Median, so ist die Verteilung rechtsschief. Im umgekehrten Fall ist die Verteilung linksschief. In Stata werden Symmetrieplots durch den Befehl symplot erstellt. Hier ist der Symmetrieplot der Wohnungsgröße: . symplot size
0
Distance above median 1000 2000 3000
4000
Size of housing unit in ft.^2
0
200
400 600 Distance below median
800
1000
308 | 9 Einführung in die Regressionstechnik Die Abbildung zeigt eine deutlich rechtsschiefe Verteilung der Wohnungsgröße. Bei einer solchen Verteilung ist zu befürchten, dass die Homoskedastizitätsannahme verletzt ist. Zur Überprüfung der Homoskedastizitätsannahme wird üblicherweise ein Residualvs.-Fitted-Plot empfohlen (Schnell 1994: 231). Wir möchten Ihnen hier eine Variante dieses Plots vorstellen, bei der die Untersuchung der Varianz der Residuen besonders betont wird. Dabei wird die x-Achse in k-Gruppen mit etwa gleich vielen Fällen unterteilt und für jede der Gruppen ein Boxplot der studentisierten Residuen berechnet. Zunächst berechnen wir noch einmal die Regression einschließlich der vorhergesagten Werte und der studentisierten Residuen: . regress size hhinc hhsize . predict yhat . predict rstud, rstud
Für das Beispiel wurde die Zahl der Gruppen so bestimmt, dass jeder Boxplot auf etwa 200 Beobachtungen basiert:
−10
−5
Studentized residuals 0 5
10
. local groups = round(e(N)/200,1) . xtile groups = yhat, nq(`groups') . graph box rstud, over(groups)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Die Abbildung zeigt eine leicht zunehmende – jedoch noch akzeptable – Tendenz der Varianz der Residuen.
Lösungsmöglichkeiten Zur Beseitigung von Heteroskedastizität genügt in vielen Fällen die Transformation der abhängigen Variablen. Ziel dieser Transformation sollte es sein, eine möglichst symmetrisch verteilte abhängige Variable zu erhalten. Bei rechtsschiefen Variablen genügt es oft, diese Variablen zu logarithmieren. Mit dem Befehl bcskew0 lässt sich
9.3 Regressionsdiagnostik
| 309
eine Variable darüber hinaus so transformieren, dass sie möglichst symmetrisch wird (vgl. Abschn. 9.4.3.2). Führt die Transformation der abhängigen Variablen nicht zur Beseitigung der Heteroskedastizität, können Sie die in der Regressionsausgabe ausgewiesenen Standardfehler der Koeffizienten nicht zur Grundlage eines Signifikanztests verwenden.³⁸ Wenn Sie dennoch an einem Signifikanztest interessiert sind, so können Sie die Option robust des Regressionsbefehls verwenden. Mit dieser Option werden die Standardfehler auf eine Art geschätzt, welche die Homoskedastizität der Fehler nicht voraussetzt. Beachten Sie auch, dass die Homoskedastizitätsannahme hinfällig ist, wenn Sie Standardfehler für komplexe Stichproben mit den Techniken aus Abschnitt 8.2.2.3 berechnen. 9.3.3 Autokorrelation Mit COV(ϵi , ϵj ) = 0; i ≠ j ist gemeint, dass die Fehler untereinander unkorreliert sein sollten. Die Verletzung dieser Annahme wird „Autokorrelation“ genannt. Eine typische Verletzung der „Autokorrelationsannahme“ lässt sich im Kontext der komplexen Stichprobe (Abschn. 8.2.2.1) erkennen: Dort unterschieden sich die Befragten aus ein und derselben primären Stichprobeneinheit (PSU) systematisch von denen aus allen anderen PSUs. Dieses Problem würde weiter verstärkt, wenn es für jede Stichprobeneinheit nur einen Interviewer gäbe. Nehmen Sie an, Sie hätten die Wohnungsgröße durch eine Einschätzung der Interviewer erhoben. In diesem Fall wäre es nicht unwahrscheinlich, dass einige Ihrer Interviewer generell dazu neigen, die Wohnungsgrößen der Befragten zu unterschätzen, andere dagegen diese zu überschätzen. In diesem Fall wären sich alle Beobachtungen eines Interviewers untereinander in einer gewissen Hinsicht ähnlich: nämlich in dem Ausmaß, mit dem die Wohnungsgröße über- oder unterschätzt wird. Ein ähnlicher Fall tritt ein, wenn alle Personen eines Haushalts befragt werden. Auch in diesem Fall dürfte es unter den unbeobachteten Einflüssen (ϵi ) Faktoren geben, die die Antworten der Mitglieder ein und desselben Haushalts jeweils in dieselbe Richtung ziehen. Autokorrelation führt zu einer ineffizienten Schätzung der Koeffizienten. Dies bedeutet, dass die Standardfehler in der Ausgabe von Regressionen zu klein sind, dass die Konfidenzintervalle zu schmal sind und dass Signifikanz zu früh ausgesprochen wird. In den meisten Fällen kann ein zu geringer Standardfehler mit Hilfe des Präfixes svy behoben werden, vgl. hierzu Abschnitt 8.2.2.3. Hier sehen Sie die korrigierten Regressionsergebnisse mit den Einstellungen von Seite 231: . gen sampleR = sample . replace sampleR = 2 if sample==4 (150 real changes made)
38 Zu den Begriffen „Signifikanz“ und „Standardfehler“ vgl. Abschn. 8.2.
310 | 9 Einführung in die Regressionstechnik
. svyset psu [pweight=xweight], strata(sampleR) pweight: VCE: Single unit: Strata 1: SU 1: FPC 1:
xweights linearized missing sampleR psu
. svy: regress size hhinc hhsize (running regress on estimation sample) Survey: Linear regression Number of strata Number of PSUs
= =
4 515
size
Coef.
hhinc hhsize _cons
.0062389 99.84128 586.8209
Linearized Std. Err. .0013269 14.02799 27.86148
Number of obs Population size Design df F( 2, 510) Prob > F R-squared t 4.70 7.12 21.06
= = = = = =
5,407 80,645,043 511 163.75 0.0000 0.2761
P>|t|
[95% Conf. Interval]
0.000 0.000 0.000
.0036321 72.28165 532.0838
.0088457 127.4009 641.558
Beim Vergleich dieser Ergebnisse mit denen ohne svy (S. 289) zeigt sich, dass die Konfidenzintervalle aller Koeffizienten deutlich größer sind. Dies ist häufig der Fall bei komplexen Stichproben. Ohne Beachtung der komplexen Beschaffenheit eine Stichprobe sollten Sie in der Regel den Inferenzstatistiken kein Vertrauen schenken. Besondere Aufmerksamkeit wird der Autokorrelation außerdem im Rahmen von Zeitreihenanalysen zuteil, da zeitlich aufeinanderfolgende Beobachtungen einander häufig ähnlicher sind als zeitlich weit auseinanderliegende Beobachtungen („serielle Autokorrelation“). Für Zeitreihenanalysen wurde die „Durbin-Watson-Teststatistik“ entwickelt. Diese kann in Stata mit dem Befehl dwstat nach einer Regression angefordert werden. Allerdings erfordert dieser Befehl, dass der Datensatz als Zeitreihe deklariert wurde.³⁹
9.4 Verfeinerte Modelle In diesem Abschnitt werden wir Ihnen einige Erweiterungen des linearen Regressionsmodells vorstellen. Diese Erweiterungen beziehen sich auf den Umgang mit kategorialen unabhängigen Variablen, auf die Aufnahme von Interaktionstermen und die Modellierung von kurvilinearen Zusammenhängen. 39 Da wir Zeitreihenanalysen in diesem Buch nicht behandeln, verweisen wir hier auf help tsset sowie auf [TS] intro.
9.4 Verfeinerte Modelle
| 311
9.4.1 Kategoriale unabhängige Variablen Probleme bereitet es, wenn Sie eine kategoriale Variable mit mehr als zwei Ausprägungen in eine Regression aufnehmen wollen. Als Beispiel hierfür sei der Familienstand angeführt. Die Variable mar hat fünf Kategorien: verheiratet, ledig, verwitwet, geschieden und getrennt lebend: . use data1, clear (SOEP 2009 (Kohler/Kreuter)) . tabulate mar Marital Status of Individual
Freq.
Percent
Cum.
Married Single Widowed Divorced Separated
3,080 1,394 400 449 87
56.93 25.77 7.39 8.30 1.61
56.93 82.70 90.09 98.39 100.00
Total
5,410
100.00
Die Aufnahme der Variablen Familienstand in die Reihe der unabhängigen Variablen eines Regressionsmodells ist problematisch, weil eine Veränderung dieser Variablen von einer Einheit zur nächsten nicht in regelmäßigen Schritten vollzogen werden kann. Es ist nicht sinnvoll anzunehmen, ein Schritt von verheiratet zu geschieden sein, habe für die Wohnungsgröße die gleiche Bedeutung wie der Schritt von verwitwet zu geschieden. Genau diese Behauptung würde man jedoch implizit treffen, wenn man eine kategoriale Variable mit mehreren Ausprägungen unverändert in ein Regressionsmodell aufnimmt. Aus diesem Grund müssen die Kategorien einzeln untereinander kontrastiert werden. Was das bedeutet, wollen wir im Folgenden erläutern. Keine Probleme bereitet es, in das Modell eine Variable aufzunehmen, die zwischen verheirateten und nicht verheirateten Befragten unterscheidet: . generate married = mar == 1 if !mi(mar)
Dazu wird eine dichotome Variable gebildet mit den Ausprägungen 0 für nicht verheiratet und 1 für verheiratet. Der b-Koeffizient dieser Variablen in einem Regressionsmodell ließe sich analog zu dem der Dummy-Variablen in dem Modell auf Seite 283 interpretieren. Nach diesem Muster könnte man z.B. sagen, Verheiratete hätten eine um b Quadratmeter größere Wohnung als nicht Verheiratete. Entsprechend könnte man auch andere Kontraste bilden: . . . .
generate generate generate generate
single = mar == 2 if !mi(mar) widowed = mar == 3 if !mi(mar) divorced = mar == 4 if !mi(mar) separated = mar == 5 if !mi(mar)
312 | 9 Einführung in die Regressionstechnik Jeder dieser Kontraste bildet den Gegensatz zwischen einem Familienstand und allen anderen Personen ab. Im folgenden Regressionsmodell verwenden wir die Kontraste als unabhängige Variablen, wobei wir jedoch einen der Kontraste – widowed – weglassen: . regress size hhinc hhsize married single divorced separated, noheader size
Coef.
hhinc hhsize married single divorced separated _cons
.0063692 107.6239 -61.45118 -166.3739 -159.533 -153.5253 683.6544
Std. Err. .000213 5.178204 21.82667 22.7343 26.5044 45.66446 20.35964
t 29.90 20.78 -2.82 -7.32 -6.02 -3.36 33.58
P>|t| 0.000 0.000 0.005 0.000 0.000 0.001 0.000
[95% Conf. Interval] .0059515 97.47256 -104.2403 -210.9423 -211.4923 -243.0461 643.7413
.0067868 117.7753 -18.6621 -121.8055 -107.5737 -64.00455 723.5675
Der Grund für das Weglassen einer der Kontraste ist, dass nur vier der DummyVariablen benötigt werden, um von jeder Person zu wissen, welchen Familienstand sie hat: Eine Person, die nicht verheiratet ist, nicht ledig, nicht verwitwet und nicht geschieden ist, muss von ihrem Ehepartner getrennt leben. In solchen Fällen spricht man davon, dass eine der Variablen mit den anderen „kollinear“ ist. Der Einfluss kollinearer Variablen kann in einem Regressionsmodell nicht geschätzt werden. Erst nach Entfernen der entsprechenden Variablen wird die Modellgleichung lösbar. Die Kategorie, für die keine Dummy-Variable im Modell vorhanden ist, wird auch als „Referenzkategorie“ bezeichnet. Für die Interpretation eines Modells ist es sehr wichtig zu wissen, welches die „Referenzkategorie“ ist. Um dies zu verstehen, denken Sie erneut an die Bedeutung der Konstanten in einem Regressionsmodell: Diese entspricht dem vorhergesagten Wert, wenn alle unabhängigen Variablen des Modells den Wert Null haben. In unserem Beispiel sind diejenigen Personen, die bei allen Dummy-Variablen von mar den Wert Null haben, die Verwitweten. Deshalb beschreibt die Regressionskonstante den vorhergesagten Wert von Verwitweten ohne Haushaltseinkommen und einer Haushaltsgröße von Null. Die Wohnungsgrößen der Personen mit anderem Familienstand unterscheiden sich von diesen in Höhe der angegebenen Koeffizienten. Im obigen Modell haben die Verheirateten also eine um durchschnittlich 61, 45 ft2 kleinere Wohnung als verwitwete Personen. Noch kleiner sind die Wohnungen der Ledigen, deren Wohnungen durchschnittlich um 166, 37 ft2 kleiner sind als die der verwitweten Personen. Die übrigen Koeffizienten werden entsprechend interpretiert. Die hier erzielten Koeffizienten sind mehr als nur etwas überraschend. Plausibel wäre es gewesen, wenn Verheiratete größere Wohnungen gehabt hätten als verwitwete Personen. Laut Modell ist es jedoch umgekehrt. Solche offensichtlichen Differenzen zum Common Sense sind zwar als Analyseergebnis durchaus nicht unerwünscht, jedoch in vielen Fällen auch bloße Artefakte. So auch in diesem Fall. Die Verwitweten wohnen häufig allein, d.h., sie haben eine Haushaltsgröße von 1. Solange alle ande-
9.4 Verfeinerte Modelle
| 313
ren Faktoren konstant gehalten werden, besitzt ein verheiratetes Paar im Durchschnitt eine um 61, 45 ft2 kleinere Wohnung als Verwitwete. Allerdings müsste man bei Verheirateten praktisch immer den positiven Koeffizienten von hhsize hinzuaddieren, da sie ja in der Regel mindestens zu zweit leben. Reduziert man den Effekt der Haushaltsgröße (107,62) um den negativen Effekt des Familienstands „verheiratet“, so bleibt für das verheiratete Paar ohne Kinder immer noch eine im Schnitt um 46, 17 ft2 größere Wohnung als für eine allein lebende verwitwete Person. Kategoriale Variablen wie mar werden häufig in Regressionsmodellen verwendet. Stata besitzt daher zwei hilfreiche Werkzeuge zum Umgang mit solchen Variablen: erstens die Option stcmdgen(newvar) des tabulate-Befehls und zweitens die sog. Faktorvariablennotation [U] 11.4.3 Factor variables. Das erste Werkzeug sind automatisch Dummy-Variablen für alle Ausprägungen der kategorialen Variablen. Hier verwenden wir diese Möglichkeit zur Erstellung der Variablen mar_1 bis mar_5: . tabulate mar, gen(mar_)
Die neuen Variablen können Sie in Ihr Regressionsmodell einsetzen. Dabei können Sie selbst entscheiden, welche der Dummy-Variablen Sie weglassen; der weggelassene Kontrast ist dann die Referenzkategorie. Sie können diese Entscheidung unter rein pragmatischen Gesichtspunkten treffen. Letztlich ist es völlig arbiträr, da sich die gewonnenen Befunde inhaltlich nicht unterscheiden. Mit Hilfe der Faktorvariablennotation kann man Dummy-Variablen für kategoriale Variablen in einem Regressionsmodell verwenden, ohne diese vorher zu erzeugen. Die Grundidee der Faktorvariablennotation ist dabei, in der Variablenliste des Regressionskommandos kategoriale Variablen durch den vorangestellten Operator i. zu kennzeichnen. Bei allen Variablen, für die Sie dies tun, erzeugt Stata im Hintergrund virtuelle Dummy-Variablen, wählt dann eine Referenzkategorie und schätzt schließlich das Modell mit diesen Dummy-Variablen. Hier ist ein Beispiel mit dem Familienstand (mar) und der sozialen Klasse nach (Erikson und Goldthorpe 1992) (egp)⁴⁰: . regress size hhinc hhsize i.mar i.egp, noheader size
Coef.
Std. Err.
hhinc hhsize
.0061854 113.7141
.0002441 5.988777
mar Single Widowed Divorced Separated
-103.2019 58.4887 -82.69869 -95.12313
14.60338 22.35011 20.54655 42.51988
t
P>|t|
[95% Conf. Interval]
25.34 18.99
0.000 0.000
.0057068 101.9733
.006664 125.4548
-7.07 2.62 -4.02 -2.24
0.000 0.009 0.000 0.025
-131.8312 14.67218 -122.9794 -178.4817
-74.57252 102.3052 -42.41798 -11.76454
egp
40 Die Ausprägungen der Variablen egp sind nicht fortlaufend nummeriert, da einige schwach besetzten aus Gründen des Datenschutzes mit anderen Ausprägungen verschmolzen wurden.
314 | 9 Einführung in die Regressionstechnik Service cl.. Higher rou.. Lower rout.. Self-Emplo~d Skilled ma.. Semi- and .. unemployed Retired _cons
-57.52079 -67.02651 -25.83427 31.1338 -81.56398 -105.6007 -171.8781 -43.00595
24.52347 29.92765 28.39558 32.66333 26.90431 25.78623 30.35601 24.4626
-2.35 -2.24 -0.91 0.95 -3.03 -4.10 -5.66 -1.76
0.019 0.025 0.363 0.341 0.002 0.000 0.000 0.079
-105.5981 -125.6985 -81.5027 -32.9014 -134.3088 -156.1536 -231.3899 -90.96394
-9.443481 -8.354513 29.83415 95.169 -28.81912 -55.04781 -112.3663 4.95203
668.938
28.76018
23.26
0.000
612.5547
725.3212
Mit der Faktorvariablennotation gibt es vielfältige Möglichkeiten, das Verhalten von Stata bei der Verwendung von kategorialen unabhängigen Variablen zu beeinflussen. Mit dem Operator ib. kann man die Referenzkategorie selbst bestimmen. Durch die Eingabe von . regress size hhinc hhsize ib4.mar ib(#8).egp
wird Stata die Kategorie mit dem Wert 4 für mar sowie die achtgrößte Ausprägung von egp als Referenzkategorien verwenden. Weite Optionen sind ib(first) für den kleinsten bzw. ib(last) für den größten Wert sowie ib(freq) für denjenigen Wert mit den meisten Ausprägungen. Es ist auch möglich, eine Teilmenge der Kategorien für die Aufnahme in das Modell auszuwählen. Dies wird durch direktes Platzieren einer Zahl bzw. einer numlist hinter dem i.-Operator erreicht. Durch . regress size hhinc hhsize i2.mar i(1/5).egp
wird eine virtuelle Dummy-Variable für ledig (gegenüber allen anderen Kategorien) sowie vier Dummies für die Kategorien 2, 3, 4 und 5 von egp (gegenüber allen anderen Kategorien) in das Regressionsmodell aufgenommen. Schließlich ist es möglich, Faktorvariablen-Befehle auf Gruppen von Variablen anzuwenden. Dazu werden die Variablennamen hinter dem Faktorvariablen-Operator in Klammern geschrieben. Das ist sehr praktisch, besonders bei einer großen Zahl von kategorialen Variablen. Hier ist ein Beispiel mit den Variablen mar und egp: . regress size hhinc hhsize i.(mar egp)
9.4.2 Interaktionseffekte Mit Interaktionseffekten untersucht man, ob der Einfluss einer unabhängigen Variablen systematisch vom Wert einer anderen unabhängigen Variablen abhängt. Um dies genauer zu erläutern, wollen wir die Analyse der Einkommensungleichheit aus Kapitel 1 wieder aufgreifen. Dort hatten wir versucht, das Bruttoeinkommen der Beschäftigten durch Geschlecht und Beschäftigungsstatus zu erklären. Konkret verwendeten
9.4 Verfeinerte Modelle
| 315
wir folgendes Modell des Einkommens auf der Basis von Befragten, die mindestens irregulär beschäftigt sind: . . . . .
use gen gen gen reg
data1, clear men = sex==1 empR = emp if emp!=5 incomeR = income if income > 0 incomeR men i.empR
Die Analyse zeig, dass Frauen im Allgemeinen weniger verdienen als Männer und dass dieser Unterschied nur teilweise auf die häufigere Teilzeitbeschäftigung der Frauen zurückzuführen ist. Im Folgenden gehen wir davon aus, dass das Einkommen nicht nur vom Geschlecht und Erwerbsstatus abhängt, sondern auch vom Alter. Wir werden daher das Alter in das Regressionsmodell aufnehmen. Allerdings nehmen wir gleichzeitig an, dass die Einkommensungleichheit umso stärker zum Tragen kommt, je älter man ist. Zwei Gründe sprechen für diese Vermutung: – Frauen unterbrechen ihre berufliche Karriere häufiger für die Kinderbetreuung als Männer. Diese Erwerbsunterbrechungen führen zu Schwierigkeiten bei der Rückkehr in den Arbeitsmarkt, die zu einem Missverhältnis zwischen der Qualifikation und den Anforderungen an den neuen Arbeitsplatz führen. Frauen geraten darum im Lebensverlauf mehr und mehr ins Hintertreffen. Das geschlechtsspezifische Lohngefälle sollte daher besonders stark am Ende der Karriere sein. – In der Vergangenheit wurden in Deutschland Familien durch das so genannte „Modell des männlichen Ernährers“ dominiert, was dazu führte, dass Frauen weniger in Bildung und berufliche Karrieren investierten. Dieses Rollenbild hat sich jedoch geändert. Moderne Frauen haben die gleiche oder sogar bessere Bildung als Männer, und sie sind weit weniger bereit, ihre Karriere für die Kinderbetreuung aufzugeben. Es ist daher davon auszugehen, dass die geschlechtsspezifischen Lohnunterschiede bei den älteren Frauen, die überwiegend den traditionellen Geschlechterrollen verhaftet blieben, viel stärker sind. Beide Gründe legen die Vermutung nahe, dass der Effekt des Geschlechts auf das Einkommen umso stärker ist, je älter die Personen sind, die man betrachtet. Solche, für Werte einer dritten Variablen variierenden Effekte, werden „Interaktionseffekte“ genannt. In einem Regressionsmodell werden Interaktionseffekte eingeführt, indem die beteiligten Variablen multipliziert werden. Dies geschieht durch generate oder mit Hilfe der Faktorvariablennotation. Wir beginnen mit der komplizierteren Variante, der Multiplikation der beteiligten Variablen. Bei unserem Beispiel sind die Variablen Geschlecht und Alter am Interaktionseffekt beteiligt. Das Lebensalter in Jahren ehalten wir aus dem Geburtsjahr (ybirth): . generate age = 2009 - ybirth
316 | 9 Einführung in die Regressionstechnik Aus einer Reihe von Gründen ist es vorteilhaft, metrische Variablen wie z.B. die Bildungsdauer oder das Alter zu zentrieren, bevor man sie in ein lineares Regressionsmodell einführt. Dies gilt insbesondere in Gegenwart von Interaktionstermen (Aiken und West 1991). Bei der Zentrierung wird von jedem Wert einer Variablen der Mittelwert der Variablen abgezogen. In unserem Fall ist zu beachten, dass der Mittelwert nur auf Basis derjenigen Fälle berechnet wird, die auch in das Regressionsmodell eingeschlossen werden. Dafür verwenden wir die Funktion mi(). Diese Funktion gibt eine 1 aus, wenn mindestens eines der in der Klammer genannten Argumente einen fehlenden Wert aufweist, andernfalls eine 0. . summarize age if !missing(incomeR,empR,men,age) . generate age_c = age - r(mean)
Um den Interaktionsterm zu erstellen, werden nun beide Variablen, die Teil der Interaktion sind, multipliziert. . generate menage = men * age_c
Jetzt können wir das lineare Regressionsmodell um die Variable age_c sowie den gerade erstellten Interaktionsterm menage erweitern: . regress incomeR i.empR men age_c menage Source
SS
df
MS
Model Residual
5.9995e+11 4.4090e+12
5 2,880
1.1999e+11 1.5309e+09
Total
5.0089e+12
2,885
1.7362e+09
Std. Err.
t
Number of obs F(5, 2880) Prob > F R-squared Adj R-squared Root MSE
P>|t|
= = = = = =
2,886 78.38 0.0000 0.1198 0.1182 39127
incomeR
Coef.
[95% Conf. Interval]
empR 2 4
-16120.07 -29188.95
2076.971 2669.66
-7.76 -10.93
0.000 0.000
-20192.57 -34423.58
-12047.57 -23954.31
men age_c menage _cons
12151.78 190.1975 412.3474 31363.58
1668.855 94.01761 130.3497 1408.624
7.28 2.02 3.16 22.27
0.000 0.043 0.002 0.000
8879.512 5.848915 156.7592 28601.57
15424.06 374.5461 667.9356 34125.6
Betrachten wir nun die geschätzten Koeffizienten unseres Modells; wir beginnen mit den einfachen. Die Konstante zeigt, wie gewohnt, den vorhergesagten Wert für jene Beobachtungen, die auf allen unabhängigen Variablen des Modells Null sind: Das geschätzte durchschnittliche Jahreseinkommen für vollzeiterwerbstätige Frauen mit durchschnittlichem Alter liegt bei 31.364 €. Die Interpretation der Koeffizienten für die Kategorien 2 und 4 des Erwerbsstatus ist ebenfalls unkompliziert: Teilzeitbeschäftigte Befragte haben im Durchschnitt ein um 16.120 € geringeres Einkommen als
9.4 Verfeinerte Modelle
| 317
diejenigen, die vollzeitbeschäftigt sind, und diejenigen, die unregelmäßig beschäftigt sind, verdienen 29.189 € weniger als Vollzeitbeschäftigte. Kommen wir zum Interaktionsterm. Im Folgenden setzten wir der Einfachheit halber alle Dummy-Variablen von emp auf Null, d.h. wir sprechen jeweils ausschließlich von den Vollzeitbeschäftigten. Für die Vollzeitbeschäftigten sieht die Gleichung der vorherigen Regression zur Berechnung der vorhergesagten Werte in etwa wie folgt aus: ŷ i = 31364 + 12152 ⋅ men + 190 ⋅ age_c + 412 ⋅ men ⋅ age_c . wobei die Zahlen den auf ganze Stellen gerundeten jeweiligen geschätzten Regressionskoeffizienten entsprechen. Nutzen wir diese Formel, um die vorhergesagten Werte für Frauen mit durchschnittlichem Alter zu berechnen. Mit Hilfe der gespeicherten Ergebnisse geht das wie folgt: . display _b[_cons] + _b[men]*0 + _b[age_c]*0 + _b[menage]*0*0 31363.583
Da die Werte für die Variablen men und age für vollzeitbeschäftigte Frauen mit durchschnittlichem Alter Null sind, fallen alle Koeffizienten außer der Konstanten aus der Gleichung. Daher ist der vorhergesagte Wert die Konstante, d.h. 31.364 €. Jetzt betrachten wir männliche Vollzeitbeschäftigte mit durchschnittlichem Alter: . display _b[_cons] + _b[men]*1 + _b[age_c]*0 + _b[menage]*1*0 43515.367
Beachten Sie, dass weder der Koeffizient des zentrierten Alters, noch der Koeffizient für den Interaktionsterm das Ergebnis beeinflusst. Im Vergleich mit dem letzten Ergebnis wird der vorhergesagte Wert nur durch den Koeffizienten men erhöht, der einer der beiden Bestandteile des Interaktionseffektes ist. Die Interpretation dieses Effekts ist: Bei mittlerem Alter ist das durchschnittliche Einkommen von vollbeschäftigten Männern um 12.152 € höher als das durchschnittliche Einkommen von vollbeschäftigten Frauen. Wir kommen nun zum zweiten Bestandteil des Interaktionsterms. Dafür berechnen wir die vorhergesagten Werte für vollbeschäftigte Frauen, die ein Jahr älter als der Durchschnitt sind: . display _b[_cons] + _b[men]*0 + _b[age_c]*1 + _b[menage]*0*1 31553.781
Hier entfällt der Koeffizient für men und der Interaktionsterm. Verglichen mit vollbeschäftigten Frauen im Durchschnittsalter wird der vorhergesagte Wert derer, die ein Jahr älter sind, durch den Koeffizienten des Alters erhöht. Für vollbeschäftigte Frauen entspricht ein Anstieg des Alters um ein Jahr einem Anstieg der durchschnittlichen Einkommen um rund 190 €. Abschließend betrachten wir vollzeitbeschäftigte Männer, die ein Jahr älter sind als der Durchschnitt.
318 | 9 Einführung in die Regressionstechnik . display _b[_cons] + _b[men]*1 + _b[age_c]*1 + _b[menage]*1*1 44117.912
Dieses Mal werden alle Koeffizienten verwendet. Wenn wir die vorhergesagten Werte vollzeitbeschäftigter Männer durchschnittlichen Alters mit den um ein Jahr älteren vergleichen, sehen wir, dass sie sich um den Wert des Koeffizienten des Alters und des Interaktionsterms unterscheiden. Daher ist die Wirkung des Alters auf das Einkommen für vollzeitbeschäftigte Männer im Durchschnitt 412 € stärker als für vollzeitbeschäftigte Frauen. Anders ausgedrückt: Männliche Einkommen steigen mit dem Alter schneller als weibliche Einkommen. Es gibt noch eine weitere Interpretation des Interaktionsterms. Um dies zu sehen, vergleichen Sie die vorhergesagten Werte der weiblichen Befragten, die ein Jahr älter als der Durchschnitt sind, mit männlichen Befragten im gleichen Alter. Die beiden Werte unterscheiden sich um den geschätzten Koeffizienten von men und den Interaktionsterm. Daher ist der Effekt des Geschlechts im Durchschnitt um 412 € stärker, wenn wir Männer und Frauen ein Jahr über dem Durchschnittsalter vergleichen, als beim Vergleich von Männern und Frauen mit durchschnittlichem Alter. Das Gleiche geschieht mit jedem Anstieg des Alters um eine Einheit. Der geschlechtsspezifische Lohnunterschied wird also umso stärker, je älter die Befragten sind. Wir schrieben zuvor, dass der Interaktionsterm durch Erzeugung von Variablen, die das Produkt der vorhandenen Variablen sind, oder durch Verwendung der Faktorvariablennotation generiert werden kann. Für den Rest dieses Abschnitts zeigen wir einige Beispiele für die Letztere. Mit der Faktorvariablennotation werden Interaktionen durch den Operator # spezifiziert. Platziert man den Operator zwischen zwei Variablennamen, so bedeutet dies, dass die beiden Variablen interagiert werden, wobei beide Variablen als kategoriale Variablen behandelt werden. Das heißt, der Befehl . regress incomeR i.sex i.empR sex#empR
fordert ein Regressionsmodell an, in dem eine virtuelle Dummy-Variable für die beiden Kategorien von sex enthalten ist, zwei virtuelle Dummy-Variablen für die drei Kategorien von emp und zwei virtuelle Variablen für die beiden Produkte der virtuellen Dummy-Variabeln von sex und emp. Der obige Befehl lässt sich noch weiter vereinfachen. Dazu bedient man sich des Operators ## an Stelle von #. Verbindet man Variablennamen durch zwei #-Zeichen, so werden sowohl die Interaktionsterme als auch die dafür notwendigen virtuellen Dummy-Variablen erzeugt. Der Befehl kann daher wie folgt geschrieben werden: . regress incomeR sex##empR
Standardmäßig werden mit ## oder # verbundene Variablen als kategoriale Variablen behandelt. Stata erstellt deshalb immer virtuelle Dummy-Variablen für die einzelnen Kategorien der Variablen sowie alle paarweisen Produkte dieser virtuellen Dum-
9.4 Verfeinerte Modelle
| 319
mys für die Interaktion. Wenn eine Interaktion eine kontinuierliche Variable beinhaltet, müssen wir diese Variable ausdrücklich mit dem Operator c. markieren. Hier ist ein Beispiel für die Interakton von Geschlecht mit Alter: . regress incomeR i.empR c.men##c.age_c
Beachten Sie, dass wir auch die Variablen men mit dem Präfix c. versehen haben. Dies ist möglich, da men eine Dummy-Variable mit Werten 0 und 1 ist. Es spielt keine Rolle, ob Sie solche Variablen als kategorial oder kontinuierlich behandeln; wir bevorzugen Letzteres, weil wir den Output des Regressionskommandos dann klarer finden. Die Faktorvariablennotation macht es sehr einfach, weitaus kompliziertere Modelle zu berechnen. Im Folgenden zeigen wir einige Beispiele, um Ihnen einen groben Eindruck zu vermitteln. Zuerst, ein Modell, das alle Interaktionseffekte, einschließlich der 3-Wegs-Interaktionen, der Variablen Geschlecht, Alter und Bildungsjahre umfasst: . regress incomeR i.empR c.men##c.age##c.yedu
Nun ein Modell, das alle 2-Wegs-Interaktionen zwischen dem Geschlecht und den Variablen emp, yedu und age enthält. . regress incomeR c.men##(c.age c.yedu i.empR)
Diese Beispiele zeigen: Die Faktorvariablennotation macht die Spezifikation von komplizierten Modellen sehr einfach. Das nützt Ihnen aber nichts, wenn Sie die komplizierten Modelle nicht auch interpretieren können, und das ist alles andere als einfach. Außerordentlich hilfreich sind in diesem Zusammenhang aber ConditionalEffects-Plots. Abschnitt 9.5.3 zeigt Beispiele dieser Plots für einige der hier gezeigten Modelle.
9.4.3 Regressionsmodelle mit transformierten Daten Für die Verwendung von Regressionsmodellen mit transformierten Variablen gibt es im Wesentlichen zwei Gründe: 1. das Vorliegen einer nichtlinearen Beziehung und 2. die Verletzung der Homoskedastizitätsannahme. Je nachdem, welcher der beiden Gründe vorliegt, unterscheidet sich das weitere Vorgehen. Der wesentliche Unterschied besteht darin, dass im Fall nichtlinearer Beziehungen (normalerweise) die unabhängige Variable transformiert wird, im Fall der Verletzung der Homoskedastizitätsannahme dagegen die abhängige Variable. Im Folgenden soll zunächst das Vorgehen zur Modellierung nichtlinearer Beziehungen erläutert werden. Daran anschließend werden wir kurz auf die Verwendung von Transformationen zur Beseitigung von Heteroskedastizität hinweisen (vgl. auch Mosteller und Tukey 1977).
320 | 9 Einführung in die Regressionstechnik 9.4.3.1 Modellierung nichtlinearer Zusammenhänge In Abschnitt 9.3.1.1 haben wir Ihnen regressionsdiagnostische Verfahren vorgestellt, mit denen man nichtlineare Beziehungen entdecken kann. In vielen Fällen genügen jedoch schon theoretische Überlegungen, um eine Veranlassung für die Modellierung nichtlinearer Beziehungen zu sehen: Betrachten Sie z.B. den Zusammenhang zwischen der Alphabetisierungsrate von Frauen und der Geburtenrate. Wahrscheinlich besteht hier ein negativer Zusammenhang. Wahrscheinlich ist aber auch, dass die Geburtenrate nichtlinear absinkt, bis sie schließlich bei Null liegt. Vielmehr dürfte die Geburtenrate mit zunehmender Alphabetisierung der Frauen zunächst rasch abnehmen und sich dann auf einen Wert bei ca. ein bis zwei Geburten einpendeln. Nichtlineare Zusammenhänge finden sich auch häufig, wenn Einkommen als unabhängige Variable verwendet wird. Oftmals haben Einkommensveränderungen im unteren Spektrum der Einkommensverteilung einen größeren Effekt auf die abhängige Variable als Einkommensveränderungen im oberen Einkommensspektrum. Schließlich verdreifacht sich das Einkommen bei einer Veränderung von 500 € auf 1.500 €, während es sich bei einer Veränderung von 10.000 € auf 11.000 € nur noch um 10 Prozent erhöht, obwohl es in beiden Fällen um 1.000 € gestiegen ist. Bei der Modellierung nichtlinearer Beziehungen muss man sich zunächst über die genaue Form des Zusammenhangs klar werden. Wir wollen hier drei Grundtypen nichtlinearer Beziehungen unterscheiden: „logarithmische“, „hyperbolische“ und „U-förmige“. Idealtypen dieser Zusammenhänge lassen sich mit dem Plottyp function von graph twoway erzeugen. Um die Struktur des nachfolgenden Grafik-Befehls deutlich zu machen, nutzen wir lokale Makros (vgl. Abschn. 4.1 und 12.2.1). . . . . . > > > >
local opt1 yaxis(1) yscale(off axis(1)) local opt2 yaxis(2) yscale(off axis(2)) local opt3 yaxis(3) yscale(off axis(3)) graph twoway || function y = x^3, `opt1' || function y = ln(x), `opt2' || function y = (-1) * x + x^2, `opt3' || , legend(order(1 "Hyperbolic" 2 "Logarithmic" 3 "U-Shaped") rows(1))
0
.2
.4
.6
.8
x Hyperbolic
Logarithmic
U−Shaped
1
9.4 Verfeinerte Modelle
| 321
Bei logarithmischen Zusammenhängen steigt die abhängige Variable zunächst stark mit den Werten der unabhängigen Variablen. Mit steigenden Werten der unabhängigen Variablen wird dieser Anstieg jedoch allmählich schwächer. Bei hyperbolischen Zusammenhängen ist es umgekehrt. Hier steigt die abhängige Variable zunächst schwach, dann immer stärker. Beim U-förmigen Zusammenhang ändert sich die Richtung des Effekts der unabhängigen Variablen. Alle drei Grundtypen können auch in umgekehrter Richtung auftreten. Beim logarithmischen Zusammenhang bedeutet dies, dass die Werte zunächst stark, dann schwach fallen. Beim hyperbolischen Zusammenhang fallen die Werte zuerst schwach, dann stark und beim umgekehrt Uförmigen Zusammenhang steigen die Werte zunächst und sinken dann. In der Praxis treten vor allem logarithmische Zusammenhänge recht häufig auf. Zur Modellierung logarithmischer Zusammenhänge wird der Logarithmus der unabhängigen Variablen gebildet und die ursprünglich unabhängige Variable in der Regression durch diese transformierte Variable ersetzt. Ein stark logarithmischer Zusammenhang besteht zum Beispiel zwischen dem Bruttosozialprodukt der Länder dieser Welt und der dort anzutreffenden Kindersterblichkeitsrate. Der Datensatz who2009.dta enthält diese Daten.⁴¹ . use who2009.dta, clear . scatter mort_child gdp
Zur Modellierung eines solchen Zusammenhangs logarithmieren Sie die x-Variable . generate loggdp = log(gdp)
und nehmen diese an Stelle der nicht logarithmierten Originalvariablen in das Regressionsmodell auf: . regress mort_child loggdp . predict yhat
Zwischen den vorhergesagten Werten dieser Regression und den Werten der nicht transformierten x-Variablen besteht dann ein logarithmischer Zusammenhang: . sc mort_child gdp || line yhat gdp, sort
41 Das Beispiel stammt ursprünglich von (Fox 2000). Bei den Daten handelt es sich um aktualisierte Daten des „Global Health Observatory Data Repository'"der WHO (http://apps.who.int/ghodata/#).
0
50
100
150
200
322 | 9 Einführung in die Regressionstechnik
0
20000 40000 GDP per capita in PPP (USD) Under−five mortality rate 2010 (%)
60000 Fitted values
Ähnlich verfährt man bei hyperbolischen Zusammenhängen, nur dass diesmal nicht der Logarithmus, sondern das Quadrat der unabhängigen Variablen gebildet wird. Auch hier wird die ursprünglich unabhängige Variable durch die quadrierte Version der unabhängigen Variablen ersetzt.⁴² Anders gestaltet sich die Modellierung von U-förmigen Zusammenhängen. Hier wird die unabhängige Variable zwar ebenfalls quadriert, die transformierte Variable wird jedoch zusätzlich zur nichttransformierten Variablen in das Regressionsmodell aufgenommen. Ein U-förmiger Zusammenhang findet sich in den Daten des auf Seite 291 vorgestellten Anscombe-Quartetts. Durch zusätzliche Aufnahme eines quadratischen Terms können Sie diesen Zusammenhang perfekt modellieren: . . . .
use anscombe, clear regress y2 c.x2##c.x2 margins, at(x2=(4(1)14)) marginsplot
2
4
Linear Prediction 6
8
10
Adjusted Predictions with 95% CIs
4
5
6
7
8
9 x2
10
11
12
13
14
42 Beispiele für hyperbolische Beziehungen in den Sozialwissenschaften sind selten. Möglicherweise steht das Jahresgehalt von Formel-1-Rennfahrern in einer hyperbolischen Beziehung zur Anzahl der Grand-Prix-Siege.
9.4 Verfeinerte Modelle
| 323
Weitere Hinweise zum Umgang mit quadrierten Terman finden Sie in Abschnitt 9.5.3. Wenn Sie beabsichtigen, Transformationen von unabhängigen Variablen in Ihr Modell aufzunehmen, sollten Sie auch die bei Cook und Weisberg (1999: Kap. 16) beschriebenen Vorsichtsmaßnahmen beachten.
9.4.3.2 Transformation zur Beseitigung von Heteroskedastizität In Abschnitt 9.3.2 hatten wir als eine der Ursachen für Heteroskedastizität die Verwendung schief verteilter abhängiger Variablen genannt. Aus diesem Grund muss zur Beseitigung von Heteroskedastizität stets die abhängige Variable transformiert werden. Beachten Sie jedoch, dass sich durch die Transformation der abhängigen Variablen die Interpretation des Regressionsmodells ändert. Transformationen der abhängigen Variablen führen dazu, dass zwischen der nicht transformierten abhängigen Variablen und allen unabhängigen Variablen nichtlineare Beziehungen modelliert werden (vgl. Hair et al. 1995: 71). Ziel der Transformation sollte es sein, eine möglichst symmetrische oder normalverteilte abhängige Variable zu erhalten. Dabei können Sie folgende Daumenregel beachten: Handelt es sich um eine sehr breitgipflige Verteilung, ist oftmals die Inverse dieser Variablen die geeignete Transformation (1/yi ). Handelt es sich um eine rechtsschiefe Verteilung (wie bei der Wohnungsgröße), empfiehlt sich der Logarithmus, und handelt es sich um eine linksschiefe Verteilung, können Sie die Wurzel verwenden (Fox 1997: 59–82). Neben diesen Daumenregeln bietet Stata Ihnen das Kommando bcskew0. Mit diesem Kommando wird Ihnen eine Transformation vorgeschlagen, die zu einer annähernd symmetrischen Verteilung führt.⁴³ . use data1,clear . bcskew0 bcsize = size
Der Residual-vs.-Fitted-Plot (S. 292) liefert ebenfalls Hinweise dafür, welche Transformation bei Heteroskedastizität angewendet werden kann. Wenn die Streuung der Residuen mit Zunahme der vorhergesagten Werte größer wird, sollten Sie die Inverse der y-Variablen als abhängige Variable nehmen. Wenn die Streuung mit größer werdenden vorhergesagten Werten abnimmt, sollten Sie die Wurzel aus yi ziehen und die abhängige Variable durch diese ersetzen (Hair et al. 1995: 70).
43 Achten Sie darauf, dass die Variable, für die Sie den bcskew0-Befehl anwenden, weder negative Werte noch Null enthält.
324 | 9 Einführung in die Regressionstechnik
9.5 Darstellung von Regressionsergebnissen Manchmal muss man die Ergebnisse von Datenanalysen einem größeren Publikum präsentieren. Das geschieht in der Regel in Form eines Artikels in einer wissenschaftlichen Zeitschrift, als ein Kapitel in einem Buch, auf einer Web-Seite oder als Präsentation bei einer Konferenz. In all diesen Fällen sind Sie nicht gut beraten, wenn Sie dazu die Ausgaben von Stata verwenden. Vielmehr müssen Sie versuchen, die Präsentation der Ergebnisse so zu gestalten, dass die wichtigsten Ergebnisse ihrer Analysen für die Rezipienten gut sichtbar sind und Ihnen im Gedächtnis bleiben. In diesem Abschnitt stellen wir Ihnen drei Varianten zur Präsentation von Regressionsanalysen vor, und zwar Tabellen von ähnlichen Regressionsmodellen, Plots der Koeffizienten und Conditional-Effects-Plots.
9.5.1 Tabellen ähnlicher Regressionsmodelle In wissenschaftlichen Zeitschriften werden Regressionsmodelle praktisch immer in Form von Tabellen, wie der in Tabelle 9.2 gezeigten, dargestellt. Solche Tabellen präsentieren die Ergebnisse mehrerer ähnlicher Regressionsmodelle in einer Darstellung. Die einzelnen Regressionsmodelle sind sich dabei insofern ähnlich, als sie alle die gleiche abhängige Variable verwenden. Darüber hinaus verwenden Sie entweder die gleichen unabhängigen Variablen und unterscheiden sich nur durch die Beobachtungen, auf deren Basis die Modelle berechnet werden, oder aber die unabhängigen Variablen werden wie in unserem Beispiel schrittweise in die verschiedenen Modelle eingeführt. In beiden Varianten enthalten die Zellen der Tabellen die geschätzten Regressionskoeffizienten und mindestens eine Kennziffer zur Darstellung der Unsicherheit der Ergebnisse; unsere Beispieltabelle zeigt den Standardfehler. Darüber hinaus ist es üblich, das Signifikanzniveau der geschätzten Koeffizienten mit Sternchen darzustellen. Die letzten Zeilen der Tabelle werden in der Regel für allgemeine Informationen über das Regressionsmodell als Ganzes verwendet. Dort sollte mindestens die Anzahl der Beobachtungen stehen. Häufig findet sich hier auch ein Maß für die Güte der Schätzung. Um Tabellen wie Tabelle 9.2 zu erzeugen, benötigen Sie die Befehle estimates store und estimates table. Der Befehl estimates store speichert die Ergebnisse eines Regressionsmodells unter einem zu spezifizierenden Namen und estimates table zeigt die Ergebnisse aller so gespeicherten Modelle in einer Tabelle. Hier zeigen wir, wie Sie mit Hilfe der beiden Befehle eine Tabelle ähnlich der Tabelle 9.2 erstellen. Zunächst schätzten wir das erste Modell und speichern es unter dem Namen model1: . . . . .
use data1,clear gen age = 2009 - ybirth sum age, meanonly replace age = age-r(mean) gen incomeR = income if income > 0
9.5 Darstellung von Regressionsergebnissen |
325
Tab. 9.2. Tabelle einer stufenweisen Regression
Men Age in Years Part Time
(1)
(2)
20905.7*** (1532.0) 321.0*** (69.33)
12735.6*** (1657.0) 414.9*** (65.76) -15113.1*** (2049.5) -25938.4*** (2693.5) 3732.6*** (263.8)
21234.9*** (1093.2)
30788.6*** (1400.8)
12859.2*** (1657.0) 270.9** (95.18) -14788.3*** (2054.1) -25813.3*** (2692.5) 3693.3*** (264.3) 275.0* (131.5) 30593.7*** (1403.1)
0.070 2814
0.174 2814
0.176 2814
Irregular Years of Education Men Constant R2 Observations
(3)
Standard errors in parentheses; * p |t|
= = = = = =
4,788 176.34 0.0000 0.2696 0.2681 22320
hhinc
Coef.
[95% Conf. Interval]
egp Service cl.. Higher rou.. Lower rout.. Self-Emplo~d Skilled ma.. Semi- and .. unemployed Retired
-11053.99 -16131.8 -20014.95 -5479.182 -21327.39 -24828.94 -32172.19 -29419.26
1445.191 1758.446 1658.193 1936.01 1565.434 1485.18 1734.536 1548.131
-7.65 -9.17 -12.07 -2.83 -13.62 -16.72 -18.55 -19.00
0.000 0.000 0.000 0.005 0.000 0.000 0.000 0.000
-13887.23 -19579.17 -23265.77 -9274.653 -24396.36 -27740.57 -35572.68 -32454.31
-8220.75 -12684.44 -16764.12 -1683.711 -18258.42 -21917.3 -28771.7 -26384.21
hhsize ybirth _cons
8801.217 -219.6513 465140.1
314.4606 29.37816 57542.31
27.99 -7.48 8.08
0.000 0.000 0.000
8184.729 -277.246 352330.7
9417.705 -162.0566 577949.6
Die Ausgabe zeigt acht unterschiedliche Koeffizienten für die Variable egp. Bei dieser großen Anzahl von Koeffizienten ist eine Grafik wie die in Abbildung 9.6 gezeigte sinnvoll. Aber wie erreichen wir dieses Ergebnis? Average Marginal Effects with 95% CIs Retired
Effects with Respect to
Unemployed Semi− and unskilled manual workers Skilled manual workers Self employed Lower routine non−manual Higher routine non−manual Service class II Service class I −40000 −30000 −20000 −10000 Effects on Linear Prediction
0
Abb. 9.6. Regressionskoeffizienten-Plot mit 95 %–Konfidenzintervallen
9.5 Darstellung von Regressionsergebnissen |
329
Abbildung 9.6 wurde mit marginsplot erzeugt. Der Befehl marginsplot zeigt immer die Ergebnisse des zuletzt eingegebenen margins-Befehls. Bisher haben wir margins stets verwendet, um die durchschnittlichen prognostizierten Werte für bestimmte Kombinationen der unabhängigen Variablen zu zeigen. Hier wollten wir aber die geschätzten Koeffizienten anzeigen. Es bedarf nun eines kleinen Tricks, um margins dazu zu bringen, an Stelle der durchschnittlichen vorhergesagten Werte geschätzte Koeffizienten auszugeben. Der kleine Trick, der aber nur für lineare Regressionen funktioniert, ist die Option dydx(varlist) von margins. Allgemein zeigt die Option dydx(varlist) die sogenannten „Average-Marginal-Effekte“ für die angegebene varlist. Average-Marginal-Effekte sind definiert als die durchschnittlichen Steigungen der Regressionsfunktion, und für lineare Modelle ohne Interaktionsterme⁴⁵ entspricht dies dem Wert des Regressionskoeffizienten. Vergleichen Sie selbst: . margins , dydx(egp) Average marginal effects Model VCE : OLS
Number of obs
=
4,788
Expression : Linear prediction, predict() dy/dx w.r.t. : 2.egp 3.egp 4.egp 5.egp 8.egp 9.egp 15.egp 18.egp dy/dx egp Service cl.. Higher rou.. Lower rout.. Self-Emplo~d Skilled ma.. Semi- and .. unemployed Retired
-11053.99 -16131.8 -20014.95 -5479.182 -21327.39 -24828.94 -32172.19 -29419.26
Delta-method Std. Err. 1445.191 1758.446 1658.193 1936.01 1565.434 1485.18 1734.536 1548.131
t -7.65 -9.17 -12.07 -2.83 -13.62 -16.72 -18.55 -19.00
P>|t| 0.000 0.000 0.000 0.005 0.000 0.000 0.000 0.000
[95% Conf. Interval] -13887.23 -19579.17 -23265.77 -9274.653 -24396.36 -27740.57 -35572.68 -32454.31
-8220.75 -12684.44 -16764.12 -1683.711 -18258.42 -21917.3 -28771.7 -26384.21
Note: dy/dx for factor levels is the discrete change from the base level.
Sobald Sie die geschätzten Regressionskoeffizienten mit margins reproduziert haben, können Sie marginsplot zur grafischen Darstellung nutzen. Damit die langen Labels mehr Platz haben, verwenden wir den Befehl mit der Option horizontal. Die Option recast(scatter) verwendet an Stelle des Standard Plottyps connected den Plottyp scatter zur Darstellung der Koeffizienten. Abbildung 9.6 wurde mit folgendem Befehl erstellt: . marginsplot, recast(scatter) horizontal > ylabel(1 "Service class I" 2 "Service class II" > 3 "Higher routine non-manual" 4 "Lower routine non-manual" > 5 "Self employed" 6 "Skilled manual workers" > 7 "Semi- and unskilled manual workers" 8 "Unemployed" 9 "Retired")
45 Um bei einem Interaktionsterm die Koeffizienten einer der an der Interaktion beteiligten Variablen zu erhalten, müssen Sie den Wert der anderen beteiligten Variablen mit at() auf Null festsetzen.
330 | 9 Einführung in die Regressionstechnik Kommen wir nun zum zweiten Sachverhalt. Nehmen Sie an, Sie wollen das geschlechtsspezifische Lohngefälle im durchschnittlichem Alter zwischen den Bundesländern vergleichen. Deshalb haben Sie 14 Regressionsmodelle berechnet – eins für jede Kategorie der Variablen Bundesland. Nun möchten Sie die Koeffizienten der geschätzten Effekte der unabhängigen Variablen sex dieser Modelle grafisch darstellen. Die Erstellung eines Koeffizienten-Plots erfordert zwei Schritte. Der erste Schritt besteht darin, ein sogenanntes „Resultsset“ zu erstellen (Newson 2003). Danach werden die Daten des Resultssets mit den üblichen Grafikbefehlen dargestellt. Ein Resultsset ist ein Stata-Datensatz, der die Ergebnisse von einem oder mehreren statistischen Analysen enthält. Für unser Beispiel wollen wir einen Datensatz mit den Variablen state für das jeweilige Bundesland, b für die geschätzten Regressionskoeffizienten und se für den Standardfehler der geschätzten Koeffizienten erhalten. Jede Beobachtung (Zeile) des geplanten Resultssets soll also Informationen zu je einem Bundesland enthalten. Eine solcher Resultsset kann mit dem Präfix-Befehl statsby erzeugt werden. Das statsby-Präfix funktioniert ähnlich wie das by-Präfix: Es führt einen Befehl hinter dem Doppelpunkt für jede Gruppe von einer By-Liste durch. Anders als das by-Präfix zeigt das statsby-Präfix aber nicht die Ergebnisse des Befehls hinter dem Doppelpunkt, sondern speichert dessen Ergebnisse in einem Datensatz. In seiner am weitesten verbreiteten Anwendungsform erfordert die Syntax von statsby den Namen der Ergebnisse, die gespeichert werden sollen, die Spezifikation einer By-Liste, und die Option clear, da statsby die aktuellen Daten im Speicher überschreibt. Das vereinfachte Syntax-Diagramm des Befehls lautet statsby stat-list, by(varlist) clear : command
wobei stat-list für die Namen der gespeicherten Ergebnisse steht und command für den Stata-Befehl, der die Ergebnisse erzeugt. Im Folgenden verwenden wir diesen Befehl, um die geschätzten Regressionskoeffizienten der Faktorvariablen sex aus der Einkommens-Regression im vorherigen Abschnitt zu speichern. Beachten Sie, dass wir für die Bundesländer eine String-Variable erzeugen, bevor wir statsby ausführen; dies ist zwar nicht zwingend erforderlich, erleichtert jedoch das spätere Vorgehen. . decode state, gen(ststr) . statsby _b[2.sex] _se[2.sex], by(ststr) clear: > reg incomeR i.sex##c.age i.empR yedu
Durch . describe Contains data obs: vars: size: variable name
14 3 336 storage type
statsby: regress
display format
value label
variable label
9.5 Darstellung von Regressionsergebnissen |
ststr _stat_1 _stat_2
str16 float float
%16s %9.0g %9.0g
331
State of Residence _b[2.sex] _se[2.sex]
Sorted by: Note: Dataset has changed since last saved.
sehen wir, dass unser vorheriger Datensatz nicht mehr vorhanden ist. Unser neuer Datensatz besteht aus 14 Beobachtungen und den Variablen ststr, _stat_1 und _stat_2. ststr ist die String-Variable für die Bundesländer und _stat_1 bzw. _stat_2 sind Variablen für die geschätzten Koeffizienten der zweiten Kategorie von sex bzw. deren Standardfehler. Auf der Basis der geschätzten Standardfehler können wir eine Annäherung an 95 %–Konfidenzintervalle erstellen (vgl. S. 242):⁴⁶ . gen lb = _stat_1 - 1.96 * _stat_2 . gen ub = _stat_1 + 1.96 * _stat_2
Im zweiten Schritt wollen wir die Koeffizienten und deren Konfidenzintervalle grafisch darstellen. In dieser Grafik sollen die Bundesländer nach ihren geschlechtsspezifischen Lohnunterschieden sortiert sein. Deshalb sortieren wir den Datensatz anhand von _stat_1 und erstellen die neue Variable state entsprechend der Sortierreihenfolge: . sort _stat_1 . gen state = _n
Der sortierten Bundesland-Variablen weisen wir ein neues Wertelabel zu und definieren dieses mit einer forvalues-Schleife. Das Label beinhaltet den Namen des Bundeslandes an der jeweiligen Position. Das Vorgehen ist nur möglich, weil wir eine String-Variable für die Bundesländer in statsby verwendet haben.⁴⁷. . forv i = 1/14 { . local state_name = ststr[`i'] . label define state `i' "`state_name'", modify . } . label value state state
Nachdem wir das erledigt haben, machen wir einen ersten Versuch: . tw rcap lb ub state, horizontal || scatter state _stat_1
46 Die Multiplikation mit 1,96 sollte nur verwendet werden, wenn der Statistik mehr als 30 Beobachtungen zu Grunde liegen. 47 Die beiden letzten Schritte können mit Hilfe der benutzerdefinierten egen-Funktion axis() aus dem egenmore-Paket automatisiert werden. Dieses Paket ist bei SSC erhältlich (vgl. Kap. 13)
0
5
state
10
15
332 | 9 Einführung in die Regressionstechnik
−60000
−40000
−20000
0 lb/ub
20000
40000
state
Dies entspricht schon sehr unseren Vorstellungen. Mit einigen zusätzlichen Grafikoptionen können wir die Darstellung aber noch ansprechender gestalten (vgl. Kap. 6): . tw > || rcap lb ub state, horizontal lcolor(black) > || scatter state _stat_1, ms(O) mcolor(black) > || , yscale(reverse) > ylab(1/14, valuelabel angle(0) gstyle(dot) notick) > ytitle("") xline(0) xtitle(Coef. of Gender at Mean Age) > legend(off) note("Capped spikes show 95% C.I.", span)
Hessen Baden−Wuerttemb. Bavaria N−Rhein−Westfa. Hamburg/Bremen R−Pfalz,Saarl. Lower Saxony Thueringen Mecklenburg−V. Saxony Saxony−Anhalt Berlin Brandenburg Schleswig−Hols. −60000
−40000 −20000 0 20000 Coef. of Gender at Mean Age
40000
Capped spikes show 95% C.I.
9.5.3 Conditional-Effects-Plots Conditional-Effects-Plots zeigen Regressionslinien für spezifische Kombinationen der unabhängigen Variablen einer multiplen Regression in einer Grafik. Die Wirkung der unabhängigen Variablen kann aus den Abständen zwischen den verschiedenen Linien und ihren jeweiligen Steigungen erkannt werden. Solche Plots sind besonders nützlich, wenn die Wirkung einer Variablen nicht allein von der Höhe des Regressi-
9.5 Darstellung von Regressionsergebnissen |
333
onskoeffizienten abhängig ist – so z.B. im Fall von Interaktionstermen oder transformierten unabhängigen Variablen. Beginnen wir mit den Modellen für das private Einkommen aus Abschnitt 9.4.2. Das erste Modell schätzt einen Interaktionsterm zwischen Geschlecht und Alter. Das Modell kann mittels Faktorvariablennotation wie folgt reproduziert werden: . . . . .
use data1, clear generate age = 2009 - ybirth gen incomeR = income if income > 0 gen empR=emp if emp!=5 regress incomeR i.empR i.sex##c.age
(Beachten Sie, dass eine Zentrierung von Variablen nicht notwendig ist, wenn Sie die Regressionsergebnisse mit einem Conditional-Effects-Plot darstellen.) Zur Erzeugung eines Conditional-Effects-Plots verwenden wir zunächst den Befehl margins. Durch die at()-Option werden die (durchschnittlichen) geschätzten Werte für alle möglichen Kombinationen von Erwerbsstatus, Geschlecht und Alter berechnet. Anschließend verwenden wir marginsplot, um die Ergebnisse von margins grafisch darzustellen. . margins, at( age=(25(5)65) sex=(1,2) empR=(1,2,4) ) . marginsplot, bydim(empR) byopt(rows(1))
empR=4
20000
40000
empR=2
0
Linear Prediction
60000
Adjusted Predictions with 95% CIs empR=1
25 30 35 40 45 50 55 60 65 25 30 35 40 45 50 55 60 65 25 30 35 40 45 50 55 60 65
age Male
Female
Solange nicht anders definiert, wird die erste Variable in der at()-Option von margins als x-Variable im Conditional-Effects-Plot verwendet. Die vorhergesagten Werte werden anschließend als Linie für jede Kombination der Werte der anderen Variablen in dieser Option angezeigt. Die Option bydim(varlist) zeigt separate Grafiken für jede by-Kategorie. Die Abbildung zeigt, dass der Einfluss des Alters (die Steigung der Linie) für Männer stärker ist als für Frauen. Wir sehen auch, dass geschlechtsspezifische Lohnunterschiede mit zunehmendem Alter größer werden. Schließlich sehen wir, dass Vollzeitbeschäftigung zu höherem Einkommen führt als Teilzeit- und unregelmäßige Beschäftigung. Wir hatten dies schon aus den Ergebnissen der Regressionsanalyse in Ab-
334 | 9 Einführung in die Regressionstechnik schnitt 9.4.2 ablesen können, aber in der Grafik sind die Ergebnisse viel einfacher zu erkennen als in der Regressionstabelle. Der Vorteil von Conditional-Effects-Plots wird dabei umso deutlicher, je komplizierter das Regressionsmodell wird. Dies lässt sich z.B. mit einer 3-Wegs-Interaktion von Geschlecht, Alter und Erwerbsstatus demonstrieren: . regress incomeR i.empR##i.sex##c.age . margins, at( age=(25(5)65) sex=(1,2) empR=(1,2,4) ) . marginsplot, bydim(empR) byopt(rows(1))
Adjusted Predictions with 95% CIs empR=2
empR=4
40000 20000 −20000
0
Linear Prediction
60000
empR=1
25 30 35 40 45 50 55 60 65 25 30 35 40 45 50 55 60 65 25 30 35 40 45 50 55 60 65
age Male
Female
Die Grafik zeigt deutlich, dass das geschlechtsspezifische Lohngefälle mit zunehmendem Alter steigt, auch wenn dies nicht im gleichen Umfang für Voll- und Teilzeitbeschäftigte gilt. Darüber hinaus ist dieser Effekt für unregelmäßig Beschäftigte nicht zu erkennen. Abschließend soll unser Modell durch das quadrierte Alter ergänzt werden. Das quadrierte Alter ist letzten Endes ein Interaktionsterm einer Variablen mit sich selbst, d.h, der Effekt des Alters variiert mit dem Alter selbst. Quadrierte Variablen werden in der Regel zur Spezifikation von U-förmigen Beziehungen verwendet. Im nachfolgenden Beispiel verkomplizieren wir die Sache zusätzlich, indem wir zusätzlich eine Interaktion des quadrierten Alters mit den anderen Variablen im Modell einbauen. . regress incomeR i.empR##i.sex##c.age##c.age . margins, at( age=(25(5)65) sex=(1,2) empR=(1,2,4) ) . marginsplot, bydim(empR) byopt(rows(1))
9.6 Weiterführende Verfahren
| 335
empR=4
20000
40000
empR=2
−20000
0
Linear Prediction
60000
Adjusted Predictions with 95% CIs empR=1
25 30 35 40 45 50 55 60 65 25 30 35 40 45 50 55 60 65 25 30 35 40 45 50 55 60 65
age Male
Female
Es ist fast unmöglich, ein Modell wie dieses allein auf der Basis der Koeffizienten zu interpretieren. Nach der Visualisierung des Regressionsergebnisses mit dem Conditional-Effects-Plot ist das viel einfacher.
9.6 Weiterführende Verfahren Neben der multiplen linearen Regression lässt sich mit Stata eine Vielzahl von verwandten Modellen berechnen. Der Platz in diesem Buch reicht nicht aus, um sie ausführlich darzustellen. Für die wichtigeren dieser Verfahren wollen wir jedoch in diesem Abschnitt kurz den Grundgedanken beschreiben. Für eine Vertiefung verweisen wir ausdrücklich auf die dem jeweiligen Befehl zugeordneten Einträge im alphabetisch geordneten Stata Reference Manual [R]. Dort finden sich auch Auswahlbibliographien zu den einzelnen Verfahren. Hervorgehoben sei das Buch von Rabe-Hesketh und Everitt (2007), das die Anwendung weiterführender Verfahren in Stata anhand von Beispielen präsentiert.
9.6.1 Median-Regression Die Median-Regression ist der bisher besprochenen OLS-Regression außerordentlich ähnlich. Während bei der OLS-Regression die Summe der quadrierten Residuen minimiert wird, wird bei der Median-Regression die Summe der absoluten Residuen – ∑ |ŷ i − yi | – minimiert. Durch die Quadrierung der Residuen in der OLS-Regression werden große Residuen stärker gewichtet als kleine. In der Median-Regression entfällt diese Eigenschaft. Aus diesem Grund ist die Median-Regression unempfindlicher gegen große Residuen als die OLS-Regression. Der Name Median-Regression resultiert aus der Tatsache, dass der vorhergesagte Wert der Median-Regression eine Schätzung des Medians der abhängigen Variablen darstellt. Die vorhergesagten Werte der OLS-Regression sind dagegen als eine
336 | 9 Einführung in die Regressionstechnik Schätzung des arithmetischen Mittelwerts der abhängigen Variablen anzusehen. Die vorhergesagten Werte beider Regressionen beschreiben somit eine bestimmte Eigenschaft – die zentrale Tendenz – der Verteilung der abhängigen Variablen. Die Median-Regression wird in Stata als ein Spezialfall einer Quantil-Regression behandelt. Bei Quantil-Regressionen werden die Koeffizienten so bestimmt, dass die Summe der gewichteten, d.h. mit einem bestimmten Faktor wi multiplizierten, absoluten Residuen ∑ |yi − ŷ i | ⋅ wi (9.23) möglichst klein wird. Bei der Gewichtung wird zwischen positiven und negativen Residuen unterschieden. Werden positive und negative Residuen gleich gewichtet, so erhält man eine Median-Regression. Werden positive Residuen mit dem Faktor 1,5 und negative Residuen mit 0,5 gewichtet, so erhält man eine „3. Quartils-Regression“ usw. Quantil-Regressionen werden in Stata mit dem Befehl qreg geschätzt. Wie bei allen Stata-Modellbefehlen wird nach dem Befehl zunächst die abhängige, danach die Liste der unabhängigen Variablen eingegeben. Wenn keine weiteren Optionen verwendet werden, wird eine Median-Regression durchgeführt. Unser Beispiel für die Median-Regression verwendet den Datensatz data2agg.dta, der die durchschnittliche Lebenszufriedenheit und das Durchschnittseinkommen der GSOEP-Daten für die Jahre 1984 bis 2008 enthält.⁴⁸ . use data2agg, clear
Bitte betrachten Sie nun zunächst einmal den Scatterplot der durchschnittlichen Lebenszufriedenheit gegen das Durchschnittseinkommen mit entsprechender Regressionsgeraden: . tw sc lsat hhinc, mlab(wave) || lfit lsat hhinc
Die Grafik legt den Schluss nahe, dass der Datenpunkt aus der Welle von 1984 einen größeren Einfluss auf die Regressionsergebnisse hat als alle anderen Datenpunkte. Berechnen Sie nun die Median-Regression … . qreg lsat hhinc
… und vergleichen Sie die vorhergesagten Werte der Median-Regression mit denen der normalen OLS-Regression:
48 Wir verwenden diesen kleinen Datensatz, um die Auswirkungen der Median-Regression zu demonstrieren. Beachten Sie, dass man bei Verwendung von Aggregat-Daten leicht den sog. „ökologischen Fehlschluss“ begeht (Freedman 2004).
9.6 Weiterführende Verfahren
| 337
7.6
. predict medhat . graph twoway > || sc lsat hhinc, mlab(wave) > || lfit lsat hhinc, lpattern(solid) > || line medhat hhinc, sort lpattern(dash) > ||, legend(order(2 "OLS" 3 "Median"))
7.4
1984
1986
7.2
1985
1990 1987 1991 1989
7.0
1992 1993
1988
6.8
1995 1996 1999 1994 1998 2001 2000 1997 2002
2005 2003
2008
6.6
2006 2007 2004
20000
40000
60000 Mean household income OLS
80000
100000
Median
Die Regressionsgerade der Median-Regression ist nicht so steil wie diejenige der normalen OLS-Regression. Das liegt daran, dass die Median-Regression gegenüber untypischen Datenpunkten wie dem aus dem Jahr 1984 robust ist.
9.6.2 Regressionsmodelle für Paneldaten Paneldaten sind Daten, in denen dieselben Untersuchungseinheiten (Befragte) zu mehreren Zeitpunkten beobachtet werden. Das deutsche Sozio-oekonomische Panel (GSOEP) ist ein Beispiel für einen solchen Paneldatensatz. Im GSOEP werden ungefähr 20.000 Personen jedes Jahr dieselben Fragen gestellt. Anders formuliert: Das GSOEP beobachtet dieselben Variablen an denselben Befragten zu unterschiedlichen Zeitpunkten. Paneldaten können nicht nur durch „Panelumfragen“ – wie dem GSOEP – erhoben werden. Dieselbe Datenstruktur haben auch Zeitreihen von makroökonomischen Maßzahlen für mehrere Länder oder Daten mit bestimmten Eigenschaften von politischen Parteien über die Zeit. Wir betrachten alle Daten als Paneldaten, bei denen bestimmte Eigenschaften an denselben Objekten mehrmals beobachtet wurden. Im Rahmen dieses Abschnittes werden wir das Wort „Individuen“ für die Objekte verwenden. In Stata fangen alle Kommandos für Paneldaten mit den Buchstaben xt an und die Dokumentation dieser Kommandos ist im [XT] -Handbuch zusammengefasst. Eine Liste der xt-Kommandos finden Sie mit help xt. Unter den xt-Kommandos finden sich einige der ausgefalleneren Techniken der Statistik; mit diesen wollen wir uns hier aber nicht befassen. Stattdessen wollen wir Ihnen ein erstes intuitives Verständnis für
338 | 9 Einführung in die Regressionstechnik die zentralen Ansätze zur Analyse von Paneldaten vermitteln und dabei vorführen, wie man in Stata mit Paneldaten umzugehen hat.⁴⁹ Bevor wir allerdings mit unserer Beschreibung der statistischen Verfahren beginnen, müssen wir etwas Daten-Management betreiben. Alle Stata-Befehle für PanelAnalysen verlangen Paneldaten im „langen“ Format. Im nächsten Abschnitt beschreiben wir darum, wie Sie ihre Daten in dieses „lange“ Format bekommen.
9.6.2.1 Die Stata-Diät: Aus breit wird lang Paneldaten können im „breiten“ oder im „langen“ Format gespeichert werden. Im breiten Format ist jede Beobachtung des Datensatzes ein Individuum und die Variablen sind die Beobachtungen, die an diesen Individuen zu den verschiedenen Zeitpunkten vorgenommen wurden. Nehmen wir z.B. an, wir hätten die vier Individuen John, Paul, George und Ringo über ihre Lebenszufriedenheit in den Jahren 1968, 1969 und 1970 befragt. Die Antworten der vier könnten wir dann in einen Datensatz mit vier Beobachtungen – John, Paul, George und Ringo – und drei Variablen – die Lebenszufriedenheiten in den Jahren 1968, 1969 und 1970 – speichern (vgl. Tabelle 9.3a). Dieselbe Information lässt sich aber auch im langen Format speichern. Dabei sind die Beobachtungen die Individuen zu einem bestimmten Zeitpunkt und die Variablen sind die beobachteten Eigenschaften. In unserem Beispiel gäbe es dann drei Beobachtungen für John – eine aus dem Jahr 1968, eine aus 1969 und eine aus 1970 – drei Beobachtungen für Paul usw. Die Information zur Lebenszufriedenheit steht hingegen in einer einzigen Variablen. Um die Information über den Erhebungszeitpunkt zu behalten, müsste man aber eine Variable aufnehmen, die diesen Zeitpunkt wiedergibt (vgl. Tabelle 9.3b) Die xt-Kommandos benötigen Daten im langen Format. Ausgeliefert werden Paneldaten aber meistens im breiten Format.⁵⁰ Sie werden deshalb häufig Paneldaten vom breiten ins lange Format transformieren müssen. Der Datensatz data2w.dta ist ein Beispiel für einen Paneldatensatz im breiten Format. Er soll uns als Beispiel für den Wechsel vom breiten zum langen Format dienen: . use data2w, clear
Der Datensatz enthält Informationen über Geburtsjahr, Geschlecht, Lebenszufriedenheit, Familienstand, Einkommen und Arbeitszeit von 4.710 Befragten des GSOEP, die zwischen 1984 und 2009 jährlich einmal befragt wurden. Mit Ausnahme der zeit49 Als weitere Lektüre eignet sich das Buch von Baum (2006). Die Grundlagen finden sich bei Baltagi (2008); Hardin und Hilbe (2003); Diggle et al. (1994) sowie Wooldridge (2002). Beachten Sie auch die in [XT] xtreg angegebene Literatur. 50 Bei großen Panel-Studien wie dem GSOEP sind die Daten meist auf mehrere Datensätze verteilt. Für Datenanalysen muss man diese Datensätze daher zunächst zu einem Datensatz zusammenfassen. In Abschn. 11.4.2 zeigen wir Ihnen wie das geht.
9.6 Weiterführende Verfahren
| 339
Tab. 9.3. Speicherformate für Paneldaten (b) Langes Format (a) Breites Format i John Paul George Ringo
X₁₉₆₈
X₁₉₆₉
X₁₉₇₀
7 5 4 8
8 2 3 8
5 2 1 6
i
year
X
John John John Paul Paul Paul George : Ringo
1968 1969 1970 1968 1969 1970 1968 : 1970
7 8 5 5 2 2 4 : 6
lich konstanten Variablen wie Geschlecht oder Geburtsjahr gibt es darum für jede erfragte Charakteristik 26 Variablen – eine für jede Erhebungswelle. Mit . describe Contains data from data2w.dta obs: 4,710 vars: 113 size: 1,102,140 variable name persnr hhnr sex ybirth mar1984 mar1985 mar1986 mar1987 mar1988 mar1989 mar1990 mar1991 mar1992 mar1993 mar1994 mar1995 mar1996 mar1997 "
storage type
display format
long long byte int byte byte byte byte byte byte byte byte byte byte byte byte byte byte
%12.0g %12.0g %20.0g %8.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g %29.0g
SOEP 1984-2009 (Kohler/Kreuter) 12 Oct 2016 13:55 value label
variable label
sex mar mar mar mar mar mar mar mar mar mar mar mar mar mar
* * * * * * * * * * * * * *
Never changing person ID Origial household number Gender Year of birth Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual Marital Status of Individual
können Sie feststellen, dass die Variablennamen des Datensatzes einem speziellen Schema folgen. Der erste Teil des Namens – lsat, mar, hour und inc – bezieht sich auf die beobachtete Eigenschaft, während der zweite Teil auf das Jahr verweist, in dem die Variable erhoben wurde. Diese Art der Namensgebung macht es uns leicht, die Daten in das lange Format zu bringen.
340 | 9 Einführung in die Regressionstechnik In der Praxis sind Variablennamen, die diesem Schema folgen, eher selten. Auch im GSOEP wird das Schema nicht angewandt. Zur Vereinfachung der Darstellung haben wir die Variablennamen bereits für Sie geändert – normalerweise müssen Sie das aber selbst tun. Die wichtigsten Werkzeuge dafür sind rename und renpfix. Das Umbenennen von Variablen in Paneldaten im breiten Format kann allerdings ziemlich mühselig sein. Wenn Sie viele Variablen umbenennen müssen, lohnt sich ein Blick auf die Techniken in Abschnitt 3.2.2 und 12.1.⁵¹ Der Stata-Befehl zum Umschalten zwischen langem und breitem Format ist reshape. Mit reshape long wechselt man vom breiten ins lange Format, mit reshape wide vom langen ins breite. Drei Informationen benötigt Stata, um den Datensatz umformen zu können: 1. den Namen der Variablen, der die Individuen eindeutig identifiziert, 2. die Information darüber, welche Eigenschaften über die Zeit beobachtet werden, 3. die Information über die Zeitpunkte, zu denen die Eigenschaften erhoben wurden. Die erste Information ist einfach zu bekommen. Im GSOEP werden die Individuen eindeutig durch die Variable persnr identifiziert. Wenn es keine solche Variable im Datensatz gibt, kann die laufende Nummer der Beobachtung verwendet werden (Abschn. 5.5.1). Die beiden anderen Informationen sind in den Variablennamen enthalten. Wie wir gesehen haben, enthält der erste Teil der GSOEP-Variablennamen die Eigenschaft, die unter Beobachtung steht, und der zweite Teil das Jahr, in dem die Beobachtung gemacht wurde. Um die Information von Jahr und Inhalt zu trennen, muss Stata wissen, wo der erste Teil der Variablennamen aufhört bzw. wo der zweite Teil beginnt. Diese Information wird an Stata weitergegeben, indem man für jede Variable den Teil des Variablennamens aufführt, der sich auf die beobachtete Eigenschaft bezieht. Lassen Sie uns das an einem Beispiel zeigen: . reshape long hhinc lsat mar whours, i(persnr) j(wave)
Schauen Sie zuerst auf die Option i(). Innerhalb der Klammern muss die Variable stehen, durch die die Individuen identifiziert werden. Schauen Sie dann auf das, was wir hinter reshape long angegeben haben. Beachten Sie, dass wir hier weder Variablennamen noch eine Variablenliste angegeben haben. Vielmehr haben wir hier die Namensteile angegeben, die auf die beobachteten Eigenschaften verweisen. Die übrigen Teile der Variablennamen werden von Stata dann als Informationen über die Erhebungszeitpunkte interpretiert. Wenn das Kommando ausgeführt wird, entfernt
51 Der benutzerdefinierte Stata-Befehl soepren erleichtert die Umbenennung von GSOEP-Variablen. Den Befehl finden Sie im SSC-Archiv. Informationen über das SSC-Archiv und die Installation von benutzerdefinierten Befehlen finden Sie in Kap. 13.
9.6 Weiterführende Verfahren | 341
Stata die Jahresangaben von allen Variablen, die mit den angegebenen Namensteilen beginnen, und speichert diese Information in einer neuen Variablen. Den Namen dieser neuen Variablen spezifizieren Sie innerhalb der Option j(). Wir haben die neue Variable wave genannt. Hätten wir die Option nicht angegeben, hätte Stata den Namen _j verwendet. Schauen wir uns nun den neuen Datensatz an: . describe Contains data obs: 122,460 vars: 14 size: 4,408,560 variable name persnr wave hhnr sex ybirth mar hhinc whours lsat sample intnr strata psu dweight
storage type long int long byte int byte long int byte byte long int long float
SOEP 1984-2009 (Kohler/Kreuter)
display format %12.0g %9.0g %12.0g %20.0g %8.0g %29.0g %10.0g %12.0g %32.0g %25.0g %12.0g %8.0g %12.0g %12.0g
value label
variable label Never changing person ID
sex mar scale11 sample
* * * *
Origial household number Gender Year of birth
Subsample identifier Interviewer number Strata Primary sampling units Design weights * indicated variables have notes
Sorted by: persnr wave Note: Dataset has changed since last saved.
Der Datensatz hat nun 14 statt 113 Variablen. Natürlich sind weiterhin 4.710 Individuen im Datensatz, aber weil für jedes Individuum jeweils 19 Beobachtungen vorliegen, enthält der Datensatz nun 122.460 Beobachtungen und ist im langen Format. Nun können Sie die Stata-Befehle für Paneldaten verwenden. Etwas bequemer wird die Arbeit mit diesen xt-Befehlen, wenn Sie die Daten nun noch als Paneldaten deklarieren. Mit dem Befehl xtset wird Stata mitgeteilt, welche Variable die Individuen und welche Variable die Zeit identifiziert. Also, . iis persnr . tis wave
Beachten Sie schließlich noch Folgendes: Wenn Sie Ihren Datensatz einmal vom breiten ins lange Format gebracht haben, wird es noch einfacher, zwischen lang und breit hin- und herzuschalten: . reshape wide . reshape long
342 | 9 Einführung in die Regressionstechnik 9.6.2.2 Fixed-Effects-Modell Mit Daten im langen Format kann uns zunächst nichts davon abhalten, ein „normales“ lineares Regressionsmodell zu berechnen. Wenn Sie z.B. herausfinden wollen, ob das Altern einen Einfluss auf die allgemeine Lebenszufriedenheit hat, könnten Sie z.B. folgendes Regressionsmodell verwenden: . gen age = wave - ybirth . regress lsat age SS
Source
df
MS
Model Residual
1666.28069 290617.155
1 86,678
1666.28069 3.35283641
Total
292283.435
86,679
3.37202131
Std. Err.
t
lsat
Coef.
age _cons
-.0086023 7.301021
.0003859 .0187129
-22.29 390.16
Number of obs F(1, 86678) Prob > F R-squared Adj R-squared Root MSE
P>|t| 0.000 0.000
= = = = = =
86,680 496.98 0.0000 0.0057 0.0057 1.8311
[95% Conf. Interval] -.0093586 7.264344
-.007846 7.337698
Die Ergebnisse dieses Modells zeigen, dass die Lebenszufriedenheit mit dem Alter etwas abnimmt. Nachdem Sie dieses Kapitel gelesen haben, werden Sie aber vielleicht auch die Ergebnisse des Modells insgesamt in Zweifel ziehen. Ein Grund zur Kritik könnten fehlende Variablen im Modell sein. Sollten wir nicht Geschlecht, Bildung und vielleicht die historische Zeit, in der die Befragten aufwuchsen, kontrollieren? Stellen Sie sich nun vor, Sie würden eine Dummy-Variable für jeden Befragten des GSOEP im Modell aufnehmen. Da der Datensatz 4.710 Beobachtungen enthält, würde dies ein Regressionsmodell mit 4.709 Dummy-Variablen bedeuten; wir hätten also 4.709 zusätzliche Koeffizienten – das scheint wenig praktikabel. In kleinen Datensätzen wie dem von Tabelle 9.3 gibt es aber keine solchen Probleme. Lassen Sie uns daher einen Moment mit diesem Datensatz weiterarbeiten: . preserve . use beatles, clear . describe Contains data from beatles.dta obs: 12 vars: 4 size: 60 variable name persnr time lsat age Sorted by:
storage type byte int byte byte
display format %9.0g %9.0g %9.0g %9.0g
Kohler/Kreuter 16 Jul 2012 11:39 value label
variable label Person Year of observation Life satisfaction (fictive) Age in years
9.6 Weiterführende Verfahren | 343
Unser Datensatz enthält das Alter und die (fiktive) Lebenszufriedenheit von vier Engländern zu drei Zeitpunkten im langen Format. Der Befehl . regress lsat age, noheader lsat
Coef.
age _cons
.6902655 -14.32153
Std. Err. .4913643 13.65619
t 1.40 -1.05
P>|t| 0.190 0.319
[95% Conf. Interval] -.4045625 -44.74941
1.785093 16.10635
wiederholt die obige Regressionsanalyse und zeigt einen leichten, nichtsignifikanten positiven Zusammenhang zwischen Alter und Lebenszufriedenheit. Das Einführen von Dummy-Variablen für die Individuen in diese Regression ist unkompliziert: . regress lsat age i.persnr, noheader lsat
Coef.
Std. Err.
t
P>|t|
[95% Conf. Interval]
age
-1.625
.165921
-9.79
0.000
-2.017341
-1.232659
persnr 2 3 4
-6.916667 -8.541667 1.333333
.5068969 .6281666 .383178
-13.65 -13.60 3.48
0.000 0.000 0.010
-8.115287 -10.02704 .4272613
-5.718046 -7.056289 2.239405
_cons
53.45833
4.81933
11.09
0.000
42.06243
64.85424
Nun hat das Alter einen starken negativen Effekt auf die Lebenszufriedenheit. Das Vorzeichen des Alterseffekts hat sich gedreht und wir werden gleich sehen warum. Aber lassen Sie uns zunächst etwas über die Dummy-Variablen für die Individuen sagen. Die Koeffizienten der Dummy-Variablen geben an, wie stark sich die Lebenszufriedenheit der vier Engländer unterscheidet. Die Engländer 1 und 4 haben eine viel höhere Lebenszufriedenheit als die Engländer 2 und 3. Wir wissen nicht, warum diese Personen sich in ihrer Lebenszufriedenheit unterscheiden, da es sich aber um verschiedene Menschen handelt, sind solche Unterschiede letztlich gar nicht so überraschend. Vielleicht leben die vier Engländer ja in unterschiedlichen Nachbarschaften oder sie haben einen anderen familiären Hintergrund oder sie sind unter verschiedenen Sozialisationsbedingungen aufgewachsen oder sie haben schlicht unterschiedliche Gewohnheiten beim Beantworten seltsamer Fragen in Bevölkerungsumfragen. Wichtig an dieser Stelle ist: Durch die Aufnahme der individuellen Dummy-Variablen haben wir alle Unterschiede zwischen den Individuen kontrolliert. Der Koeffizient für das Alter kann deshalb nicht auf Grund fehlender Kontrolle zeitlich konstanter (zeitinvarianter) Merkmale der Individuen verzerrt sein. Er ist ein reiner Alterseffekt, der ausschließlich auf der Entwicklung der Lebenszufriedenheit während des Alterns der vier Engländer beruht. Die Interpretation des Alterseffekts kann mit Hilfe folgender Grafik illustriert werden:
344 | 9 Einführung in die Regressionstechnik predict yhat separate yhat, by(persnr) separate lsat, by(persnr) graph twoway || line yhat? age, clstyle(p1..) || lfit lsat age, lpattern(dash) || scatter lsat? age, ms(O S Th Dh) msize(*1.5) || , legend(order(6 "John" 7 "Paul" 8 "George" 9 "Ringo" 1 "Fixed Effects Pred." 5 "Standard OLS Pred."))
0
2
4
6
8
10
. . . . > > > > >
25
26
27
28
29
30
Age in years John George Fixed Effects Pred.
Paul Ringo Standard OLS Pred.
Die Grafik ist ein Scatterplot mit unterschiedlichen Symbolen für die vier Personen (scatter lsat? age), in den ein Conditional-Effects-Plot der Regression mit den Dummy-Variablen (line yhat? age) und die Regressionsgerade der linearen Einfachregression der gesamten Daten (lfit lsat age) eingezeichnet wurden. Wenn Sie sich die Marker für die einzelnen Personen getrennt anschauen, werden Sie feststellen, dass die Lebenszufriedenheit bei jedem der vier mit dem Alter abnimmt. Gleichzeitig haben allerdings die beiden Älteren, Ringo und John, eine höhere Lebenszufriedenheit als die beiden Jüngeren, Paul und George. Wenn wir diese Unterschiede zwischen den Individuen nicht kontrollieren, tragen die Unterschiede zwischen den Personen zum Alterseffekt bei. Der Alterseffekt der linearen Einfachregression spiegelt diese Tatsache wider. Nach der Kontrolle der Unterschiede zwischen den Individuen bleibt nur noch die Variation innerhalb der Personen übrig. Der Alterseffekt spiegelt dann die Veränderung der Lebenszufriedenheit während des Alterns wider. Da das Regressionsmodell mit Dummy-Variablen ausschließlich die Variation innerhalb der Personen betrachtet, wird es teilweise auch „Within-Estimator“ genannt. Andere Namen sind „Covariance-Modell“, „Individual-Dummy-Variable-Modell“ und „Fixed-Effects-Modell“. Die Entwicklung des Fixed-Effects-Modells ist relativ einfach, die technische Umsetzung für große Datensätze ist es allerdings nicht. Das Problem ist, dass die Anzahl unabhängiger Variablen in Regressionsmodellen in Stata auf 800 bzw. auf 11.000 in Stata/SE begrenzt ist. Eine Berechnung des Fixed-Effects-Modells für Datensätze
9.6 Weiterführende Verfahren
| 345
mit über 800 bzw. 11.000 Individuen durch Aufnahme der entsprechenden DummyVariablen ist darum nicht möglich. Glücklicherweise kann man im Spezialfall der linearen Regression einen algebraischen Trick anwenden, um das Modell trotzdem zu berechnen. Und glücklicherweise hat Stata einen Befehl, der diesen Trick beherrscht: xtreg mit der Option fe. Hier ist der Befehl für unseren kleinen Beispieldatensatz: . xtreg lsat age, fe i(persnr)
Damit wird der Alterskoeffizient des Modells mit den Dummy-Variablen exakt reproduziert. Beachten Sie, dass Sie die Dummy-Variablen hier nicht aufführen müssen. Stattdessen geben Sie den Namen der Variablen, die die Individuen identifiziert, in der Option i() an. Das Gleiche gilt auch für große Datensätze. Sie können denselben Befehl darum auch auf unsere eingangs verwendeten GSOEP-Daten anwenden. Weil wir in diesen Daten bereits den Befehl tsset verwendet haben (vgl. S. 341), können wir sogar auf die Option i() verzichten. . restore . xtreg lsat age, fe Fixed-effects (within) regression Group variable: persnr
Number of obs Number of groups
R-sq: within = 0.0200 between = 0.0055 overall = 0.0057
Obs per group:
corr(u_i, Xb)
F(1,81970) Prob > F
= -0.3028
lsat
Coef.
Std. Err.
t
age _cons
-.0325964 8.398466
.0007977 .0367987
sigma_u sigma_e rho
1.287599 1.4066128 .45591217
(fraction of variance due to u_i)
-40.86 228.23
F test that all u_i=0: F(4708, 81970) = 13.79
= =
86,680 4,709
min = avg = max =
6 18.4 26
= =
1669.61 0.0000
P>|t|
[95% Conf. Interval]
0.000 0.000
-.03416 8.326341
-.0310328 8.470591
Prob > F = 0.0000
Beachte: Die Koeffizienten der 4.709 Dummy-Variablen werden in der Ausgabe nicht gezeigt. Sie werden auch gar nicht ermittelt. Aber der Koeffizient für das Alter wird so geschätzt, als wären die Dummy-Variablen im Modell enthalten. Das FixedEffects-Modell kontrolliert alle zeitinvarianten Unterschiede zwischen den Individuen und seine Koeffizienten können deshalb nicht wegen fehlender zeitinvarianter Eigenschaften der Individuen verzerrt sein. Dies macht das Fixed-Effects-Modell für die Analyse kausaler Beziehungen sehr interessant.
346 | 9 Einführung in die Regressionstechnik Ein Nebeneffekt des Fixed-Effects-Modells ist, dass zeitinvariante Ursachen für die abhängige Variable mit ihm nicht untersucht werden können. Technisch betrachtet liegt das daran, dass die zeitinvarianten Eigenschaften mit den Dummy-Variablen für die Individuen kollinear sind. Inhaltlich liegt das daran, dass Fixed-Effects-Modelle zur Analyse der Gründe für Veränderungen gedacht sind. Zeitinvariante Eigenschaften können aber keine Ursache für eine solche Veränderung sein.
9.6.2.3 Fehlerkomponenten-Modelle Wir wollen die Beschreibung von Fehlerkomponenten-Modellen erneut mit einem einfachen linearen Regressionsmodell beginnen: . regress lsat age
Dieses Modell ignoriert die Panelstruktur der Daten; es verwendet die Daten, als wären sie Querschnittsdaten. Aus der Sicht der Statistik verletzt dieses Modell eine grundlegende Annahme von Regressionsmodellen, nämlich die Annahme, dass alle Beobachtungen voneinander unabhängig sind. In Paneldaten kann man aber generell davon ausgehen, dass verschiedene Beobachtungen für ein und dasselbe Individuum untereinander ähnlicher sind, als Beobachtungen für unterschiedliche Individuen. Eine andere Art, dies auszudrücken, ist, dass die Residuen der obigen Regression korreliert sind. Das heißt, dass ein Individuum, das ein hohes positives Residuum bei seiner ersten Beobachtung besitzt, typischerweise auch hohe positive Residuen bei seiner zweiten Beobachtung aufweist usw. Lassen Sie uns Ihnen vorführen, dass die Residuen obiger Regression tatsächlich korreliert sind. Dazu berechnen wir zunächst die Residuen … . predict res, resid
… und machen den Datensatz dann zu einem breiten Datensatz. Da wir eine neue Variable generiert haben, können wir nicht einfach reshape wide tippen, sondern müssen den reshape-Befehl neu aufbauen. . reshape wide lsat mar whours hhinc age res, i(persnr) j(wave)
Wir haben nun einen Datensatz mit 26 Variablen, der unter anderem die Residuen des Regressionsmodells für jeden Zeitpunkt enthält. Aus diesen Variablen lässt sich eine Korrelationsmatrix erstellen. Um Platz zu sparen, wollen wir diese Korrelationsmatrix hier nur für Residuen aus den 80er Jahren darstellen: . corr res198? (obs=2,248) res1984 res1985
res1984
res1985
1.0000 0.5122
1.0000
res1986
res1987
res1988
res1989
9.6 Weiterführende Verfahren | 347
res1986 res1987 res1988 res1989
0.4437 0.3801 0.3674 0.3665
0.4755 0.4244 0.3946 0.3914
1.0000 0.5020 0.4590 0.4005
1.0000 0.5240 0.4843
1.0000 0.5268
1.0000
Wie Sie sehen, sind die Residuen tatsächlich korreliert. Je höher ein Residuum in einem Jahr, desto höher ist es auch in den anderen Jahren. Wir nennen diese Korrelationsmatrix nun Rt,s mit Rt,s
1 ⎛ ⎜ r ei2 ,ei1 ⎜ =⎜ ⎜ ⎜ ⋮ ⎝reiT ,ei1
1 ⋮
reiT ,ei2
⋱ …
⎞ ⎟ ⎟ ⎟ . ⎟ ⎟ 1⎠
(9.24)
Wie bereits erwähnt, trifft man bei der Berechnung einer einfachen linearen Regression auf Paneldaten – unter anderem – die Annahme, dass alle Korrelationen dieser Korrelationsmatrix Null sind, d.h. formal: Rt,s = {
1
für t = s und
0
für t ≠ s .
(9.25)
Wie wir aber gerade gesehen haben, ist diese Annahme in unserem Beispiel nicht korrekt. Das Modell ist deshalb fehlspezifiziert. Bei Paneldaten ist das praktisch immer so, d.h., wir dürfen normalerweise von korrelierten Fehlern ausgehen. In Fehlerkomponenten-Modellen werden daher Hypothesen über die Struktur der Korrelationsmatrix Rt,s aufgestellt. Die wahrscheinlich einfachste Struktur nach dem einfachen linearen Regressionsmodell ist z.B. das sog. „Random-Effects-Modell“: Rt,s = {
1
für t = s und
ρ
für t ≠ s .
(9.26)
Hier wird angenommen, dass die Beobachtungen für ein Individuum über die Zeit hinweg einander ähnlicher sind als Beobachtungen für verschiedene Individuen. Der Stata-Befehl für das Random-Effects-Modell ist xtreg mit der Option re. . reshape long . xtreg lsat age, re
Eine andere naheliegende Annahme ist, dass die Residuen für ein Individuum untereinander umso ähnlicher sind, je enger die Beobachtungen zeitlich aufeinanderfolgen. Diese Struktur kann mit Hilfe der sog. AR(1)-Korrelations-Matrix untersucht werden:⁵² 1 für t = s und Rt,s = { (9.27) ρ|t−s| für t ≠ s . 52 AR ist die Abkürzung für „Auto-Regression“.
348 | 9 Einführung in die Regressionstechnik Durch spezifische Annahmen über die Strukturen der Fehlerkorrelationsmatrix lassen sich nahezu beliebig viele Modellvariationen erstellen. Alle diese Modelle können mit dem Befehl xtgee geschätzt werden. Der Befehl hat die Option corr(), mit der sich vordefinierte Korrelationsstrukturen oder von Hand erstellte Korrelationsmatrizen einsetzen lassen. Mit . xtgee lsat age, corr(exchangeable)
spezifiziert man ein Random-Effects-Modell, . xtgee lsat age, corr(ar1)
schätzt ein Modell mit einer AR(1)-Korrelations-Matrix und . xtgee lsat age, corr(independent)
erzeugt das Standard-OLS-Regressionsmodell vom Anfang dieses Abschnitts. Die Koeffizienten von Fehlerkomponenten-Modellen werden interpretiert wie die Koeffizienten des normalen Regressionsmodells. Der Unterschied zum normalen Regressionsmodell besteht darin, dass die Koeffizienten, wenn die Fehler-Struktur korrekt spezifiziert wurde, korrekter sind. Da die Koeffizienten auf der Basis von Unterschieden innerhalb und zwischen den Individuen geschätzt werden, können mit ihnen auch Effekte von zeitinvarianten Variablen ermittelt werden. Anders als in FixedEffects-Modellen können die Koeffizienten aber auf Grund fehlender zeitinvarianter Variablen verzerrt sein.
9.7 Übungen 1.
2.
3.
Erstellen Sie in data1.dta ein Regressionsmodell zur Überprüfung der Hypothese, dass das Haushaltseinkommen (hhinc) die allgemeine Lebenszufriedenheit erhöht (lsat). Wie viele Beobachtungen werden in dem Modell benutzt? Was ist die geschätzte Lebenszufriedenheit für Befragte mit einem Haushaltseinkommen von 12.000 €? Wie verändert sich die geschätzte Lebenszufriedenheit, wenn sich das Haushaltseinkommen um 6.000 € erhöht? Überprüfen Sie, ob der Zusammenhang zwischen der allgemeinen Lebenszufriedenheit und dem Haushaltseinkommen auf Faktoren zurückzuführen ist, die für die Höhe des Haushaltseinkommens verantwortlich sein könnten (z.B. Geschlecht, Alter, Bildung, Beschäftigungsstatus). Wie verändert sich der Effekt des Haushaltseinkommens, wenn Sie diese Variablen in ihrem Modell berücksichtigen? Überprüfen Sie ihr Modell auf Ausreißer (einflussreiche Fälle). Ermitteln Sie die drei Beobachtungen mit den höchsten absoluten Werten von DFBETA für das Haushaltseinkommen.
9.7 Übungen
| 349
4. Überprüfen Sie ihr Modell auf Nichtlinearitäten und erläutern Sie Ihre Befunde. Führen Sie die folgenden drei Schritte durch und untersuchen Sie, inwiefern wie sich ihr Modell verbessert. – Berechnen Sie das Regressionsmodell mit logarithmiertem Haushaltseinkommen an Stelle des Haushaltseinkommens und fügen Sie dem Regressionsmodell eine Variable des quadrierten Alters hinzu. – Wiederholen Sie die Regressionsdiagnostik für das modifizierte Modell. Was würden Sie nun tun, um das Modell zu verbessern? – Wiederholen Sie den Prozess, bis Sie zufrieden sind. 5. Überprüfen Sie die Homoskedastizitätsannahme für Ihr letztes Modell. Was folgern Sie daraus? Berechnen Sie das Modell mit robusten Standardfehlern – falls notwendig. 6. Von dem Soziologen Ronald Inglehart stammt die Vermutung, dass jüngere Generationen weniger materialistisch sind als ältere. – Welche testbaren Implikationen hat diese Vermutung für unser Regressionsmodell? – Verändern Sie ihr Regressionsmodell so, dass Sie diese Implikationen testen können. Hat Inglehart recht? – Stellen Sie Ihr Ergebnis mit einem Conditional-Effects-Plot dar.
10 Regressionsmodelle für kategoriale abhängige Variablen In den Sozialwissenschaften hat man es oft mit kategorialen abhängigen Variablen zu tun. Dies können Variablen sein, deren Ausprägungen dichotom (z.B. Mietwohnung ja oder nein), nominal (Parteipräferenz für CDU, SPD, FDP oder Grüne) oder ordinal (keine Sorgen, einige Sorgen, große Sorgen) sind. Einige Verfahren zur Modellierung solcher Variablen werden wir Ihnen in diesem Kapitel vorstellen. Wir beginnen dabei mit einem Verfahren für dichotome abhängige Variablen: der „logistischen Regression“. Die logistische Regression ähnelt in vielem der linearen Regression. Wir werden sie deshalb in Analogie zum vorherigen Kapitel erläutern. Falls Sie bisher noch keine Erfahrung mit der linearen Regression gesammelt haben oder Ihnen diese völlig unbekannt ist, empfehlen wir Ihnen, zunächst Kapitel 9 bis Abschnitt 9.1.2.1 zu lesen. Genauso wie bei der linearen Regression wird in der logistischen Regression die abhängige Variable aus der Kombination der unabhängigen Variablen vorhergesagt. Eine solche Kombination der unabhängigen Variablen wird Linearkombination genannt und sieht wie folgt aus: β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i . Dabei steht x1i für den Wert der ersten unabhängigen Variablen des Befragten i, x2i für den entsprechenden Wert der zweiten unabhängigen Variablen usw. Die Regressionsparameter β1 , β2 , … , βK−1 stehen für die den Variablen zugeordneten Gewichte. Anders als in der linearen Regression muss man in der logistischen Regression eine Transformation des Mittelwerts der abhängigen Variablen betrachten. Warum eine solche Transformation notwendig ist und warum deshalb die lineare Regression nicht verwendet werden kann, erläutern wir Ihnen in Abschnitt 10.1, die Transformation selbst in Abschnitt 10.2.1. Abschnitt 10.2.2 erklärt die Methode, mit der in der logistischen Regression die Koeffizienten bestimmt werden. Dieser Abschnitt ist etwas schwieriger. Da er für das erste Verständnis der logistischen Regression nicht wichtig ist, können Sie ihn zunächst überspringen. Die Schätzung einer logistischen Regression mit Stata stellen wir Ihnen in Abschnitt 10.3 vor. Daran anschließend behandeln wir Verfahren zur Überprüfung der Grundannahmen des Modells (Abschn. 10.4). Verfahren zur Überprüfung der Signifikanz der Koeffizienten behandeln wir in Abschnitt 10.5. Abschnitt 10.6 zeigt einige Möglichkeiten zur verfeinerten Modellierung von Zusammenhängen. Einen Überblick über weiterführende Verfahren, insbesondere Verfahren für kategoriale Variablen mit mehr als zwei Ausprägungen, finden Sie in Abschnitt 10.7.
10.1 Das lineare Wahrscheinlichkeitsmodell | 351
Wie bei der linearen Regression ist auch für dieses Kapitel die Lektüre weiterer Literatur für ein umfassendes Verständnis der Verfahren unumgänglich. Wir empfehlen die Bücher von Tutz (2000) sowie von Long (1997) bzw. Long und Freese (2006).
10.1 Das lineare Wahrscheinlichkeitsmodell Warum ist die lineare Regression für kategoriale abhängige Variablen nicht geeignet? Stellen Sie sich einmal vor, Sie wurden von einer internationalen Schiffssicherheitsaufsichtsbehörde eingestellt und sollen den Untergang der Titanic unter die Lupe nehmen. Sie sollen herausfinden, ob das in der Schifffahrt geltende Prinzip „Frauen und Kinder zuerst“ bei der Rettung praktiziert wurde oder ob die These des Kinofilmes „Titanic“ zutrifft, nach der sich feine Herren der ersten Klasse ihren Platz in den Rettungsbooten auf Kosten von Frauen und Kindern der dritten Klasse erkauft haben. Wir haben Ihnen für diese Untersuchung die Daten über den Untergang der Titanic zur Verfügung gestellt,¹ den Sie mit . use titanic2, clear
in den Arbeitsspeicher laden können.² Bitte verschaffen Sie sich, bevor Sie weiterlesen, zunächst mit den Befehlen . describe . tab1 _all
einen Überblick über den Inhalt des Datensatzes. Sie werden dabei feststellen, dass der Datensatz Angaben über das Alter (age), das Geschlecht (men) und die Fahrscheinklasse (class) der Passagiere der Titanic enthält. Darüber hinaus ist für jeden Passagier verzeichnet, ob er den Untergang des Schiffes überlebt hat oder nicht (survived). Um die Nachteile der linearen Regression auf kategoriale abhängige Variablen zu verdeutlichen, spielen wir ein solches Modell einmal durch. Wir untersuchen zunächst, ob Kinder tatsächlich häufiger gerettet wurden als Erwachsene. Wie müsste ein Scatterplot mit der Variablen für das Überleben als y-Variable und dem Alter als x-Variable in diesem Fall aussehen? Bitte machen Sie sich einmal die Mühe von Hand eine Skizze für diesen Scatterplot anzufertigen.
1 Die Daten wurden vom „British Board of Trade“ im Rahmen ihrer Untersuchung zum Untergang der Titanic erhoben und von Dawson (1995) öffentlich zugänglich gemacht. Aus didaktischen Gründen haben wir den Originaldatensatz insofern verändert, als wir Erwachsene und Kinder in fiktive weitere Altersgruppen unterteilt haben. Der Originaldatensatz unterscheidet lediglich zwischen Erwachsenen und Kindern. Unser Dateipaket enthält sowohl den Do-File, mit dem wir unsere „Fälschung“ vorgenommen haben (crtitanic2.do), als auch den Originaldatensatz (titanic.dta). 2 Bitte achten Sie darauf, dass Ihr Arbeitsverzeichnis c:\data\kk ist (vgl. S. 12).
352 | 10 Regressionsmodelle für kategoriale abhängige Variablen Sie werden dabei feststellen, dass die Punkte eigentlich nur auf zwei horizontalen Linien eingetragen werden können: einmal auf dem Wert 0 (nicht überlebt) und einmal auf dem Wert 1 (überlebt). Wenn Kinder tatsächlich häufiger gerettet wurden als Erwachsene, müsste die Anzahl der Punkte auf der 0-Linie im Vergleich zu denen auf der 1-Linie zunehmen, je weiter Sie nach rechts kommen. Durch . scatter survived age
können Sie kontrollieren, ob Ihre Skizze korrekt ist. Die Grafik ist insgesamt nicht sonderlich informativ, da die Plotsymbole häufig direkt übereinander gezeichnet werden und die Anzahl der Datenpunkte auf diese Weise unsichtbar bleibt. Mit Hilfe der graph-Option jitter() gelangen Sie zu einer informativeren Darstellung. Mit jitter() wird zu jedem Datenpunkt eine kleine Zufallszahl hinzuaddiert, wodurch übereinanderliegende Fälle sichtbar werden. Innerhalb der Klammer steht eine Zahl zwischen 1 und 30, mit der die Größe der Zufallszahl gesteuert wird. Normalerweise sollten Sie eher kleine Zahlen verwenden.
0
.2
Passenger survived y/n .4 .6
.8
1
. scatter survived age, jitter(10)
0
20
40 Age in years (fictious)
60
80
Bei der Betrachtung der Grafik entsteht der Eindruck, dass es tatsächlich einen negativen Zusammenhang zwischen dem Alter und dem Überleben der TitanicKatastrophe gibt. Der Eindruck wird bestätigt, wenn Sie die Regressionsgerade in die Grafik einzeichnen (vgl. dazu Abschn. 9.1.2.1): . regress survived age . predict yhat . scatter survived age, jitter(10) ms(oh) || line yhat age, sort
−.5
0
.5
1
10.1 Das lineare Wahrscheinlichkeitsmodell | 353
0
20
40 Age in years (fictious)
Passenger survived y/n
60
80
Fitted values
Wichtiger als diese Bestätigung des negativen Zusammenhangs ist uns jedoch, dass die Grafik das zentrale Problem der linearen Regression für eine dichotome abhängige Variable offenbart: In der Abbildung zeigt die Regressionsgerade ab dem Alter von etwa 60 Jahren vorhergesagte Werte von unter 0. Was hat dies inhaltlich zu bedeuten? Vergegenwärtigen Sie sich, wie die vorhergesagten Werte bei einer dichotomen abhängigen Variablen allgemein interpretiert werden. Bisher hatten wir die vorhergesagten Werte immer als geschätztes durchschnittliches Ausmaß der abhängigen Variablen für die jeweilige Kombination der unabhängigen Variablen aufgefasst. In diesem Sinne würden wir hier z.B. sagen: Das Überleben von 5-Jährigen beträgt im Schnitt etwa 0,77. Eine wenig überzeugende Interpretation, wenn man bedenkt, dass man nur überleben oder nicht überleben kann – ein bisschen überleben gibt es nicht. Allerdings lässt sich der vorhergesagte Wert einer dichotomen abhängigen Variablen auch noch auf eine andere Weise interpretieren. Hierzu müssen Sie sich klar machen, was der arithmetische Mittelwert einer dichotomen Variablen mit den Ausprägungen 0 und 1 bedeutet. Die Variable survived z.B. hat den arithmetischen Mittelwert von 0,32. Dies entspricht dem Anteil der mit 1 codierten Passagiere an den Passagieren insgesamt.³ Die Interpretation lautet also: Der Anteil der Überlebenden beträgt ca. 32 Prozent oder mit anderen Worten, die geschätzte Wahrscheinlichkeit auf einen Überlebenden zu treffen, beträgt 0,32. Allgemein sind die vorhergesagten Werte der linearen Regression Schätzungen des bedingten Mittelwerts der abhängigen Variablen. Sie können deshalb für jeden Wert der unabhängigen Variablen die Wahrscheinlichkeitsinterpretation anwenden: Der vorhergesagte Wert von ca. 0,77 für die 5-Jährigen bedeutet eine geschätzte Überlebenswahrscheinlichkeit von 0,77. Auf Grund dieser Interpretationsmöglichkeit nennt man das lineare Regressionsmodell für dichotome abhängige Variablen auch lineares Wahrscheinlichkeitsmodell (LPM) (Aldrich und Nelson 1984). Wie lassen sich mit Hilfe der Wahrscheinlichkeitsinterpretation die negativen vorhergesagten Werte der über 60-jährigen Passagiere interpretieren? Eigentlich gar 3 Durch tab survived können Sie sich hiervon überzeugen.
354 | 10 Regressionsmodelle für kategoriale abhängige Variablen nicht, denn nach der mathematischen Definition von Wahrscheinlichkeiten liegen Wahrscheinlichkeiten grundsätzlich zwischen 0 und 1. Ein Modell, das die Wahrscheinlichkeiten mit Hilfe einer Geraden darzustellen versucht, wird jedoch bei hinreichend großen bzw. kleinen Werten der x-Variablen zwangsläufig vorhergesagte Werte von über 1 oder unter 0 produzieren. Dies ist das erste Problem der OLSRegression bei dichotomen Variablen.⁴ Das zweite Problem betrifft die Homoskedastizitätsannahme der linearen Regression, wie wir sie in Abschnitt 9.3.2 vorgestellt haben. Nach dieser sollte die Varianz ̂ konstant sein. Als Hinder Fehler für alle Werte von x (und daher für alle Werte von y) weis auf eine mögliche Verletzung dieser Annahme hatten wir Ihnen einen Scatterplot der Residuen gegen die vorhergesagten Werte vorgeschlagen. Für unser lineares Wahrscheinlichkeitsmodell erhalten Sie eine solche Grafik durch
−.6
Residuals .4
1.4
. predict r, resid . scatter r yhat, yline(-.6 .4) ylab(-.6 .4 1.4) xline(.6)
−.2
0
.2 .4 Fitted values
.6
.8
In dieser Grafik sehen Sie, dass für jeden vorhergesagten Wert nur zwei mögliche Residuen auftreten können. Weniger offensichtlich ist, dass sich diese beiden Residuen unmittelbar aus den vorhergesagten Werten ergeben. Wenn Sie für eine Person, die überlebt hat (survived=1), auf Grund ihres Alters den Wert 0,6 vorhersagen, haben Sie ein Residuum von 1 − 0, 6 = 0, 4. Wenn Sie für eine Person, die nicht überlebt hat (survived=0), den Wert 0,6 vorhersagen, erhalten Sie für diese Person einen Wert 0 − 0, 6 = −0, 6. Die Residuen sind demnach entweder 1− yî oder −yî . Die Varianz der Residuen beträgt yî × (1 − yî ) und ist daher umso größer, je näher die vorhergesagten Werte sich an 0,5 annähern. Die Residuen des linearen Wahrscheinlichkeitsmodells sind daher qua 4 In der Praxis ist dieses Problem dann von untergeordneter Bedeutung, wenn vorhergesagte Werte von über 1 oder unter 0 für realistische Werte der unabhängigen Variablen nicht auftreten. Dennoch scheint ein Modell sinnvoller, das solche unmöglichen Wahrscheinlichkeiten von vornherein ausschließt.
10.2 Grundkonzepte |
355
definitionem heteroskedastisch. Als Folge erhält man verzerrte Standardfehler, Konfidenzintervalle und Signifikanztests der Regressionskoeffizienten. Zusammenfassend lässt sich sagen, dass eine lineare Regression mit einer dichotomen abhängigen Variablen zwar möglich ist, jedoch grundsätzlich zwei Probleme aufweist. Erstens können nicht alle vorhergesagten Werte inhaltlich interpretiert werden und zweitens können mit diesem Modell keine korrekten inferenzstatistischen Aussagen gemacht werden. Zur Vermeidung dieser Probleme benötigen wir ein Modell, das ausschließlich Wahrscheinlichkeiten zwischen 0 und 1 produziert, und das auf Annahmen beruht, die von dem Modell auch eingehalten werden können. Beides wird durch das logistische Regressionsmodell erfüllt, dessen Grundkonzepte wir im Folgenden darstellen werden.
10.2 Grundkonzepte 10.2.1 Odds, Log-Odds und Odds-Ratios Im vorangegangenen Abschnitt hatten wir festgestellt, dass die lineare OLS-Regression bei einer dichotomen abhängigen Variablen unerwünschte vorhergesagte Werte produzieren kann. Dies liegt offensichtlich daran, dass wir versucht haben, Werte in den Grenzen von 0 und 1 mit einer Geraden darzustellen. Werte, die man mit einer Linearkombination⁵ berechnet, unterliegen grundsätzlich keiner Beschränkung. Je nach eingesetzten Werten können damit immer Werte unter 0 und über 1 ermittelt werden. Da der Wertebereich von Wahrscheinlichkeiten aber definitionsgemäß zwischen 0 und 1 liegt, sollten wir daher auch nicht versuchen, diese mit einer Linearkombination vorherzusagen. Eine Alternative sind „logarithmierte Chancen“, die wir Ihnen nun vorstellen wollen. Oben hatten wir Hinweise darauf erhalten, dass Kinder eine höhere Überlebenschance hatten als Erwachsene. Nun wollen wir untersuchen, ob auch der zweite Teil des Prinzips „Frauen und Kinder zuerst“ gültig ist. Wir fragen uns deshalb zunächst, ob Frauen die Titanic-Katastrophe eher überlebt haben als Männer. Den ersten Hinweis auf die Überlebenschancen von Frauen und Männern erhalten Sie durch eine Kreuztabelle zwischen sex und survived: . tabulate men survived, row Key frequency row percentage Male
Passenger survived
5 Eine solche Linearkombination hatten wir Ihnen zu Beginn auf S. 350 vorgestellt.
356 | 10 Regressionsmodelle für kategoriale abhängige Variablen passenger y/n
y/n No
Yes
Total
No
126 26.81
344 73.19
470 100.00
Yes
1,364 78.80
367 21.20
1,731 100.00
Total
1,490 67.70
711 32.30
2,201 100.00
In Abschnitt 7.2.1.3 haben wir derartige Tabellen mit Hilfe von Zeilen- oder Spaltenprozenten interpretiert. In diesem Sinne können wir anhand der hier vorliegenden Zeilenprozente feststellen, dass der Anteil der Überlebenden insgesamt ca. 32 Prozent beträgt, wobei derjenige der Frauen um ca. 50 Prozentpunkte über demjenigen der Männer liegt (73 % gegenüber 21 %). Den Anteil Überlebender hatten wir als Schätzungen der Überlebenswahrscheinlichkeit interpretiert. Alternativ zur Betrachtung der Zeilenprozente kann die Zahl der Überlebenden ins Verhältnis zu der Zahl der Gestorbenen gesetzt werden. Für die Frauen würde man also 344 ∶ 126 berechnen: . display 344/126 2.7301587
Auf den gleichen Wert⁶ kommen Sie, wenn Sie die Anteilswerte (hier die Zeilenprozente) ins Verhältnis setzen . display .7319/.2681 2.7299515
Sie können diese Verhältniszahlen wie folgt interpretieren: „Für die Frauen ist die (geschätzte) Wahrscheinlichkeit zu überleben fast 3-mal so hoch wie die (geschätzte) Wahrscheinlichkeit zu sterben.“ Oder umgekehrt: „Die (geschätzte) Wahrscheinlichkeit zu sterben, beträgt ungefähr ein Drittel (1 ∶ 2, 73 = 0, 366) der (geschätzten) Wahrscheinlichkeit zu überleben.“ In der Praxis spricht man meist davon, dass die (geschätzte) Überlebenschance ca. 2,73 zu 1 beträgt bzw. das (geschätzte) Sterberisiko ca. 1 zu 2,73 ist. Allgemein können Sie dieses Verhältnis so aufschreiben: ChanceLeben =
WahrscheinlichkeitLeben WahrscheinlichkeitSterben
(10.1)
oder etwas kürzer mit Zeichen anstatt Text: Odds =
6 Die Abweichungen sind Rundungsfehler.
P(Y = 1) , 1 − P(Y = 1)
(10.2)
10.2 Grundkonzepte |
357
wobei Odds nichts anderes ist, als eine der englischen Bezeichnungen für Chance, die üblicherweise in der kategorialen Datenanalyse verwendet wird. Im Zähler steht die Wahrscheinlichkeit zu überleben P(Y = 1) und im Nenner die Wahrscheinlichkeit zu sterben 1 − P(Y = 1). Überlebens- und Sterbewahrscheinlichkeit addieren sich zu 1, denn mehr Möglichkeiten als zu Überleben oder zu Sterben gibt es nicht. Deshalb können Sie für die Sterbewahrscheinlichkeit auch 1 − P(Y = 1) schreiben. Aus den vorliegenden Daten können Sie auch die Überlebenschance für die Män367 = 0, 269. Das ner schätzen. Sie ist deutlich niedriger als diejenige der Frauen: 1.364 heißt, für Männer steht die Chance, zu den Überlebenden zu gehören, bei 0, 269 ∶ 1. Oder umgekehrt, Männer gehören 3,72-mal öfter zu den Opfern als zu den Überlebenden. Natürlich können Sie diese geschätzten Überlebenschancen von Männern und Frauen auch mit Hilfe einer Maßzahl miteinander vergleichen. Sie können z.B. ausrechnen, wie groß die geschätzte Überlebenschance von Männern im Verhältnis zu der von Frauen ist. Dazu teilen Sie die Odds der Männer durch die Odds der Frauen: . display .269/2.73 .0985348
Dieses Verhältnis wird Chancenverhältnis bzw. „Odds-Ratio“ genannt. Im vorliegenden Fall würde man sagen, die Überlebenschance eines Mannes ist 0,099-mal so groß wie die einer Frau bzw. ca. ein Zehntel der einer Frau. Anscheinend wurde dieser Teil der Regel „Frauen und Kinder zuerst“ berücksichtigt. Inwieweit dieser „Schein“ trügt, werden wir weiter unten (Abschn. 10.6) noch einmal genauer untersuchen. Zuvor sollten wir jedoch einmal die Eignung der Odds für unser statistisches Modell betrachten. Erinnern Sie sich an die Diskussion im vorangegangenen Abschnitt? Dort untersuchten wir die Veränderung der Wahrscheinlichkeit, die TitanicKatastrophe zu überleben, in Abhängigkeit vom Alter. Dabei ergab sich das Problem, dass bei der Vorhersage dieser Wahrscheinlichkeiten mit einer Linearkombination Werte außerhalb des Definitionsbereichs von Wahrscheinlichkeiten resultieren können. Was wäre, wenn wir statt der Wahrscheinlichkeiten versuchen würden, Odds vorherzusagen ? Bitte betrachten Sie sich hierzu Tabelle 10.1. In der ersten Spalte der Tabelle haben wir einige ausgewählte Wahrscheinlichkeitswerte aufgeführt. Sie sehen, dass die Wahrscheinlichkeiten zunächst nur langsam größer werden, dann schneller und schließlich wieder langsamer. Die Werte bewegen sich zwischen 0 und 1. Nehmen Sie einmal an, es handele sich bei den Werten um die Überlebenswahrscheinlichkeiten von Titanic-Passagieren unterschiedlichen Alters. In der ersten Zeile stünde dann die Gruppe der ältesten Passagiere mit der niedrigsten Überlebenswahrscheinlichkeit und in der untersten Zeile die Gruppe der jüngsten Passagiere mit der höchsten Überlebenswahrscheinlichkeit. Sie können nun nach (10.2) für jede dieser Gruppen
358 | 10 Regressionsmodelle für kategoriale abhängige Variablen Tab. 10.1. Wahrscheinlichkeiten, Odds und Logits ̂ P(Y = 1)
̂ = Odds
0,01 0,03 0,05 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,95 0,97 0,99
1/99= 3/97= 5/95= 20/80= 30/70= 40/60= 50/50= 60/40= 70/30= 80/20= 95/5= 97/3= 99/1=
̂ P(Y=1) ̂ 1P(Y=1)
0,01 0,03 0,05 0,25 0,43 0,67 1,00 1,50 2,33 4,00 19,00 32,33 99,00
̂ ln(Odds) -4,60 -3,48 -2,94 -1,39 -0,85 -0,41 0 0,41 0,85 1,39 2,94 3,48 4,60
die Chance (Odds) ausrechnen, mit der die Personen innerhalb dieser Gruppe die Titanic-Katastrophe überlebt haben. Stellen Sie sich dazu vor, jede Gruppe besteht aus hundert Personen. In der ersten Gruppe hätten Sie bei einer Wahrscheinlichkeit von 0,01 eine Person von hundert, die überlebt hat. Als Chance ausgedrückt: Eins zu Neunundneunzig (1 ∶ 99); und wenn Sie 1/99 berechnen, erhalten Sie den Wert 0,010101. So können Sie für alle Zeilen der Tabelle vorgehen. Eine Inspektion der Werte der Odds zeigt, dass diese zwischen 0 und +∞ liegen. Ein Odds von 0 ergibt sich, wenn es in einer bestimmten Gruppe keine Überlebenden gibt, ein Odds von +∞ ergibt sich, wenn praktisch alle in einer großen Gruppe überlebt haben. Wenn die Zahl der Überlebenden gleich der Zahl der Gestorbenen ist, erhalten wir ein Odds von 1. Die Odds eignen sich damit ein bisschen besser als die Wahrscheinlichkeiten zur Vorhersage mit einer Linearkombination. Denn egal, wie hoch der absolute Wert ist, den wir mit einer Linearkombination vorhersagen, er wird nicht außerhalb des Definitionsbereichs der Odds liegen. Eine Linearkombination lässt aber prinzipiell auch negative Werte zu, negative Odds gibt es jedoch nicht. Dies lässt sich dadurch umgehen, dass man den (natürlichen) Logarithmus der Odds verwendet. Diese – „Logits“ genannten – Werte haben wir in der letzten Spalte von Tabelle 10.1 berechnet. Schauen Sie sich die Werte der Logits genau an: Während die Odds nach unten begrenzt sind, sind die logarithmierten Werte nach oben und unten offen. Der Logarithmus von 1 ist 0. Der Logarithmus von Zahlen unter 1 ergibt negative Zahlen, die gegen −∞ streben, je mehr man sich der 0 annähert. Der Logarithmus von Zahlen über 1 strebt jedoch gegen +∞. Achten Sie auch auf die Symmetrie der Werte. Bei einer Wahrscheinlichkeit von 0,5 ist die Chance 1 ∶ 1 oder „fifty-fifty“. Der logarithmierte Wert liegt bei 0. Wenn Sie nun die Wahrscheinlichkeiten oberhalb und unterhalb von
10.2 Grundkonzepte |
359
0,5 betrachten, sehen Sie, dass sich bei gleichen Abständen der Wahrscheinlichkeiten beim Logarithmus des Odds nur das Vorzeichen ändert. Das Logit ist nicht begrenzt und symmetrisch um den Ursprung. Es ist daher sehr gut dazu geeignet, mit einer Linearkombination dargestellt zu werden, und kann damit als Zielgröße in einem Regressionsmodell verwendet werden. Unglücklicherweise ist das Logit nicht unbedingt einfach zu interpretieren. Sie werden vermutlich nicht auf sehr viel Verständnis stoßen, wenn Sie Ihrem Auftraggeber mitteilen, dass die logarithmierte Überlebenschance der männlichen Titanic-Passagiere -1,31 beträgt, die der weiblichen dagegen +1,00. Durch einfaches Umformen von (10.2) können die Werte der Logits jedoch wieder in Wahrscheinlichkeiten umgerechnet werden: P(Y = 1) =
eL , 1 + eL
(10.3)
mit L dem Logit und e der Eulerschen Zahl (e ≈ 2, 718). Für die Darstellung dieser Transformation kann folgende Funktionsgrafik verwendet werden.
0
.2
.4
y
.6
.8
1
. twoway function y=exp(x)/(1+exp(x)), range(-10 10)
−10
−5
0 x
5
10
Diese Grafik zeigt eine weitere interessante Eigenschaft der Logits: Während der Wertebereich des Logits nach oben und unten offen ist, bleiben die Werte der aus den Logits berechneten Wahrscheinlichkeiten innerhalb der Grenzen von 0 und 1. Bei Logits zwischen etwa −2,5 und 2,5 erhöhen sich die Wahrscheinlichkeiten relativ stark, je mehr man sich jedoch den Grenzwerten der Wahrscheinlichkeit nähert, desto weniger verändern sich die Wahrscheinlichkeiten. Anders ausgedrückt: Die Wahrscheinlichkeiten nähern sich asymptotisch den Werten 0 und 1 an, überschreiten diese Grenzen jedoch niemals. Hieraus folgt, dass die auf der Basis einer Linearkombination vorhergesagten Logits stets in Wahrscheinlichkeiten innerhalb der erlaubten Grenzen von 0 und 1 umgerechnet werden können. Insgesamt können wir festhalten, dass sich die logarithmierte Chance gut als Zielgröße für unser Regressionsmodell eignet. Die Gleichung für ein solches Modell würde
360 | 10 Regressionsmodelle für kategoriale abhängige Variablen damit lauten:
Li = β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i .
(10.4)
Dies ist das sog. logistische Regressionsmodell oder Logit-Modell. Die Gleichung unterstellt einen Einfluss der Variablen x1 … xK−1 auf die logarithmierten Chance, den Wert 1 auf der abhängigen Variablen zu haben. Die β-Parameter dieses Modells geben Auskunft darüber, wie sich diese logarithmierte Chance mit einer Veränderung der zugehörigen unabhängigen Variablen ändert. Ganz wie bei der linearen Regression kann man sagen: Mit der Erhöhung einer x-Variablen um eine Einheit steigen die vorhergesagten Werte – die logarithmierten Chancen – um β Einheiten. Ziel der logistischen Regressionsanalyse ist es, die unbekannten Regressionsparameter β0 − βK−1 zu schätzen. In der linearen Regression diente zur Schätzung der Regressionsparameter das OLS-Verfahren. Für die logistische Regression wird stattdessen das „Maximum-Likelihood-Prinzip“ verwendet. Die Logik dieses Verfahrens ist etwas anspruchsvoller als im Fall von OLS, wenn auch das grundsätzliche Prinzip ähnlich ist: Man verwendet diejenigen b-Koeffizienten zur Schätzung von β, die in einer bestimmten Hinsicht optimal sind. Wir wollen Ihnen das Verfahren im folgenden Exkurs ein wenig näher erläutern. Zum Verständnis der daran anschließenden Abschnitte ist das Durcharbeiten des Exkurses aber nicht erforderlich!
10.2.2 Exkurs: Das Maximum-Likelihood-Prinzip Bei der linearen Regression hatten wir das OLS-Verfahren zur Schätzung von β erläutert. Prinzipiell wäre es denkbar, die logarithmierte Chance für jede Kombination der unabhängigen Variablen zu berechnen und diese als abhängige Variable in einem OLS-Regressionsmodell zu verwenden. Ein solches Verfahren wäre jedoch aus Gründen, die hier nicht vertieft werden können, nicht so effizient wie das Schätzverfahren, das bei der logistischen Regression angewandt wird: das Maximum-LikelihoodPrinzip.⁷ Mit Hilfe dieser Technik werden die β-Koeffizienten so geschätzt, dass die Anteilswerte, die Sie beobachtet haben, maximal wahrscheinlich werden. Was ist hiermit gemeint? Zur Beantwortung dieser Frage wollen wir zunächst einen kleinen Umweg machen: Auf Seite 353 hatten wir Ihnen mitgeteilt, dass der Anteil von Überlebenden der Titanic 32,3 Prozent beträgt. Nehmen Sie einmal an, Sie hätten diesen Wert in einer Stichprobe der Passagiere ermittelt. In diesem Fall könnten Sie sich fragen, wie wahrscheinlich ein solcher Prozentanteil ist, wenn der wahre Anteil der Überlebenden aller Passagiere 60 Prozent betrüge? Zur Beantwortung dieser Frage sollten Sie sich Folgendes überlegen: Sie „ziehen“ einen einzelnen Passagier aus der Grundgesamtheit. Wenn der Anteil von Überlebenden in der Grundgesamtheit 60 Prozent beträgt, so 7 Die Darstellung basiert auf Andreß et al. (1997: 40–45).
10.2 Grundkonzepte
0.6
Ü
Ü 0.4
0.6
0.6
Ü
O 0.4
Ü
1
0.4
O
2
0.6
Ü
3
0.4
O
4
0.6
Ü
5
0.4
O
6
0.6
Ü
7
0.4
O
8
O
GG 0.4
0.6
O
| 361
Abb. 10.1. Stichproben eines dichotomen Merkmals vom Umfang 3
wird dieser Passagier mit einer Wahrscheinlichkeit von 0,6 ein Überlebender sein und mit einer Wahrscheinlichkeit von 0,4 ein Opfer. Nun ziehen Sie eine zweite Person aus der Grundgesamtheit. Diese zweite Person kann wieder ein Überlebender oder ein Opfer sein, wobei die Wahrscheinlichkeiten dieselben bleiben (wenn Sie „mit Zurücklegen“ ziehen). In Abbildung 10.1 haben wir alle möglichen Stichproben mit drei Beobachtungen aufgeführt. Insgesamt erhalten wir 2n = 23 = 8 Stichproben vom Umfang n = 3. In der ersten Stichprobe haben wir nur Überlebende (Ü) gezogen. Die Wahrscheinlichkeit, eine Stichprobe mit drei Überlebenden zu ziehen, beträgt 0, 6 × 0, 6 × 0, 6 = 0, 63 = 0, 216. In der zweiten, dritten und fünften Stichprobe haben wir jeweils zwei Überlebende und ein Opfer (O) gezogen. Jede dieser drei Stichproben hat die Wahrscheinlichkeit 0, 6 × 0, 6 × 0, 4 = 0, 62 × 0, 41 = 0, 144. Insgesamt beträgt die Wahrscheinlichkeit einer solchen Stichprobe damit 0, 144 × 3 = 0, 432. Die Wahrscheinlichkeit der Stichproben 4, 6 und 7 beträgt jeweils 0, 6 × 0, 4 × 0, 4 = 0, 6 × 0, 42 = 0, 096. Insgesamt beträgt die Wahrscheinlichkeit für derartige Stichproben somit .096×3 = 0, 288. Schließlich wäre da noch die Stichprobe 8, deren Wahrscheinlichkeit bei 0, 4 × 0, 4 × 0, 4 = 0, 43 = 0, 064 liegt. Wenn wir für die Stichproben aus der Abbildung die Frage stellen, wie wahrscheinlich es ist, dass Einer von Drei überlebt, so lautet die Antwort: So wahrscheinlich, wie die Stichproben 4, 6 und 7 zusammen, also 0,288. Allgemein beträgt die Wahrscheinlichkeit, eine Stichprobe vom Umfang n zu ziehen, in der ein dichotomes Merkmal h-mal auftritt n P(h|π, n) = ( )π h (1 − π)n−h . h
(10.5)
362 | 10 Regressionsmodelle für kategoriale abhängige Variablen Dabei gibt π den Anteil des dichotomen Merkmals in der Grundgesamtheit wieder. n! Der Ausdruck (nh) steht für h!(n−h)! . Mit ihm wird die Anzahl möglicher Stichproben, in denen das dichotome Merkmal h-mal auftritt, berechnet. Die Wahrscheinlichkeit der Stichproben 4, 6 und 7 in unserer Abbildung lässt sich mit dieser Formel in Stata berechnen: . display comb(3,1) * .6^1 * .4^2 .288
In der Praxis sind wir meist nicht an dieser Ziffer interessiert, sondern an π, dem Anteil des Merkmals in der Grundgesamtheit. π ist zwar nicht bekannt, bei gegebener Stichprobe können wir uns jedoch überlegen, welcher Wert von π die gegebene Stichprobe am wahrscheinlichsten macht. Hierzu könnten wir in Gleichung (10.5) verschiedene Werte für π einsetzen und dann den Wert auswählen, der die höchste Wahrscheinlichkeit aufweist. Formal bedeutet dies, wir suchen nach demjenigen Wert von π, für den die „Likelihood“ n ℒ(π|h, n) = ( )π h (1 − π)n−h h
(10.6)
maximal wird. Dabei können wir auf die Berechnung von (nh) verzichten, da dieser Term für alle Werte von π konstant ist. Die Likelihood wird mit derselben Formel berechnet wie oben in (10.5) die Wahrscheinlichkeit. Die Ergebnisse von (10.5) addieren sich jedoch für alle möglichen Werte von h zum Wert 1 auf, während dies bei den Werten von ℒ für alle denkbaren Werte von π nicht der Fall ist. Sprachlich unterscheidet man darum die Likelihood von der Wahrscheinlichkeit. Sie können dies für die Stichprobe 2 aus Abbildung 10.1 (2 Überlebende und 1 Opfer) von Hand durchspielen. Erstellen Sie sich hierzu einen künstlichen Datensatz mit hundert Beobachtungen: . clear . set obs 100
Bilden Sie nun die Variable pi, in der Sie eine Serie von möglichen Werten für π ablegen: . generate pi = _n/100
Da h und n aus der Stichprobe bekannt sind, können Sie die Likelihood für die unterschiedlichen Werte von π berechnen: . generate L = pi^2 * (1 - pi)^(3-2)
Mit Hilfe einer Grafik können Sie dann untersuchen, für welches π die Likelihood maximal wird: . line L pi, sort
| 363
0
.05
L
.1
.15
10.2 Grundkonzepte
0
.2
.4
.6
.8
1
pi
Das Maximum der Likelihood liegt etwa bei π = 0, 66. Dies ist die „Maximum-Likelihood-Schätzung“ des Anteils der Überlebenden in der Grundgesamtheit, wenn die vorliegende Stichprobe zwei Überlebende und ein Opfer enthält. Wie schätzt man mit dem Maximum-Likelihood-Prinzip die β-Parameter unseres Regressionsmodells aus Gleichung (10.4)? Die Antwort ist einfach. Anstatt die Werte für π direkt einzusetzen, verwenden wir unsere Modellvorstellung aus Gleichung (10.4). Dazu setzen wir Gleichung (10.4) in die Formel für die Umrechnung der Logits in Wahrscheinlichkeiten ein (Gleichung 10.3) und erhalten dadurch P(Y = 1) =
eβ0 +β1 x1i …+βK−1 xK−1,i
1 + eβ0 +β1 x1i …+βK−1 xK−1,i
(10.7)
.
Sodann verwenden wir P(Y = 1) an Stelle von π in Gleichung (10.6): ℒ(βk |f , n, m) = P(Y = 1)h × (1 − P(Y = 1))n−h = (
eβ0 +β1 x1i +…+βK−1 xK−1,i
1 + eβ0 +β1 x1i +…+βK−1 xK−1,i +
h
) × (1 −
eβ0 +β1 x1i +…+βK−1 xK−1,i
1 + eβ0 +β1 x1i +…+βK−1 xK−1,i
n−h
)
.
(10.8)
Danach können Sie versuchen, diese Funktion durch das Ausprobieren unterschiedlicher Werte für die β-Parameter zu maximieren. Besser ist es jedoch, wie bei der OLS-Regression, die erste Ableitung nach βk zu bilden und die resultierende Normalgleichung Null zu setzen. Das mathematische Vorgehen wird zusätzlich erleichtert, wenn die „Log-Likelihood“, d.h. ln ℒ verwendet wird. Eine analytische Lösung wie bei der linearen OLS-Regression werden Sie jedoch bei diesem Vorgehen nicht finden. Aus diesem Grund werden zur Maximierung der Log-Likelihood iterative Algorithmen angewandt, die man etwas despektierlich als „raffiniertes Ausprobieren“ umschreiben könnte. Das Maximum-Likelihood-Prinzip wurde hier für die logistische Regression mit dichotomen abhängigen Variablen vorgestellt. Prinzipiell ist das Verfahren jedoch für beliebige Variablen und Modelltypen anwendbar. Hierzu wird die Gleichung
364 | 10 Regressionsmodelle für kategoriale abhängige Variablen (10.6) an die jeweilige Verteilungsannahme angepasst. Anschließend wird in (10.6) die Gleichung für die geschätzten Wahrscheinlichkeiten eingesetzt. Die resultierende Likelihood-Funktion wird dann mit einem möglichst allgemeinen und schnellen Schätzalgorithmus maximiert. Die Logik dieses Vorgehens ist in Stata im Befehl ml implementiert, der ausführlich in Gould et al. (2006) beschrieben wird.
10.3 Logistische Regression mit Stata Wir wollen unser Titanic-Beispiel nun für einen Augenblick zu Gunsten eines anderen Anwendungsbeispiels zurückstellen. Nehmen Sie einmal an, dass mit zunehmendem Haushaltseinkommen und zunehmendem Alter der Befragten die Wahrscheinlichkeit steigt, in einer Eigentumswohnung oder einem eigenen Haus zu wohnen. Außerdem rechnen Sie damit, dass der Anteil von Personen mit Wohneigentum⁸ in Westdeutschland höher ist als in Ostdeutschland. Bitte laden Sie nun unseren Datensatz data1.dta. . use data1, clear
Zur Überprüfung Ihrer Vermutung können Sie ein logistisches Regressionsmodell des Wohneigentums gegen die unabhängigen Variablen Alter, Haushaltseinkommen und eine Ost-West-Variable berechnen. Stata hat zwei Kommandos zur Schätzung der logistischen Regression: logit und logistic. Die beiden Kommandos unterscheiden sich in der Darstellung der Koeffizienten. Mit dem Befehl logit werden b-Koeffizienten angegeben, mit logistic werden die oben diskutieren Odds-Ratios ausgegeben. Passend zu unserer bisherigen Erklärung verwenden wir im Folgenden logit. Manche Anwender der logistischen Regression, insbesondere Bio-Statistiker und Mediziner, präferieren die Interpretation der Ergebnisse in Form der Odds-Ratios und verwenden deshalb eher logistic. Wir möchten betonen, dass die Unterschiede der beiden Kommandos lediglich in einer anderen Ergebnisdarstellung besteht. Das statistische Modell ist für beide das Gleiche. Bei der abhängigen Variablen der logistischen Regression muss mindestens eine Kategorie 0 sein, da logit die logarithmierte Chance modelliert, dass die abhängige Variable von Null verschieden ist. Üblich ist es, eine abhängige Variable mit den Werten 0 und 1 zu verwenden, wobei die mit 1 versehene Kategorie allgemein als „Erfolg“ (Success) bezeichnet wird und die mit 0 bezeichnete Kategorie als „Misserfolg“
8 Im Folgenden werden wir statt vom Wohnen in einer Eigentumswohnung oder einem Eigenheim verkürzt vom „Wohneigentum“ sprechen. So verstanden können auch Kinder Wohneigentum haben.
10.3 Logistische Regression mit Stata
| 365
(Failure). Für unser Beispiel sollten Sie darum die Variable owner mit den Werten 1 für Wohneigentümer und 0 für Mieter bilden. Dies geschieht am effektivsten durch:⁹ . generate owner = renttype == 1 if !mi(renttype)
Die Ost-West-Variable bilden wir analog zur entsprechenden Variablen bei der linearen Regression (S. 283) durch: . generate east = state>=11 if !mi(state)
Zur Kontrolle des Lebensalters erzeugen wir eine Alters-Variable aus dem Geburtsjahr, die wir anschließend zentrieren: . generate age = 2009-ybirth . summarize age, meanonly . gen age_c = age-r(mean)
Weil die Verteilung des Haushaltseinkommens eine sehr starke Rechtsschiefe aufweist und wir zudem erwarten, dass der Effekt des Haushaltseinkommens mit zunehmenden Werten abnimmt, erzeugen wir eine Variable, die dem Logarithmus zur Basis 2 des Einkommens entspricht. . gen loghhinc = log(hhinc)/log(2)
Beachten Sie, dass der Wert 10 der neuen Variablen loghhinc einem jährlichen Haushaltseinkommen von ungefähr 1.000 € entspricht (210 =1.024 €), und der Wert 11 ungefähr dem Haushaltseinkommen von 2.000 €.¹⁰ Jede Erhöhung von loghhinc um eine Einheit entspricht einer Verdoppelung des zu Grunde liegenden jährlichen Haushaltseinkommens. Anschließend können Sie die logistische Regression berechnen. Die Syntax ist die gleiche wie bei allen statistischen Modellen in Stata. Zuerst der Befehl, dann die abhängige Variable, dann eine Liste der unabhängigen Variablen: . logit owner age_c loghhinc east Iteration Iteration Iteration Iteration Iteration
0: 1: 2: 3: 4:
log log log log log
likelihood likelihood likelihood likelihood likelihood
Logistic regression
= = = = =
-3739.5754 -3247.7417 -3246.6989 -3246.6983 -3246.6983 Number of obs LR chi2(3) Prob > chi2
= = =
5,407 985.75 0.0000
9 Zu diesem Befehl vgl. ausführlich S. 95. Zur Zuordnung der Werte einer Variablen zu den Beschriftungen vgl. Abschn. 5.3. 10 Zum Ermitteln der nicht logarithmierten Originalwerte aus dem Logarithmus zur Basis 2 gibt es einen einfachen Trick. Dazu müssen Sie wissen das 210 ungefähr 1.000 ist. 211 is dann 210 ⋅ 21 ≈ 1.000 ⋅ 2 = 2.000. Entsprechend ist 215 ≈ 1.000 ⋅ 32 = 32.000).
366 | 10 Regressionsmodelle für kategoriale abhängige Variablen Log likelihood = -3246.6983 owner
Coef.
age_c loghhinc east _cons
.0228959 1.157434 .088873 -17.17416
Pseudo R2 Std. Err. .0017586 .0438131 .0692819 .6571883
z 13.02 26.42 1.28 -26.13
P>|z| 0.000 0.000 0.200 0.000
=
0.1318
[95% Conf. Interval] .019449 1.071562 -.046917 -18.46223
.0263428 1.243306 .2246631 -15.8861
Die Ergebnistabelle ähnelt stark der Ergebnistabelle, die Sie bei der linearen Regression kennengelernt haben. Unten in der Tabelle finden Sie den Koeffizientenblock mit den geschätzten Koeffizienten der unabhängigen Variablen und der Konstanten. Oben links finden Sie einen Iterationsblock mit einigen Ergebnissen, welche die Maximum-Likelihood-Berechnung betreffen, und oben rechts finden Sie einen Modellfit-Block. Analog zu unseren Erläuterungen der linearen Regression, werden wir in den folgenden Abschnitten diese Blöcke nun im Einzelnen besprechen.
10.3.1 Der Koeffizientenblock Die nachfolgende Beschreibung bezieht sich auf die geschätzten Regressionskoeffizienten in der ersten Spalte des Koeffizientenblocks. Zur Bedeutung der Angaben in den übrigen Spalten verweisen wir auf die Einführung in Kapitel 6. Wir wollen betonen, dass die komplexe Stichprobenstruktur des GSOEP die inferenz-statistische Absicherung erschwert. Wenn Sie an der inferenz-statistischen Absicherung interessiert sind, sollten Sie den auf Seite 231 beschriebenen svyset-Befehl verwenden und anschließend alle Befehle zur Schätzung von Modellen hinter das Präfix svy: schreiben. In der ersten Spalte des Koeffizientenblocks befinden sich die b-Koeffizienten, die uns hier in erster Linie beschäftigen sollen. Die Interpretation dieser Angaben deckt sich mit den Angaben in der entsprechenden Spalte bei der linearen Regression.¹¹ Formal geben die b-Koeffizienten an, wie sich die vorhergesagten Werte bei einem Anstieg der zugehörigen unabhängigen Variablen um eine Einheit verändern. Dies entspricht der Interpretation der b-Koeffizienten der linearen Regression, nur sind die vorhergesagten Werte diesmal keine Mittelwerte der abhängigen Variablen, sondern logarithmierte Chancen für „Erfolg“. Für den geschätzten Regressionskoeffizienten von age_c lautet die Interpretation z.B.: „Die vorhergesagte logarithmierte Chance auf Wohneigentum steigt um 0,0228959, wenn das Alter um ein Jahr ansteigt.“ Analog dazu erhöht sich die logarithmierte Chance auf Wohneigentum um 1,157434, wenn das logarithmierte Haushaltseinkommen um eine Einheit steigt (d.h. wenn es sich verdoppelt). 11 Die zweite Spalte enthält die Standardfehler, aus denen sich Signifikanz-Tests und Konfidenzintervalle berechnen lassen. Die Signifikanz der geschätzten Koeffizienten wird bei der logistischen Regression jedoch üblicherweise mit einem Likelihood-Ratio-Test ermittelt (Abschn. 10.5).
10.3 Logistische Regression mit Stata
| 367
Bezogen auf den b-Koeffizienten von east können wir sagen: „Mit jedem Anstieg der Variablen east um eine Einheit steigt die vorhergesagte logarithmierte Chance auf Wohneigentum um 0,088873.“ Da east jedoch nur einmal um eine Einheit steigen kann, lässt sich das auch kürzer formulieren: „Ostdeutsche haben schätzungsweise eine um ca. 0,088873 höhere logarithmierte Chance auf Wohneigentum als Westdeutsche.“ Die Regressionskonstante gibt den vorhergesagten Wert für diejenigen Befragten an, die bei allen unabhängigen Variablen den Wert 0 aufweisen. Da wir die Altersvariable zentriert haben, entspricht das Alter von Null dem Durchschnittsalter; der Wert Null bei loghhinc entspricht 20 =1 €. Die korrekte Interpretation der Regressionskonstanten ist daher: „Für westdeutsche Befragte mittleren Alters mit einem jährlichen Einkommen von einem Euro beträgt die logarithmierte Chance auf Wohneigentum −17, 17416.“ Insgesamt erscheinen die Informationen über die Veränderungen der logarithmierten Erfolgschancen ein wenig fremd. Aus diesem Grund bedient man sich zur Interpretation der Koeffizienten unterschiedlicher Hilfskonstruktionen, die wir nun vorstellen.
10.3.1.1 Vorzeicheninterpretation Am einfachsten ist es, sich auf die Interpretation der Vorzeichen und der relativen Größe der Koeffizienten zu beschränken. Ein positives Vorzeichen des geschätzten Regressionskoeffizienten bedeutet, dass die Wahrscheinlichkeit oder Chance von Wohneigentum mit der jeweiligen unabhängigen Variablen ansteigt, ein negatives Vorzeichen bedeutet, dass die entsprechende Wahrscheinlichkeit oder Chance fällt. Das Ausmaß der Veränderung ist dabei umso stärker, je höher der Betrag des geschätzten Koeffizienten ist. Über das genaue Ausmaß der Veränderung der Wahrscheinlichkeit lassen sich indes keine Aussagen machen. In unserem Beispiel steigt die Wahrscheinlichkeit von Wohneigentum mit dem Alter und dem Einkommen, und die Wahrscheinlichkeit von Wohneigentum ist im Osten höher als im Westen.
10.3.1.2 Interpretation mit Odds-Ratios Mit Hilfe der Modellgleichung wollen wir zunächst die vorhergesagten logarithmierten Chancen der Westdeutschen mit einem logarithmierten Haushaltseinkommen von 15 berechnen. Wie in Abschnitt 9.1.2.1 gezeigt, lässt sich dies mit Hilfe der gespeicherten Koeffizienten relativ einfach realisieren: . display _b[_cons] + _b[loghhinc]*15 .18734942
Für westdeutsche Befragte im durchschnittlichen Alter mit einem Haushaltseinkommen von ca. 32.000 € beträgt die geschätzte logarithmierte Chance auf Wohneigtenum
368 | 10 Regressionsmodelle für kategoriale abhängige Variablen 0,1873492. Durch Exponieren können die wenig informativen logarithmierten Chancen in Chancen (Odds) umgerechnet werden: . display exp(_b[_cons] + _b[loghhinc]*15) 1.2060486
Die Chance, dass Haushalte mit einem logarithmierten Haushaltseinkommen von 15 Wohneigentum haben, ist ungefähr 1,21. Entsprechend können Sie die vorhergesagten Chancen derjenigen berechnen, deren logarithmiertes Haushaltseinkommen um eine Einheit höher ist: . display exp(_b[_cons] + _b[loghhinc]*16) 3.8373555
Wie Sie sehen, hat der Haushalt mit einem logarithmierten Haushaltseinkommen von 16 eine deutlich höhere Chance auf Wohneigentum als der Haushalt mit einem logarithmierten Haushaltseinkommen von 15. Für den Vergleich der beiden Chancen können wir das Odds-Ratio (S. 357) verwenden. Im vorliegenden Fall beträgt es: . display exp(_b[_cons] + _b[loghhinc]*16)/exp(_b[_cons] + _b[loghhinc]*15) 3.1817586
Das heißt: Wenn das logarithmierte Haushaltseinkommen um eine Einheit ansteigt (sich verdoppelt), steigt die vorhergesagte Chance auf Wohneigentum um das 3,18-fache. Erhöht sich das logarithmierte Haushaltseinkommen um 2 Einheiten, erhöht sich die vorhergesagte Chance um das 3, 18 × 3, 18 = 10.11-fache. Mit jeder weiteren Einheit erhöht sich die vorhergesagte Chance auf das 3,18-fache. Der Rechenaufwand zur Bestimmung der Odds-Ratios lässt sich erheblich reduzieren. Allgemein haben wir zur Schätzung des Odds-Ratios zunächst die vorhergesagten Odds für einen bestimmten Wert von X ausgerechnet, anschließend für den Wert X + 1. Danach haben wir beide Ergebnisse durcheinander dividiert. Dies lässt sich wie folgt darstellen: eb0 +b1 X eb1 eb0 +b1 (X+1) ̂ = = eb1 . Odds-Ratio = eb0 +b1 X eb0 +b1 X
(10.9)
Sie erhalten das geschätzte Odds-Ratio daher auch direkt durch Exponieren des b-Koeffizienten. Viele Anwender der logistischen Regression bevorzugen die Interpretation der Ergebnisse mit Odds-Ratios. Wenn Sie statt logit den Befehl logistic verwenden, oder die Option or des logit-Befehls, erhalten Sie Odds-Ratios. Wenn Sie bereits ein Modell mit logit berechnet haben, können Sie den Befehl . logit, or
verwenden. Dann werden ebenfalls die Odds-Ratios angezeigt.
10.3 Logistische Regression mit Stata
| 369
10.3.1.3 Wahrscheinlichkeitsinterpretation Die dritte Möglichkeit zur Interpretation der Koeffizienten ergibt sich aus Gleichung (10.3). Die Formel wandelt Logits in Wahrscheinlichkeiten um. Die vorhergesagten Logits für Westdeutsche mittleren Alters mit einem logarithmierten Haushaltseinkommen von 15 lassen sich mit Hilfe dieser Formel in vorhergesagte Wahrscheinlichkeiten umrechnen: . di exp(_b[_cons] + _b[loghhinc]*15)/(1 + exp(_b[_cons] + _b[loghhinc]*15)) .54670084
Mit dem Befehl predict können Sie die vorhergesagten Wahrscheinlichkeiten für jede Beobachtung berechnen. Hierzu geben Sie den Befehl zusammen mit dem Namen der Variablen an, welche die vorhergesagten Wahrscheinlichkeiten enthalten soll: . predict Phat
Wir verwenden den Namen Phat, um anzudeuten, dass es sich um vorhergesagte Wahrscheinlichkeiten (Probabilities) handelt. Mit der Option xb des predict-Befehls können Sie auch die vorhergesagten Logits berechnen. Eine andere Möglichkeit, um vorhergesagte Wahrscheinlichkeiten zu berechnen, ist der aus dem vorangegangenen Kapitel bekannte Post-Estimation-Befehl margins. Im nachfolgenden Beispiel verwenden wir diesen Befehl, um die vorhergesagten Wahrscheinlichkeiten auf Wohneigentum für Westdeutsche mittleren Alters mit logarithmierten Haushaltseinkommen zwischen 13 and 18 zu berechnen (die Option noatlegend spart Platz): . margins, at(loghhinc=(13(1)18) age=0 east=0) noatlegend Adjusted predictions Model VCE : OIM Expression
=
5,407
: Pr(owner), predict() Margin
_at 1 2 3 4 5 6
Number of obs
.1064508 .2748636 .5467008 .7932755 .9242971 .9749045
Delta-method Std. Err. .0088783 .0109781 .0085653 .0092688 .0066506 .0033467
z 11.99 25.04 63.83 85.59 138.98 291.30
P>|z|
[95% Conf. Interval]
0.000 0.000 0.000 0.000 0.000 0.000
.0890497 .2533469 .5299132 .775109 .9112623 .9683451
.1238519 .2963803 .5634885 .811442 .937332 .981464
Die erste Zeile der Ausgabe zeigt die vorhergesagte Wahrscheinlichkeit auf Wohneigentum für Westdeutsche mittleren Alters mit einem jährlichen logarithmierten Haushaltseinkommen von 13 (≈8.000 €). Wie Sie sich denken können, ist diese Wahrscheinlichkeit ziemlich niedrig – ungefähr 10,6 %. Die weiteren Zeilen der Tabelle zeigen die vorhergesagten Wahrscheinlichkeiten für entsprechende Personen mit
370 | 10 Regressionsmodelle für kategoriale abhängige Variablen logarithmierten Haushaltseinkommen von 14, 15, … , 18. Wie Sie sehen, werden die Wahrscheinlichkeiten größer, wenn die Einkommen steigen. Bei Westdeutschen im durchschnittlichen Alter mit einem logarithmierten Haushaltseinkommen von 18 (≈ 256.000 €) beträgt sie fast 100 %. Ein Problem bei der Interpretation der Wahrscheinlichkeiten besteht darin, dass die Wahrscheinlichkeiten nicht gleichmäßig mit jeder Erhöhung der unabhängigen Variablen ansteigen. Das kann man in obiger Tabelle sehr gut sehen. Vergleichen Sie dazu zunächst die vorhergesagten Wahrscheinlichkeiten der ersten beiden Zeilen. Die Wahrscheinlichkeit von Wohneigentum steigt hier um 0,16 von 0,11 auf 0,27. Vergleichen Sie nun die aufeinanderfolgenden Werte der letzten beiden Zellen. Hier steigt die Wahrscheinlichkeit von Wohneigentum nur noch um 0,05 – von 0,92 auf 0,97. Wir sehen daran, dass eine Erhöhung der unabhängigen Variablen Einkommen um eine Einheit nicht stets die gleiche Veränderung der vorhergesagten Wahrscheinlichkeiten mit sich bringt. Ein ausgezeichneter Ausweg aus dieser Situation ist die grafische Darstellung der vorhergesagten Wahrscheinlichkeiten in Conditional-Effects-Plots (vgl. Abschn. 9.5.3). Zur Erzeugung solcher Plots verwendet man wie schon bei der linearen Regressionsanalyse die Kombination der Befehle margins und marginsplot. Hier ist ein Beispiel, das die Effekte aller unabhängigen Variablen des Regressionsmodells illustriert: . margins, at(loghhinc=(13(1)18) age=(20(20)60)) by(east) . marginsplot, by(east)
Predictive Margins with 95% CIs east=1
.6 .2
.4
Pr(Owner)
.8
1
east=0
13
14
15
16
17
18 13
14
15
16
17
18
loghhinc age_c=20 age_c=60
age_c=40
In der Grafik sieht man deutlich, dass die vorhergesagten Wahrscheinlichkeiten nicht mit einer konstanten Rate mit dem Haushaltseinkommen ansteigen. Vielmehr gilt: Je nach Einkommen steigt die vorhergesagte Wahrscheinlichkeit für Wohneigentum mal schnell und mal langsam. Wir sehen auch, dass der Effekt des Alters auf die Wahrscheinlichkeit von Wohneigentum bei logarithmierten Haushaltseinkommen um 14 viel größer ist als bei logarithmierten Haushaltseinkommen über 16. Schließlich sehen wir, dass sich Ost- und Westdeutsche hinsichtlich des Wohneigentums nicht stark voneinander unterscheiden.
10.3 Logistische Regression mit Stata
| 371
10.3.1.4 Durchschnittliche Marginaleffekte Wie gerade gezeigt, variiert der Einfluss der unabhängigen Variablen auf die Erfolgswahrscheinlichkeit mit dem Niveau der unabhängigen Variablen selbst. Im Allgemeinen ist der Effekt der unabhängigen Variablen umso stärker, je näher die vorhergesagten Wahrscheinlichkeiten an 50 % sind, und umso schwächer, je näher man sich vorhergesagten Wahrscheinlichkeiten von 0 oder 100 % annähert. Im Gegensatz zur linearen Regression gibt es bei der logistischen Regression darum keine allgemein akzeptierte Maßzahl, die den Einfluss einer unabhängigen Variablen in einer einzigen Ziffer ausdrückt. Ein Kandidat für eine solche Ziffer ist der sog. „durchschnittliche Marginaleffekt“. Um durchschnittliche Marginaleffekte zu verstehen, müssen Sie zunächst verstehen, was Marginaleffekte sind. Der Marginaleffekt ist die Steigung einer Regressionslinie an einem bestimmten Punkt. Im Fall der linearen Regression entspricht der Marginaleffekt dem Regressionskoeffizienten. Wie wir in obigen Conditional-Effects-Plots gesehen haben, ist die Steigung der Regressionslinie – und somit der Marginaleffekt – bei der logistischen Regression nicht konstant. Es ist darum möglich – und sinnvoll –, die Steigung der Regressionslinie an verschiedenen Punkten zu berechnen. Dazu dient die Option dydx(varlist) von margins. Der Befehl . margins, dydx(_all) atmeans noatlegend Conditional marginal effects Model VCE : OIM
Number of obs
=
5,407
Expression : Pr(owner), predict() dy/dx w.r.t. : age_c loghhinc east dy/dx age_c loghhinc east
.0057079 .2885477 .022156
Delta-method Std. Err. .0004387 .0109437 .0172725
z 13.01 26.37 1.28
P>|z| 0.000 0.000 0.200
[95% Conf. Interval] .0048481 .2670983 -.0116974
.0065678 .309997 .0560094
zeigt die Steigungen der Regressionslinien, wenn alle unabhängigen Variablen ihren Durchschnittswert annehmen. Die Interpretation lautet wie folgt: „Für Personen, die bei allen unabhängigen Variablen dem Durchschnitt entsprechen, steigt die vorhergesagte Wahrscheinlichkeit von Wohneigentum um 0,0057079, wenn sich das Alter um ein Jahr erhöht, um 0,022156 für Ostdeutsche und um 0,2885477, wenn sich das logarithmierte Haushaltseinkommen um einen Euro erhöht. Wenn Sie die unabhängigen Variablen auf andere Werte fixieren, ändern sich die Marginaleffekte. Nehmen wir als Beispiel die Marginaleffekte für Ostdeutsche, die 10 Jahre älter sind als der Durchschnitt und ein logarithmiertes Haushaltseinkommen von 15 haben:
372 | 10 Regressionsmodelle für kategoriale abhängige Variablen . margins, dydx(_all) at(age_c=20 loghhinc=15 east=1) noatlegend Conditional marginal effects Model VCE : OIM
Number of obs
=
5,407
Expression : Pr(owner), predict() dy/dx w.r.t. : age_c loghhinc east dy/dx age_c loghhinc east
Delta-method Std. Err.
.0050171 .2536225 .0194743
.0003387 .0096303 .0148274
z 14.81 26.34 1.31
P>|z| 0.000 0.000 0.189
[95% Conf. Interval] .0043531 .2347475 -.0095869
.005681 .2724976 .0485354
Weil die Marginaleffekte vom Niveau der unabhängigen Variablen abhängen, an denen sie berechnet werden, ist es naheliegend, sie für alle Kovariatenmuster, die im Datensatz vorkommen, zu berechnen und dann den Durchschnitt davon zu nehmen. Dies sind die durchschnittlichen Marginaleffekte. Man bekommt sie, wenn man die Option dydx(varlist) verwendet, ohne dabei gleichzeitig die Werte der unabhängigen Variablen auf eine bestimmtes Kovariatenmuster zu fixieren. . margins, dydx(_all)
noatlegend
Average marginal effects Model VCE : OIM
Number of obs
=
5,407
Expression : Pr(owner), predict() dy/dx w.r.t. : age_c loghhinc east dy/dx age_c loghhinc east
Delta-method Std. Err.
.0047528 .2402647 .0184486
.0003443 .0066963 .0143741
z 13.80 35.88 1.28
P>|z|
[95% Conf. Interval]
0.000 0.000 0.199
.004078 .2271402 -.009724
.0054277 .2533891 .0466212
10.3.2 Der Iterationsblock Im oberen linken Teil der Ausgabe des logit-Befehls finden Sie einige Zeilen, die mit dem Wort „Iteration“ beginnen (vgl. S. 365). Derartige Angaben sind typisch für Modelle, deren Koeffizienten nach dem Maximum-Likelihood-Prinzip ermittelt werden. Wie in unserem Exkurs zu diesem Verfahren ausgeführt, gibt es bei Anwendung des Maximum-Likelihood-Prinzips keine mathematische Gleichung, mit der die b-Koeffizienten direkt berechnet werden können. Stattdessen werden die Koeffizienten durch gezieltes und wiederholtes (iteratives) Ausprobieren bestimmt. Vereinfacht ausgedrückt wird dieses Ausprobieren so lange wiederholt, bis sich die in den einzelnen Iterationen ausgegebenen Werte praktisch nicht mehr verändern. Die Zwischenergebnisse dieser Versuche zeigt der Iterationsblock.
10.3 Logistische Regression mit Stata
| 373
Die erste und letzte Angabe des Iterationsblocks ähneln in gewisser Weise den Angaben des Anova-Blocks der linearen Regression (Abschn. 9.1.2.2). Im Anova-Block der linearen Regression fanden sich Angaben zur TSS, RSS und MSS. TSS war die Summe der quadrierten Residuen, wenn man alle Werte der abhängigen Variablen durch das arithmetische Mittel vorhersagt. RSS war die Summe der quadrierten Residuen des Regressionsmodells und MSS war die Differenz zwischen TSS und RSS. MSS ist damit die Menge von Fehlern, die wir weniger machen, wenn wir statt des Mittelwerts das Regressionsmodell zur Vorhersage der abhängigen Variablen verwenden. Ähnlich zeigt der erste Log-Likelihood Wert des Iterationsblocks, wie wahrscheinlich die beobachteten Daten sind, wenn alle b-Koeffizienten des logistischen Regressionsmodells außer der Konstanten gleich 0 sind (ℒ0 ).¹² Die letzte Log-Likelihood gibt dagegen an, wie wahrscheinlich die beobachteten Daten bei den am Ende ausgewählten b-Koeffizienten sind (ℒK ). Je stärker sich die erste und letzte Wahrscheinlichkeit unterscheiden, desto größer ist der Vorteil des Modells mit den unabhängigen Variablen gegenüber dem „Nullmodell“. Es zeigt sich damit eine Art Analogie von TSS zu ℒ0 , von RSS zu ℒK und von MSS zu ℒ0 − ℒK . Abgesehen von der ersten und letzten Log-Likelihood sind die übrigen Angaben im Iterationsblock von untergeordnetem Interesse. Es gibt jedoch eine Ausnahme. Das Maximum-Likelihood-Verfahren liefert unter bestimmten Umständen eine Lösung für die b-Koeffizienten, die nicht optimal ist. Dies kann auftreten, wenn der Raum, in dem nach den Koeffizienten gesucht wird, schwierig ist. All das klingt reichlich abstrakt, und wir wollen dies hier auch nicht weiter vertiefen. Wichtig scheint uns aber, dass die Anzahl der Iterationen Hinweise auf einen schwierigen Suchraum geben können. Modelle, bei denen eine große Anzahl von Iterationen durchgeführt werden, bevor die Lösung präsentiert wird, müssen als problematisch angesehen werden. Eine genaue Zahl ab der die Anzahl der Iterationen als zu groß erscheint, lässt sich nicht angeben. Allgemein sollten Sie jedoch mit mehr Iterationen rechnen, wenn die Anzahl unabhängiger Variablen steigt. Im Fall der logistischen Regression sind solche Fälle die Ausnahme. Ihre Likelihood-Funktion ist gutmütig und relativ einfach zu maximieren. Wenn ihr Modell trotzdem einmal nicht konvergieren sollte, hilft es meistens, einige unabhängige Variablen aus dem Modell zu entfernen.
10.3.3 Der Modellfit-Block Eine bedeutende Maßzahl für den Modellfit der linearen Regression war R2 . Der Grund für die große praktische Bedeutung von R2 liegt vermutlich darin, dass R2 zum einen 12 Dies gilt für die Befehle logit und logistic. Manche Maximum-Likelihood-basierten Techniken verwenden auch andere Startwerte. Der in Iteration 0 angegebene Log-Likelihood-Wert entspricht dann nicht mehr demjenigen, bei dem alle Steigungsparameter auf Null gesetzt sind.
374 | 10 Regressionsmodelle für kategoriale abhängige Variablen die festen Grenzen 0 und 1, zum anderen die klare Interpretation „Anteil erklärter Varianz“ aufweist. In der logistischen Regression gibt es keine vergleichbare allgemein akzeptierte Maßzahl. Vielmehr wurde eine Reihe von Maßzahlen und Konzepten vorgeschlagen, von denen wir Ihnen hier einige vorstellen wollen. Beginnen wollen wir mit der Maßzahl, die sich bereits im Modellfit-Block der Ausgabe von logit befindet: dem Pseudo-R2 . Dabei ist es jedoch bereits missverständlich, von dem Pseudo-R2 zu sprechen. Es gibt eine ganze Reihe von verschiedenen Pseudo-R2 -Werten (vgl. Long und Freese 2006). Deshalb sollte man stets angeben, von welchem Pseudo-R2 jeweils die Rede ist. Derjenige, der von Stata ausgegeben wird, wurde von McFadden (1973) vorgeschlagen, weshalb wir ihn mit R2MF bezeichnen wollen. McFaddens R2MF wird in direkter Analogie zum R2 der linearen Regression berechRSS net. Gemäß Gleichung (9.13) ist R2 = MSS TSS = 1 − TSS . Entsprechend gilt für R2MF =
ln ℒ0 − ln ℒK ln ℒK =1− ln ℒ0 ln ℒ0
(10.10)
mit ℒ0 der Likelihood, dass alle Koeffizienten außer der Konstanten 0 sind, und ℒK der Likelihood des berechneten Modells. Wie bei R2 liegt R2MF in den Grenzen von 0 und 1. Die inhaltliche Interpretation ist allerdings ungleich problematischer. „Je höher, desto besser“ ist praktisch das Einzige, was man zu R2MF sagen kann. Den R2MF von 0,08 in unserem Beispiel (S. 365) würden die meisten als klein bezeichnen. Neben McFaddens Pseudo-R2 wird als weitere Kennziffer für die Güte des Gesamt2 ) ausgegeben. Dieser beruht ebenfalls auf der modells der Likelihood-Ratio-χ 2 Wert (χℒ Differenz zwischen der ersten und letzten Angabe des Iterationsblocks. Anders als bei R2MF wird diese Differenz aber nicht auf die Werte zwischen 0 und 1 standardisiert, sondern lediglich mit −2 multipliziert: 2 = −2(ln ℒ − ln ℒ ) χℒ 0 K
(10.11)
2 folgt einer χ 2 -Verteilung. Damit kann χ 2 ähnlich dem F-Wert der linearen Reχℒ ℒ gression zur Untersuchung der Hypothese, dass die unabhängigen Variablen keinen Erklärungsbeitrag liefern bzw. dass alle Koeffizienten außer der Konstanten Null sind, verwendet werden. Die Wahrscheinlichkeit für das Zutreffen dieser Hypothesen wird in der Zeile mit „Prob > chi2“ ausgewiesen. Sie ist im vorliegenden Fall praktisch 0. Wir können daher davon ausgehen, dass mindestens einer der beiden b-Koeffizienten in der Grundgesamtheit nicht 0 ist. Ebenfalls wie beim F-Test in der linearen Regression reicht die Zurückweisung der Nullhypothese in keiner Weise aus, um mit den Ergebnissen zufrieden zu sein. Wie auch bei der linearen Regression sollte die Beurteilung der Anpassung eines Modells nicht allein auf Grund der Maßzahlen im Modellfit-Block erfolgen. Dieser Hinweis ist im Rahmen der logistischen Regression sogar noch etwas ernster zu nehmen, da es hier keine allgemein akzeptierte Maßzahl wie R2 gibt. Aus diesem Grund wollen wir Ihnen im Folgenden noch einige weitere Maßzahlen erläutern.
10.3 Logistische Regression mit Stata
| 375
10.3.3.1 Klassifikationstabellen Der Fit des linearen Regressionsmodells wurde in erster Linie auf der Basis der Residuen (y − y)̂ 2 beurteilt. In der logistischen Regression kann man die Residuen als den Unterschied zwischen den beobachteten Werten und den sog. klassifizierten Werten auffassen. Bei der Klassifikation wird jeder Beobachtung einer der beiden Werte der abhängigen Variablen zugewiesen. Üblicherweise wird einer Beobachtung der Wert 1 zugewiesen, wenn das Modell eine Wahrscheinlichkeit von über 0,5 vorhersagt. Bei vorhergesagten Wahrscheinlichkeiten von unter 0,5 wird der Beobachtung eine 0 zugewiesen. Wenn Sie oben die Variable Phat mit den vorhergesagten Wahrscheinlichkeiten gebildet haben, können Sie diese Zuweisung einfach von Hand durchführen: . generate ownerhat = Phat >= .5 if !mi(Phat)
Die so erzeugten klassifizierten Werte der abhängigen Variablen werden typischerweise in einer Klassifikationstabelle dargestellt. Hierbei handelt es sich um eine einfache Kreuztabelle der klassifizierten Werte mit den Originalwerten: . tabulate ownerhat owner, cell column Key frequency column percentage cell percentage ownerhat
owner 0
1
Total
0
1,556 60.92 28.78
707 24.78 13.08
2,263 41.85 41.85
1
998 39.08 18.46
2,146 75.22 39.69
3,144 58.15 58.15
Total
2,554 100.00 47.24
2,853 100.00 52.76
5,407 100.00 100.00
Aus dieser Tabelle kann man eine Reihe von Werten ablesen. Vor allem bei Medizinern ist die „Sensitivität“ und die „Spezifizität“ des Modells von großer Bedeutung. Hierbei handelt es sich um die Spaltenprozentsätze in der Hauptdiagonalen der oben erzeugten Tabelle. Sensitivität ist der Anteil der tatsächlichen Wohneigentümer, die auch als solche klassifiziert werden. Spezifizität ist der Anteil der tatsächlichen Mieter, die als Mieter klassifiziert werden. Im Beispiel beträgt die Sensitivität 75,22 % und die Spezifizität 60,92 %. In den Sozialwissenschaften ist der sog. Count R2 gebräuchlich. Hierbei handelt es sich um den Anteil der insgesamt korrekt vorhergesagten Beobachtungen. Diese kön-
376 | 10 Regressionsmodelle für kategoriale abhängige Variablen nen Sie durch Addition der Gesamtanteile in der Hauptdiagonalen der oben erzeugten Tabelle ermitteln. Einfacher geht es allerdings mit dem Befehl estat classification, mit dem Sie obige Tabelle in etwas anderer Anordnung sowie die Sensitivität, die Spezifizität, den Count R2 und einige weitere Angaben erhalten: . estat classification Logistic model for owner Classified
D
True
~D
Total
+ -
2146 707
998 1556
3144 2263
Total
2853
2554
5407
Classified + if predicted Pr(D) >= .5 True D defined as owner != 0 Sensitivity Specificity Positive predictive value Negative predictive value
Pr( +| D) Pr( -|~D) Pr( D| +) Pr(~D| -)
75.22% 60.92% 68.26% 68.76%
False False False False
Pr( +|~D) Pr( -| D) Pr(~D| +) Pr( D| -)
39.08% 24.78% 31.74% 31.24%
+ + -
rate rate rate rate
for for for for
true ~D true D classified + classified -
Correctly classified
68.47%
Die Klassifikationstabelle zeigt, dass wir insgesamt 3.144 Beobachtungen mit dem Wert 1 klassifiziert haben. Bei 2.146 Beobachtungen entspricht dies dem wahren Wert, bei 998 nicht. Den Wert 0 haben wir 2.263 Beobachtungen zugewiesen, was sich 1.556-mal als korrekt erwiesen hat. Insgesamt zutreffend klassifiziert haben wir = 68, 47% der Beobachtungen. Diese Angabe findet sich am Ende R2count = 2146+1556 5407 der Ausgabe von estat classification. Damit sieht unser Modell nicht allzu schlecht aus. Aber Achtung: Auch ohne Kenntnis der unabhängigen Variablen sind Sie in der Lage, einige Fälle korrekt zu klassifizieren. Wenn Sie nichts weiter wissen als die Verteilung der abhängigen Variablen, machen Sie die wenigsten Fehler, wenn Sie allen Beobachtungen die häufigere Kategorie zuweisen. Würden wir im vorliegenden Fall alle Beobachtungen als Mieter 2853 vorhersagen, lägen wir bereits in 5407 = 52, 77% der Fälle richtig. Aus dem Vergleich der korrekten Klassifikationen anhand der Randverteilung und der korrekten Klassifikationen mit Kenntnis der unabhängigen Variablen lässt sich das sog. „Adjusted Count R2 “ berechnen (vgl. Long 1997: 108): R2AdjCount =
∑j njj − maxc (n+c ) n − maxc (n+c )
(10.12)
10.3 Logistische Regression mit Stata
| 377
Dabei steht n+c für die Summe der Spalte c und maxc (n+c ) für die Spalte mit dem höheren Wert von n+c . ∑j njj ist die Summe der Fälle in der Hauptdiagonalen der Klassifikationstabelle, d.h. die Anzahl der korrekt klassifizierten Fälle. In unserem Beispiel erhalten wir ein R2AdjCount von: . display ((2146 + 1556) - 2853)/(5407 - 2853) .33241973
Das bedeutet: Unter Kenntnis der unabhängigen Variablen verringern sich die Fehler bei der Vorhersage um 33 % im Vergleich zur Vorhersage allein auf Grund der Randverteilung der abhängigen Variablen. Sie erhalten den Adjusted Count R2 sowie verschiedene andere Fit-Maße durch das Ado-Paket fitstat von Scott Long und Jeremy Freese. Dieses können Sie über das SSC-Archiv beziehen (vgl. Abschn. 13.3.2). Zwei weitere häufig genutzte Fit-Maße, AIC und BIC erhalten Sie durch estat ic.
10.3.3.2 Pearson-Chi-Quadrat Eine zweite Gruppe von Maßzahlen basiert auf den sogenannten Pearson-Residuen. Zu deren Verständnis ist es zunächst notwendig, sich den Begriff des „KovariatenMusters“ zu verdeutlichen. Als Kovariaten-Muster bezeichnet man jede mögliche Kombination der unabhängigen Variablen eines Modells. In unserem Beispiel sind dies alle möglichen Kombinationen der Werte des logarithmierten Haushaltseinkommens und des Alters. Jedes Kovariaten-Muster tritt genau mj -mal auf, wobei j alle auftretenden Kovariaten-Muster durchnummeriert. Durch . predict cpatt, number . sort east age_c loghhinc . list east age_c loghhinc cpat, sepby(loghhinc)
können Sie eine Variable erzeugen, welche die Kovariaten-Muster durchnummeriert. Die Pearson-Residuen basieren nun auf einem Vergleich der Anzahl von Erfolgen yj innerhalb des Musters j mit der vorhergesagten Anzahl von Erfolgen mj Pĵ innerhalb desselben Musters. Konkret ist das Pearson-Residuum (yj − mj Pĵ ) (10.13) rP(j) = √mj Pĵ (1 − Pĵ ) wobei Pĵ die vorhergesagte Wahrscheinlichkeit eines Erfolgs für das Muster j bedeutet. Die Multiplikation von Pĵ mit der Anzahl der Fälle pro Muster mj ergibt die vorhergesagte Anzahl von Erfolgen im Muster j. Anders als bei den Residuen der linearen Regression, die für jede Beobachtung einen anderen Wert haben, können sich die Pearson-Residuen nur für Beobachtungen mit unterschiedlichem Kovariaten-Muster unterscheiden. Mit . predict pres, resid
378 | 10 Regressionsmodelle für kategoriale abhängige Variablen
bildet man eine Variable mit den Pearson-Residuen. Die Summe des Quadrats dieser Variablen über alle Kovariaten-Muster ergibt die „Pearson-Chi-Quadrat-Statistik“. Einen formalen Test dieser Statistik erhalten Sie durch: . estat gof Logistic model for owner, goodness-of-fit test number of observations number of covariate patterns Pearson chi2(5227) Prob > chi2
= = = =
5407 5231 6400.84 0.0000
Die dem Test zu Grunde liegende Hypothese ist die Übereinstimmung vorhergesagter und beobachteter Häufigkeiten von Erfolg. Ein niedriger χ 2 -Wert (bzw. ein hoher p-Wert) signalisiert geringe Unterschiede zwischen den beobachteten und geschätzten Häufigkeiten. Umgekehrt signalisiert ein hoher χ 2 -Wert (bzw. ein niedriger p-Wert) eine geringe Wahrscheinlichkeit, dass die Differenz zwischen beobachteten und geschätzten Werten auf Zufallsprozessen beruhen. Bei der Interpretation ist darum Zurückhaltung geboten: Eine Wahrscheinlichkeit von χ 2 unter 0,05 zeigt zwar, dass das Modell die Wirklichkeit nicht gut abbildet, Werte über 5 Prozent bedeuten aber nicht, dass das Modell akzeptabel ist. Denn auch eine Wahrscheinlichkeit von – sagen wir – 6 Prozent ist noch recht klein, auch wenn die Nullhypothese, dass die Unterschiede zwischen beobachteten und vorhergesagten Werten rein zufällig sind, nicht zurückgewiesen werden kann. Wenn die Zahl der Kovariaten-Muster (hier: 5.231) nahe an der Zahl der im Modell enthaltenen Beobachtungen (hier: 5.407) liegt, ist der χ 2 -Test weniger gut geeignet. Hosmer und Lemeshow (2000: 140–145) haben deshalb eine Veränderung des Tests vorgeschlagen, bei dem die Daten nach den vorhergesagten Wahrscheinlichkeiten geordnet und in g annähernd gleich große Gruppen aufgeteilt werden. Für jede Gruppe wird dann die Häufigkeit der tatsächlich beobachteten Erfolge in dieser Gruppe mit der durch das Modell geschätzten Häufigkeit verglichen. Eine hohe Wahrscheinlichkeit der hieraus resultierenden Prüfgröße signalisiert ebenfalls eine geringe Differenz von beobachteten und geschätzten Häufigkeiten. Den Hosmer-Lemeshow-Test erhalten Sie, wenn Sie das Kommando estat gof zusammen mit der Option group() verwenden. Innerhalb der Klammern wird die Anzahl der Gruppen angegeben, in welche die Daten unterteilt werden sollen. Häufig wird g = 10 verwendet. . estat gof, group(10) Logistic model for owner, goodness-of-fit test (Table collapsed on quantiles of estimated probabilities) number of observations number of groups Hosmer-Lemeshow chi2(8) Prob > chi2
= = = =
5407 10 19.76 0.0113
10.4 Diagnostik der logistischen Regression |
379
10.4 Diagnostik der logistischen Regression Im Folgenden beschreiben wir zwei Techniken, mit denen man einer Fehlspezifikation eines logistischen Regressionsmodells besser auf die Schliche kommt. Erstens geht es dabei um den unterstellten funktionalen Zusammenhang: Im logistischen Regressionsmodell wird ein linearer Zusammenhang zwischen der logarithmierten Chance eines Erfolgs und jeder unabhängigen Variablen unterstellt. Bevor ein logistisches Regressionsmodell interpretiert werden kann, ist es darum notwendig, die Gültigkeit dieser Annahme zu überprüfen. Die zweite Methode behandelt das Problem einflussreicher Beobachtungen, d.h. von Beobachtungen, die das Regressionsergebnis stark beeinflussen. Manchmal stellen sich solche Beobachtungen als Datenfehler heraus, häufiger geben diese Ausreißer aber Hinweise über fehlende Variablen im Modell.
10.4.1 Linearität Als ersten Anhaltspunkt für die Entdeckung nichtlinearer Beziehungen haben wir bei der linearen Regression Scatterplots der abhängigen Variablen gegen alle unabhängigen Variablen verwendet, wobei die Form der Beziehung mit Hilfe eines ScatterplotSmoothers verdeutlicht wurde. Entsprechende Grafiken können Sie auch für die logistische Regression verwenden, allerdings müssen Sie hierbei zwei Besonderheiten beachten. Erstens ist der im Rahmen der linearen Regression angewandte MedianTrace als Smoothing-Technik nutzlos, da der Median bei dichotomen Variablen praktisch nur die Werte 1 und 0 annehmen kann.¹³ Zweitens muss die funktionale Form des Scatterplots nichtlinear sein, da die Linearität nur bezüglich der Logits angenommen wird. Die funktionale Form zwischen den Wahrscheinlichkeiten und den unabhängigen Variablen ist S-förmig (S. 359). An Stelle des Median-Trace können Sie eine „lokale Mean-Regression“ als Scatterplot-Smoother verwenden. Hierzu wird die X-Variable wie beim Median-Trace in Streifen unterteilt und für jeden dieser Streifen der arithmetische Mittelwert der abhängigen Variablen berechnet. Diese Mittelwerte werden dann gegen die jeweilige unabhängige Variable in eine Grafik eingezeichnet. Damit die funktionale Form eines logistischen Regressionsmodells zutrifft, sollte die Grafik der lokalen Mean-Regression den S-förmigen Verlauf der Kurve von Seite 359 zeigen. Dabei ist jedoch zu berücksichtigen, dass die Abbildungen häufig nur einen kleinen Ausschnitt der S-Form zeigen. Beschränken sich die Mittelwerte in den Streifen auf Werte zwischen 0,2 und 0,8 sollte die Mean-Regression nahezu linear ver13 Bei exakt gleicher Anzahl von 0 und 1 kann auch der Wert 0,5 auftreten.
380 | 10 Regressionsmodelle für kategoriale abhängige Variablen laufen. In jedem Fall problematisch sind allerdings U-förmige, umgekehrt U-förmige und andere nichtstetige Kurvenverläufe. Das Verfahren der Mean-Regression existiert nicht als eigenständiger Befehl in Stata, kann aber in einer vereinfachten Variante recht schnell von Hand durchgeführt werden:¹⁴
0
.2
.4
.6
.8
1
. generate groupage = autocode(age,15,16,90) . egen mowner = mean(owner), by(groupage) . scatter owner age, jitter(2) || line mowner age, sort
20
40
60 age owner
80
100
mowner
In der Grafik fällt der Mittelwert des Wohneigentums zunächst mit dem Alter ab, steigt dann bis zum Alter von ungefähr 40 Jahren an, um dann bei den ältesten Befragten wieder zu fallen. Dieser Zusammenhang entspricht in keiner Weise dem von der logistischen Regression unterstellten Zusammenhang. Zur Untersuchung der funktionalen Form eines Zusammenhangs noch besser geeignet ist der „Locally Weighted Scatterplot-Smoother“ (LOWESS) von Cleveland (1979). Diesen Smoother erhalten Sie durch den twoway Grafik-Typ lowess oder als eigenständiges Kommando lowess. Auf die Darstellung der Berechnung von LOWESS wollen wir hier zu Gunsten der ausgezeichneten Darstellung von Cleveland (1994) verzichten. Es sei hier lediglich darauf hingewiesen, dass durch die Option bwidth() die Stärke der Glättung des Smoothers in Form einer Zahl zwischen 0 und 1 eingestellt wird. Hohe Zahlen führen zu einer stärkeren Glättung und umgekehrt. Darüber hinaus sei angemerkt, dass LOWESS ein rechenintensives Verfahren ist. Es kann deshalb einige Zeit dauern, bis die nachfolgende Grafik auf Ihrem Bildschirm erscheint: . lowess owner age, jitter(2) bwidth(.5)
14 Zur Funktion autocode() vgl. S. 186. Zum Befehl egen vgl. Abschn. 5.4.2 auf S. 109.
10.4 Diagnostik der logistischen Regression |
381
0
.2
.4
owner
.6
.8
1
Lowess smoother
20
40
60 age
80
100
bandwidth = .5
Auch diese Grafik zeigt den doppelt-U-förmigen Zusammenhang zwischen Wohneigentum und Alter. Die mittleren Altersgruppen haben eine höhere Wahrscheinlichkeit für Wohneigentum als die oberen und unteren Altersgruppen. Die – vermutlich noch bei Ihren Eltern wohnenden – jüngsten Befragten wohnen ebenfalls relativ häufig in Eigentumswohnungen oder -häusern. Beide Grafiken zeigen einen Zusammenhang, der dem von der logistischen Regression geforderten S-förmigen Zusammenhang widerspricht. U-förmige Zusammenhänge können wie in der linearen Regression durch Bildung von Polynomen modelliert werden. Bevor Sie dies tun, sollten Sie jedoch überprüfen, ob der U-förmige Zusammenhang auch noch unter Kontrolle des Haushaltseinkommens sichtbar ist. Hierzu ersetzen Sie die Altersvariable in Ihrem Regressionsmodell durch einen Set von Dummy-Variablen (vgl. S. 311.):¹⁵ . logit owner i.age loghhinc east
Die Schätzung dieses Regressionsmodells führt zur Schätzung je eines Koeffizienten für jede Kategorie des Alters und damit zu einer gewaltigen Anzahl von Koeffizienten. Wegen der geringen Besetzung einiger höherer Alterskategorien kommt es dabei zu einem Problem, dass in der Literatur „High Discrimination“ genannt wird und das man daran erkennt, dass die Ausgabe mit einer Reihe von Hinweisen auf weggelassene Beobachtungen beginnt. Einige der gesuchten b-Koeffizienten können darum nicht geschätzt werden, was hier aber nicht weiter problematisch erscheint.¹⁶. Die restlichen b-Koeffizienten sagen aus, um wie viel höher die vorhergesagte logarithmierte Chance von Wohneigentum für das jeweilige Alter im Vergleich zu den jüngsten Befragten ist. Wenn der Zusammenhang zwischen Alter und (logarithmierter Chance auf) Wohneigentum linear ist, sollten die b-Koeffizienten mit dem Alter kontinuierlich und gleichmäßig ansteigen. Bei den vorliegenden geschätzten Koeffizienten scheint 15 Zum nachfolgenden Verfahren vgl. Hosmer und Lemeshow (2000: 90). Ein dem „Component-PlusResidual-Plot“ (S. 295) verwandtes Verfahren zeigt Fox (1997). 16 Vgl. auch www.ats.ucla.edu/stat/mult_pkg/faq/general/complete_separation_logit_models.htm
382 | 10 Regressionsmodelle für kategoriale abhängige Variablen dies nicht der Fall zu sein. Am einfachsten kann dies jedoch beurteilt werden, wenn man den Effekt des Alters auf die logarithmierte Chancen grafisch darstellt. Um einen Plot der Effekte des Alters auf vorhergesagten logarithmierten Chancen zu erhalten, verwenden wir wieder die Kombination aus margins und marginsplot. In der Voreinstellung erzeugt margins zwar Durchschnitte der vorhergesagten Wahrscheinlichkeiten, mit der Option predict(xb) kann dies aber auf Durchschnitte der vorhergesagten logarithmierten Chancen umgestellt werden. Im marginsplot-Befehl verwenden wir die Option noci um die Darstellung der uns hier nicht interessierenden Konfidenzintervalle zu unterdrücken: . margins age, predict(xb) . marginsplot, noci
−2
Linear Prediction (Log Odds) −1 0 1
2
Predictive Margins of age
20
40
60 age
80
100
Die Grafik zeigt in groben Zügen den gleichen kurvilinearen Zusammenhang zwischen Wohneigentum und Alter wie die vorangegangene bivariate Betrachtung. Wenn wir aber Dummy-Variablen für die Kategorien der Position im Haushalt (rel2head) in das Regressionsmodell einführen, verflüchtigt sich der Rückgang auf der linken Seite des Plots: . logit owner i.age loghhinc east i.rel2head . margins age, predict(xb) . marginsplot, noci
10.4 Diagnostik der logistischen Regression |
383
−2
Linear Prediction (Log Odds) −1 0 1
2
Predictive Margins of age
20
40
60 age
80
100
Die Kontrolle der Position im Haushalt führt dazu, dass die höhere Wahrscheinlichkeit von Wohneigentum der bei ihren Eltern lebenden Kinder durch die entsprechende Kategorie von rel2head aufgefangen wird. Die geschätzten Alterskoeffizienten sind darum von diesem überlagernden Effekten bereinigt. Allerdings löst die Einführung von rel2head nicht das Problem der im Alter wieder zurückgehenden Wahrscheinlichkeiten. Damit werden wir uns weiter unten befassen (Abschn. 10.6).
10.4.2 Einflussreiche Fälle Einflussreiche Datenpunkte sind Beobachtungen, welche die b-Koeffizienten eines Regressionsmodells stark beeinflussen. Wie auf Seite 301 dargestellt, handelt es sich bei einflussreichen Beobachtungen um Beobachtungen, die sowohl eine ungewöhnliche Kombination von Werten der x-Variablen aufweisen („Leverage“) als auch eine für ihre x-Werte ungewöhnliche Ausprägung der y-Variablen (Diskrepanz). Entsprechend wurde bei der linearen Regression die Maßzahl Cook’s D durch die Multiplikation von Leverage und Diskrepanz berechnet. In der logistischen Regression ist die Anwendung dieses Konzeptes etwas problematischer als in der linearen Regression, da die Messung von Leverage und Diskrepanz hier nur näherungsweise möglich ist (Fox 1997: 459). In Stata gelingt Ihnen die Annäherung an die Leverage-Werte durch . logit owner age_c loghhinc east i.rel2head . predict leverage, hat
Beachten Sie, dass Sie das ursprüngliche Modell mit age_c, loghhinc und east als unabhängige Variablen erneut berechnen müssen, da sich predict immer auf das zuletzt berechnete Regressionsmodell bezieht. Das zuletzt eingegebene Modell ist jenes mit den Dummy-Variablen für das Alter. Die Kontrolle der Variablen rel2head erscheint uns jedoch sinnvoll, und so wollen wir Sie im Weiteren im Regressionsmodell
384 | 10 Regressionsmodelle für kategoriale abhängige Variablen belassen. Nach der erneuten Schätzung des Regressionsmodells erhalten Sie die standardisierten Residuen als Annäherung an die Diskrepanz durch . predict spres, rstandard
In der logistischen Regression sind alle standardisierten Residuen für Beobachtungen mit gleichem Kovariaten-Muster identisch. Dasselbe gilt auch für die Leverage-Werte. Zur Isolierung der Kovariaten-Muster mit hohen Leverage-Werten und hohen Diskrepanz-Werten kann eine Grafik der standardisierten Residuen gegen die Leverage-Werte angefertigt werden. Fox (1997: 461) verwendet eine Darstellung mit senkrechten Linien am Zwei- und Dreifachen des Mittelwerts der Leverage-Werte. Zur Vorbereitung dieser Grafik berechnen wir zunächst den Mittelwert der Variablen leverage. Den Mittelwert sowie dessen zwei- und dreifachen Wert speichern wir in den lokalen Makros `a', `b' und `c' (vgl. Kap. 4). . . . .
summarize local a = local b = local c =
leverage r(mean) 2 * r(mean) 3 * r(mean)
Danach erstellen wir die Grafik der standardisierten Residuen gegen die LeverageWerte. Zur Erstellung von senkrechten Linien verwenden wir die Option (xline()). Als Plotsymbol verwenden wir die Nummer der Kovariaten-Muster. Diese erstellen wir hier neu, da sich die auf Seite 377 erstellte Variable auf ein anderes Modell bezieht:
−10
standardized Pearson residual 0 10 20
30
. predict cpatt2, number . scatter spres leverage, xline(`a' `b' `c') yline(-2 0 2) > mlabel(cpatt2) mlabpos(0) ms(i)
2233
275 4050 4309 1 3100 5044 2696 2236 1174 4999 3984 4310 2697 3454 3900 1246 2891 4311 2378 815 696 2487 3370 5098 958 2379 4238 3293 760 2699 1034 2114 821 4816 701 3725 1181 1896 2492 2381 2593 1895 4945 3108 5245 2594 3808 1898 4818 1484 2117 1321 901 4583 4584 123 705 4883 3905 1253 4673 1038 3542 4948 2597 2007 1489 1807 3908 4163 4949 3907 2993 1412 1493 2242 3813 776 2008 1325 3812 2994 2243 1808 5046 4104 449 910 5182 3628 2895 974 1045 2800 1410 2997 5139 779 3204 3728 3544 1048 5266 5184 914 909 4674 5100 3548 1590 4413 2012 2122 2998 3629 4820 3547 2011 714 1121 5246 1592 1696 3816 838 4164 647 1188 4888 3380 2248 4415 2391 1697 2600 1695 4588 436 1120 2803 1127 208 1336 4243 3469 981 3912 3993 3631 1905 4954 3378 570 1902 915 2014 360 1593 1196 1339 1340 1333 1053 840 2129 724 2601 1337 720 3297 4166 3379 1501 2502 846 4890 2805 1817 919 2124 1195 3911 593 4503 4168 1700 4747 3915 4169 1499 3552 4749 2708 2710 4170 1338 3633 3994 1419 849 4418 3002 3818 5101 4248 1054 926 2018 1259 1421 5381 4109 990 24 5313 4592 1262 4956 1263 1056 5396 1707 4680 1261 1417 2392 4595 1504 728 5361 5004 4112 1141 4681 1205 1823 3299 2713 4823 4753 4172 3384 8 174 4748 1062 2714 3006 841 1138 4323 2021 2810 2134 1507 4247 1344 2139 3470 3302 2022 2507 1264 1911 1145 439 5225 5141 2255 3005 4504 1607 3210 1917 1422 4593 3996 5054 3212 4424 2809 991 1713 2258 857 73 2906 4252 929 1139 1915 2254 1705 1210 1822 2260 1070 4324 1001 1515 1002 1919 5051 3730 2911 2715 2136 4896 3921 3558 5250 1922 1273 2264 1921 4421 1063 2505 4825 1275 1215 1214 1067 2145 2398 4507 1069 2508 658 4425 213 574 3304 4686 1064 1065 4253 4687 1208 2913 4598 2261 4250 1270 855 1345 2268 4959 5185 1066 1710 1000 4510 5106 933 1918 1925 3556 5055 3637 4960 1073 4508 3125 1280 12 928 2812 3007 3387 1603 3923 2270 789 4957 4115 1428 1271 4177 1920 3925 2722 5008 735 2400 1614 364 3013 5189 2723 794 4329 3129 4427 1276 4756 3130 3998 2612 4430 4597 4897 1617 2030 4758 1068 1442 2724 2024 2720 4116 214 4599 3924 4058 1075 1723 4333 4114 1153 3390 4179 4433 3213 16 4759 2144 2269 3128 861 3832 2813 1012 1076 4826 1444 4514 5059 5006 2271 1613 3638 1615 1931 1279 1085 4513 3732 1078 4693 4185 4832 3828 1074 1217 131 5010 1156 2153 3826 1221 4432 18 1618 4118 5144 2276 4120 1621 4835 3011 4691 4000 771 2923 4330 5011 1364 1435 512 2728 1525 5349 4517 1522 1361 4334 4338 215 795 2514 2028 2036 2278 3640 3639 4436 5145 1521 1624 4002 3474 5063 1936 5146 17 1626 3835 4604 3831 3836 2152 4838 5064 5058 1362 4062 5142 1722 4764 3310 2921 4340 3132 4518 4255 1627 3017 2406 1724 2732 1527 2733 2721 4519 4180 1628 1938 136 1726 370 1529 862 5350 3019 4898 5149 19 3644 2814 4437 5296 1616 2734 2151 4181 4522 2920 3214 3931 1523 2407 1842 2818 137 1625 4345 3839 3641 1940 1837 4523 4122 1928 2511 2275 1524 4601 1443 2042 2039 4602 20 1730 1285 369 2405 2927 1533 3646 2043 5251 3312 1734 3476 4189 2044 3562 4520 1286 3021 4699 2045 2154 1844 4762 2155 4441 3016 1727 3136 3217 3927 2277 3647 21 1294 2513 3565 1623 4608 2037 1295 4184 2284 1530 1738 4003 2285 1254 4841 2730 3477 1836 4967 2519 2281 4195 5153 1446 2815 3313 1447 219 3933 4261 4609 4844 1848 1840 1089 1532 3736 2160 138 1296 4336 5192 4193 3138 4440 1528 4769 3133 4525 1536 4341 2289 3396 4766 2819 3022 141 1092 4701 3935 4346 1630 1845 4607 4770 1855 1631 2620 4125 3394 4064 1732 1290 3216 4260 3738 3220 3141 2158 2930 4612 4613 450 4771 3563 3645 1374 1448 1948 3936 1743 2735 3929 2928 2040 1941 1299 5066 4840 3142 4066 4521 3843 3395 3570 1635 1858 4971 3398 4197 5195 1540 2052 516 4190 4843 4706 5015 778 867 2156 143 1377 2823 1639 3653 3742 1229 2524 1950 3397 1644 1737 1629 712 1811 2054 3841 3564 4343 1859 3137 2157 2520 2162 2410 2931 2292 4615 2412 517 3737 4616 4618 1740 452 5113 4845 4700 1952 3478 2159 221 3740 2822 3840 1633 3401 4127 4530 2048 2737 1744 4776 1943 2287 1298 1537 1091 5155 4767 4970 2820 3145 3479 4529 78 3218 4452 3847 1637 4354 3571 4848 453 519 3648 3027 4263 2621 2619 3143 2418 1165 1096 2057 4899 1750 5299 4445 2421 3938 1378 1379 3221 2626 3656 4446 4906 1857 870 2168 2932 4614 4010 2824 3319 2164 2286 3568 2627 2300 4709 1741 1453 2740 2296 3575 4973 4972 1539 3743 2051 4358 5301 2302 1233 4011 584 3320 5157 4524 1225 74 3850 4850 2527 1864 1380 2936 3030 2628 5116 4705 5016 4009 3848 3577 2303 1651 3569 5319 3652 1865 4007 1645 1230 4528 4128 1646 1951 4126 4267 3317 1097 1868 1866 3937 4703 2170 4067 3023 2293 1757 2058 3321 4533 4534 2745 2630 3578 2304 2413 1654 2746 1548 1655 2423 4535 3572 3576 2295 1235 1093 1381 1649 4909 5018 1953 2060 2825 4531 5197 3404 1650 1166 5271 3484 3481 1549 4536 4352 3579 5383 4273 3846 4975 4269 3402 3940 3851 1956 3036 4455 2297 3855 4274 4847 1301 2528 3651 4456 1749 2625 1643 1760 3485 4355 2172 3026 4129 3032 4849 1870 3408 2291 1542 5272 2429 2419 28 378 2941 1551 4205 3033 145 2299 2433 4626 2622 2935 3574 4206 3144 5384 2308 1871 4780 3318 2167 2942 2175 1552 2632 3856 4276 4912 804 2534 2624 2063 2165 3150 380 4454 4781 2741 1545 4539 3750 3744 2535 4207 3224 5273 29 5022 1753 1457 2065 3403 3939 1873 3029 3745 2169 4353 3582 3147 1652 1764 4715 5336 4016 2934 1955 4453 3659 1759 1653 2306 2417 5364 30 1303 2068 2432 5158 4366 146 2424 2425 4272 85 1661 4911 2069 2743 2635 86 1304 3941 1957 2070 3326 1547 3148 3149 2438 1386 2059 3487 1020 4360 3323 3858 916 1964 4621 404 4851 4717 1388 4018 2752 4458 2180 1459 3661 1766 1958 2832 3667 4719 590 2531 4020 1458 2426 1966 3322 2315 1869 1959 3328 3153 4540 2311 2171 4624 1237 292 3411 4068 2443 2428 3753 1758 2833 149 4130 3405 4457 2444 4371 3660 3854 4544 4204 5119 2318 1761 4778 4545 2946 151 3483 2430 1664 1762 2836 2831 3227 2938 2174 3041 3038 3034 2307 4977 1657 5025 3412 3230 2185 154 3042 3583 2320 4627 4915 1769 5233 2758 3490 458 3035 1658 3948 1969 2075 3151 384 2445 32 1387 592 3860 2313 2541 4281 2543 1876 4542 2305 2638 2321 88 2536 293 2838 3491 4362 3045 5320 3857 2322 3950 1970 4025 2066 1556 2061 2639 2310 4277 4721 1874 1962 2078 2751 4373 2948 2634 1767 2545 383 3943 3946 2834 5162 2178 4376 1307 4017 1560 157 4208 3040 5117 147 294 1963 4074 2749 3049 4546 4377 5253 3666 2537 3228 594 2830 3493 3665 3155 3152 5337 159 158 4372 4279 5321 5302 3154 2312 1550 2759 2071 2757 1554 2951 4547 2179 4132 2547 4789 3039 4466 1198 3953 4782 2191 2076 160 1872 4913 5026 4718 5120 2753 4629 2953 2064 5234 161 4461 4979 2330 5074 1462 2080 2072 3232 2754 4024 2181 2544 155 4980 2548 1502 1967 3332 1464 2314 4724 845 2074 2755 2840 4543 2646 2316 4855 3955 1772 3489 3052 4463 5322 4471 2451 4286 1553 3754 1238 3945 2447 4465 2944 2949 1389 5078 4076 3952 2436 4550 3752 2945 1774 1768 5254 2835 4460 34 35 226 3756 3956 3947 2081 3335 653 1461 3863 2319 4916 3957 1770 3231 459 3336 2198 2184 4381 227 1600 1975 2199 3859 3488 3589 298 3416 529 3054 2847 1555 388 3043 2648 36 91 4792 1875 4028 37 3949 2186 3497 3058 4553 5323 164 3585 3156 2336 3668 988 1308 4790 1971 4631 3046 4285 386 2848 2640 2649 2553 4722 3951 1391 2079 3160 4212 5276 4788 1425 2193 4138 4213 3866 2650 4288 3669 3763 2554 1879 3418 5163 3757 5235 1771 3051 4072 5122 229 2555 2546 2188 2205 4551 389 1266 2190 3063 854 2453 4462 2952 4077 5255 3590 3588 2653 4642 1144 5028 5027 4075 3762 1562 5339 89 2450 2327 5084 2556 1880 4787 2335 3496 5324 4139 4467 232 93 4924 4923 302 2760 4636 3233 2192 2849 2950 4469 5353 90 2558 3760 1666 94 530 2842 2839 3498 3157 4137 4284 228 4032 4031 3499 2843 2841 4378 3238 4984 4857 1667 1877 5082 3241 2844 3494 4464 1564 1773 3419 2767 3164 5169 2448 2656 3047 2332 2333 3674 4926 1779 1778 792 3334 2210 2196 167 39 2549 5029 1665 1171 95 2082 3235 3237 2197 4140 3337 4644 5380 305 4728 730 2189 3053 1569 2957 2658 3592 4645 3682 1976 5085 3341 3954 3671 1973 5338 5277 165 3864 235 4646 2550 4922 3055 3495 3678 2329 2328 4548 2955 1465 2457 230 40 2551 4029 4027 531 2764 3869 96 1393 1878 2762 461 2331 1467 168 41 3765 300 2089 4862 3059 2141 4379 4470 1026 4859 97 301 4036 3417 4643 3060 2654 2659 4382 3066 3343 3673 2647 1172 2084 4640 2194 2195 3500 2956 4387 236 1242 4794 2763 4079 657 5236 4388 2454 3958 2857 462 533 5355 5354 2565 239 3764 1669 42 655 732 3246 2206 3072 2456 4988 2090 2851 3064 4554 4556 2661 4864 3685 392 3169 3065 3591 1470 2557 2765 733 3170 2852 2664 4475 5126 4293 98 2092 3339 464 394 659 4557 2960 172 171 242 43 3680 598 465 3162 535 2961 4389 3422 3345 2766 2209 599 2954 4141 2341 46 44 3681 2770 4080 4560 660 4476 2666 2655 4390 3870 2462 1980 4081 3069 396 4214 170 4927 4985 1780 4796 2651 2668 2657 4562 4391 1926 308 1781 3504 5170 4555 2345 2465 312 311 4932 3249 466 2958 4558 3593 3771 1671 5030 237 99 3074 2959 4478 3420 5257 238 3174 3506 3502 3679 2091 5341 4386 4291 313 2460 2085 4290 175 2568 2347 3873 3683 2466 1981 1314 314 600 3244 3959 4215 176 243 244 4865 3960 4082 4035 3245 3070 5128 3067 5305 1473 1785 3766 2467 1982 4797 2097 4385 4472 2564 2469 1077 3252 2856 5208 4392 3248 173 47 309 734 2861 2962 45 2350 48 2470 4799 4083 2098 4563 2672 1469 245 2351 101 2472 1787 4863 3253 2768 2100 737 3247 2149 5172 4561 4216 3166 4934 3874 661 2342 4480 3595 1010 1471 248 4868 4869 4933 102 1313 2853 5129 2566 249 4734 4729 397 796 1472 1173 3687 3768 2354 3963 316 3426 3421 3175 2854 863 2665 5031 250 549 1987 4801 3423 2855 3172 2215 2863 4295 3776 4648 1885 317 2769 3598 5127 3071 5394 4294 5032 5034 104 2463 319 318 2095 4038 2858 2216 2217 5171 2963 2669 4477 399 315 3077 179 4296 2572 4870 4803 3255 3176 3173 2218 3690 3871 2464 2775 738 2859 3346 180 2346 536 468 3075 400 4564 2964 4935 601 537 5342 603 3348 469 663 4566 4737 246 1886 2772 937 3177 3251 2222 401 4396 3772 247 5089 2675 470 2223 4144 3875 4867 1983 1786 2104 3597 4565 4298 2348 51 4739 4732 602 4798 2776 2105 2678 3695 1158 3509 2575 5090 4733 467 1397 2099 3508 3505 2569 4805 1789 3254 1570 4567 1881 178 2570 252 3962 323 3350 3596 4145 5258 106 4650 3876 2352 324 4484 4483 4482 4481 4146 5357 2358 541 2673 2670 2965 184 1884 1398 2860 403 4147 3778 1160 539 3079 2220 5327 4395 3697 4649 5033 4802 2674 2356 739 3511 5174 2224 471 3599 4397 4991 109 2473 2477 3256 2226 1015 405 2573 4871 110 799 2968 52 3349 3263 2871 2862 3692 3260 4299 185 182 798 4800 940 740 4485 2571 4400 2474 1887 5036 3258 543 2971 3694 4994 2363 3430 3178 3135 604 801 2676 2359 3601 3602 5131 3262 1474 186 4738 1888 3259 3966 406 4652 3702 4873 664 4086 544 3081 3696 2574 5035 111 325 3432 3266 327 3518 5210 187 4804 665 605 2679 1574 4297 4654 3704 2578 188 255 3268 3179 3352 2870 2682 4151 4570 542 3965 666 3353 545 2969 2225 5177 2361 4220 5093 2106 5178 3780 2103 473 5038 2366 54 1163 607 668 189 5040 5039 3181 3510 2875 475 190 4651 5376 257 4740 800 2476 2110 608 2970 2683 4219 5135 3779 3698 2867 2228 2357 407 4398 4300 5385 191 3706 3699 865 4088 3512 2868 2869 2866 2577 5136 258 5283 3269 4089 3513 3514 1450 4222 4399 2579 3880 1991 3878 2973 408 4806 56 329 328 3600 5285 4809 4992 3429 3435 330 3080 476 3705 3520 5037 2364 3881 1992 3085 2872 409 3603 606 3431 2778 802 2478 4653 3784 3783 260 3523 2972 4091 5209 4572 4995 2108 609 2584 1673 3883 3785 3786 1575 3967 1793 3180 3082 547 4092 3604 5240 1791 3438 3083 2975 2107 669 410 2582 5092 3877 2779 3524 2362 4486 4874 60 59 3519 2684 2877 868 670 3515 4401 3351 4657 112 2580 2878 4094 2882 411 3273 5134 5287 5369 4743 3525 803 5179 3781 4096 3701 4087 1993 3265 4225 5306 3789 1674 2525 2782 2227 1576 5211 477 4221 5288 3790 4741 546 1794 3971 3972 3433 2581 1990 1400 3973 3970 5284 3277 2367 2876 4223 3707 4938 3791 4807 261 3434 2780 3521 3355 3279 4093 3605 4402 4224 1167 263 2783 3969 2686 610 3787 2365 4097 5213 4403 193 1996 2781 3522 58 3708 3782 4742 2479 944 3436 5241 4571 63 3608 3088 4659 3709 4574 4661 5094 3882 2370 3086 3879 3527 2883 4662 1994 3447 3884 5260 3886 3713 1995 3439 2689 2939 672 3441 4573 1889 3792 2480 673 414 4301 4663 3715 332 2879 2974 192 262 3087 3528 2880 4226 4303 4664 266 333 481 4939 5041 4875 4039 2685 415 3887 1998 671 3359 2977 2982 3443 264 1401 3278 3448 5328 4666 480 1579 3788 1234 3975 2978 484 5261 1997 3977 3184 3530 4658 4667 2482 2586 194 3185 5096 3978 2976 2981 5095 873 2884 5137 5262 3711 2540 4877 3282 3444 2690 4489 4745 2787 485 2687 1021 2985 4154 4302 2317 3793 4660 3186 2980 4488 4879 548 483 3974 3529 417 3526 4155 3281 195 4665 4876 4744 335 4040 2984 5307 3794 3888 1099 336 5242 4227 421 2784 613 3976 3090 2691 550 416 3795 2983 4153 675 4046 2785 114 2483 742 4043 2786 3284 874 486 3890 2885 678 196 4668 2788 3285 3363 4811 1170 679 4228 3796 2371 1241 267 2693 3797 2988 5358 4669 337 3533 3532 4997 614 2230 5215 3611 268 3189 2694 4229 197 3892 418 3362 115 4670 2231 3614 4045 3450 338 5329 3187 3093 2203 487 2339 4940 1402 2452 3889 4671 116 2791 2987 615 4304 3716 552 1796 5330 488 419 4098 2340 4942 4047 2789 807 3451 3717 4230 2372 3979 2086 2232 4231 3798 3188 2112 2850 4490 269 3286 3449 4156 4813 553 4492 4491 5138 2561 1567 1312 5180 3615 5263 554 680 3534 2343 616 3094 743 4941 1396 1028 420 1468 4404 2484 4575 117 744 4577 1394 555 3191 3895 3190 5243 3800 878 1670 3287 879 4405 5370 877 4494 3616 339 2374 3980 5331 4232 3364 5181 4576 5043 3365 3718 4493 2587 3799 4305 5359 2353 1986 5332 4578 4306 489 1882 119 3896 4406 4307 3288 2375 4672 1581 3801 4943 4048 3964 2792 681 4308 2967 4495 5310 4944 745 4579 5360 2989 65 5345 490 1573 2793 5264 2485 3192 2794 3097 3098 3719 2109 3289 2887 2886 340 4814 4815 3193 491 1316 556 2368 2481 1578 746 617 3802 3617 2888 3535 4049 1797 3720 3536 1677 808 3722 946 3981 3366 1891 3618 2377 3721 4099 4496 4233 3619 4580 198 3099 2889 3897 5244 5097 4881 947 4882 3453 3982 4234 2731 4100 4998 747 423 422 120 341 557 270 618 199 424 492 272 748 558 200 271 559 273 201 493 203 560 425 684 202 809 683 4235 342 1999 274 685 343 344 749 686 494 2234 495 345 2235 3537 1477 948 687 346 619 121 561 3367 1244 688 750 347 426 810 496 497 880 3290 427 881 620 3898 689 751 348 277 1030 350 882 690 428 276 949 3803 622 562 349 884 621 351 3194 563 883 623 624 950 498 3983 692 1478 625 1583 430 2237 1101 564 626 691 499 951 885 566 565 627 431 1245 628 354 1893 811 352 886 2890 1798 5311 4236 1679 1678 629 500 630 1031 3101 433 1403 434 357 353 812 567 3195 693 1680 435 2486 3899 569 356 887 2590 953 952 1102 501 632 3291 694 205 3103 1175 3455 1177 358 1247 3196 2795 3102 206 1178 631 504 1479 813 1404 1032 126 3368 1103 633 502 1105 752 955 3456 3457 1481 2591 1176 568 1799 954 956 359 281 503 3104 695 3105 889 1480 1681 1104 3901 890 1317 634 438 1318 888 957 891 4408 1801 2238 3197 1800 3804 2796 2698 892 204 1482 1405 1584 636 3369 1107 2000 1683 1106 2592 437 814 635 4237 2488 893 697 4312 3902 756 755 3805 3538 3723 1802 816 3985 3459 1682 2115 3106 753 3458 3198 572 571 3292 505 757 4051 4313 817 758 818 1585 3806 1033 3200 3621 754 3620 3199 3622 3807 3903 698 4409 699 819 700 3540 1483 1684 1894 763 1586 3539 637 894 507 1406 1248 1249 573 895 1179 3724 3461 3107 824 3462 4159 3201 1108 896 2700 2239 761 1035 3463 820 638 764 506 897 898 4410 1685 2491 899 825 3460 1250 822 2001 2489 442 1036 66 508 509 1686 1109 960 2990 4817 2892 1251 510 3986 2797 900 2240 639 1407 2116 765 2241 1180 2380 4946 4101 1182 1319 1803 2490 762 1320 962 1587 4497 1110 441 704 1687 3202 3371 1897 823 2002 826 4498 2003 1688 365 963 1183 828 3624 1111 4411 3625 67 2004 641 766 827 3110 4582 122 702 1804 961 2005 706 575 829 4499 707 1037 3626 1689 1185 1805 513 772 640 3109 5000 3541 2701 4819 703 3111 2991 4102 4581 3904 2493 2992 444 1485 4239 4314 1252 768 966 279 3294 965 2006 4103 770 708 964 5218 1487 1112 1184 1322 1408 902 68 3464 1488 1255 4884 2893 2595 1588 3372 2118 773 4947 2494 3809 1040 1323 432 3623 5099 904 643 4315 2798 967 831 1114 1486 5045 1806 905 355 3987 1409 906 2119 642 3988 4052 3543 644 4585 4160 1411 3466 1492 2596 5001 3810 576 907 3112 711 445 2382 1039 2495 3295 4161 4586 280 4053 3465 448 1041 2702 970 373 1043 4316 3203 1115 774 514 775 1589 3374 124 4885 830 1496 3373 1186 4886 1042 2704 577 2120 1113 4950 1324 1809 646 5265 4951 777 578 2009 1691 3906 4162 4240 3205 3909 2383 2598 285 1899 832 125 1256 1690 969 3296 912 579 1044 2384 2703 2244 2995 3726 972 4587 1118 2385 1495 1692 4887 968 2896 5219 1046 2387 3727 1812 518 975 3376 3545 5220 2996 2 3989 2121 5183 2388 1693 5047 715 3113 2894 976 5002 1257 4952 709 2706 3467 4241 1494 3206 1810 1328 971 374 4054 207 1694 1900 1119 1814 1813 1326 2801 3546 2496 2705 1050 1491 1901 3811 4412 3814 1815 2123 5222 69 913 3375 3627 3990 2246 4242 1047 833 979 1497 580 834 2389 1591 1122 1116 5048 582 454 908 2245 4165 2010 4889 2799 835 3549 4414 127 3630 1049 1332 5221 1126 5247 1189 645 3815 2899 4105 2498 717 719 3991 980 1190 2013 4675 2802 2900 2497 977 1329 4106 1498 456 4 1327 1413 2897 3207 3377 589 1594 648 2602 1187 3910 1124 1117 973 1330 4317 1193 5248 4953 782 721 2707 3116 2125 1335 722 525 5267 1125 2499 2250 3208 978 2999 5312 3117 4746 5223 1051 1129 4318 3817 4676 4500 1904 1595 3115 1123 716 3992 2804 2126 1906 651 128 2127 723 4107 1258 1414 523 2898 3632 5003 1698 784 2128 587 1596 2709 781 1197 2901 2603 4416 2390 3114 1131 3000 3468 4244 2500 718 2247 4167 4589 209 1191 1907 1128 2599 1052 6 381 282 2904 526 1597 1133 1260 1701 982 2249 984 985 1816 2501 3298 2130 7 2015 1192 1702 1334 2902 986 4321 2604 1194 283 1134 785 3381 847 4245 4821 3819 1200 649 70 1135 2903 987 1599 4319 2393 1818 839 3209 3634 4590 5387 2606 1703 1704 4677 4055 1506 1130 1203 4955 361 848 4417 1908 4246 71 4891 1132 1415 3471 4320 725 921 1416 3913 4501 72 4678 1500 1706 1699 1910 842 922 3003 2394 4751 2504 3383 1601 3820 1341 844 917 923 5224 5268 5049 1503 1819 2711 1420 210 850 4502 129 3822 3300 3995 652 4249 1505 1201 1912 4752 920 3301 1598 5050 2019 1914 650 726 2131 992 4679 4892 918 2253 2133 3553 1508 1057 527 4822 983 4750 3001 3551 3550 5333 2712 1424 1423 3554 5249 1708 4056 5102 786 2909 2908 3382 654 211 2807 2910 5346 5269 4591 2396 2016 2503 5290 4893 2806 2395 759 3555 994 1913 2020 1143 5053 1206 1909 1426 2137 2132 1512 1709 3211 2138 2608 440 3729 4594 4682 787 4057 2140 3118 5291 1136 843 1711 591 1418 3120 2605 5140 3635 1712 1059 5052 924 729 3914 4419 3557 2397 1199 1204 1820 925 2257 997 4420 4322 5103 3821 1347 1821 791 1137 4683 5056 1510 1209 2017 1342 856 989 4108 1202 362 5314 4596 4824 1265 2607 130 3916 2259 1513 2905 4251 1058 3119 3122 4505 1514 2023 731 2399 788 4325 4326 2143 2256 2251 595 2135 4422 1609 1916 3917 927 851 2252 1509 1003 1060 5270 1140 1211 5186 1430 1431 4328 1606 2717 2808 2912 2263 5226 4110 1602 3004 2609 3825 1147 1351 1346 5187 993 5057 1213 1148 1343 1516 2265 4171 1142 1353 1923 1149 3124 3385 2266 4685 1207 1277 4895 4894 1517 1511 2907 3733 1824 5388 1354 1518 1604 1150 932 3008 995 2914 1611 5382 2811 3010 3009 4509 1005 2611 2026 2025 4688 1146 2146 3920 2916 3012 3731 3386 1267 3997 996 3559 1605 3827 1268 1269 4754 4684 790 959 998 4173 4111 10 1278 3121 2917 999 5104 1061 5105 2918 4254 4827 2401 1826 1827 1155 1427 5190 4506 5347 1356 1357 1829 2718 3126 934 4829 3823 5188 3127 3999 1437 3473 1080 2613 11 3918 656 2719 3306 4174 2142 3560 4178 13 3829 75 4689 1219 858 5007 5227 4958 2148 4327 76 1360 1355 2267 4059 4423 5292 4755 3824 1825 4961 5228 74 4428 5005 1282 1350 1272 443 2716 3307 3734 4512 1007 1519 1432 1081 1610 1004 1352 3308 736 931 930 1433 1441 3636 4331 2403 1008 4429 3303 4962 1720 4001 2610 132 1721 4431 14 4256 1608 1714 4757 3922 1436 596 4182 4511 4113 15 1929 1363 1924 1833 1079 2512 860 4600 3472 1152 3919 4061 2915 4176 1930 1222 1429 859 1830 5362 1281 1349 1365 1283 2509 2031 4963 1366 2262 1612 5378 1728 1439 5377 2725 1619 2032 1719 1367 4830 366 2922 1620 5060 1716 1715 1154 3926 2404 1006 4828 216 2027 4964 5061 1274 1729 3928 5009 2726 2273 2272 1358 1212 1216 1828 3305 2274 3131 1717 1933 793 4119 3015 133 4175 3014 1086 5293 4834 2034 1159 1718 1218 511 1359 1224 4831 2727 2147 5143 5348 3830 4760 4426 4121 3643 3642 1151 1438 4183 368 367 1013 134 135 2408 4690 1839 5191 4060 4435 3309 1835 2924 1161 3389 1440 1520 2402 4696 4694 2729 2510 4515 4332 2029 4965 5012 1368 4833 1288 1162 2033 2919 5295 3837 3735 1937 1832 1220 2517 4004 4434 3391 769 4761 5109 3838 1157 5147 5315 5062 2279 3018 2150 4186 4516 1082 1725 1841 1834 5334 5316 2817 3561 4603 1084 1939 1370 5294 2614 1445 1226 1087 4763 936 4187 4692 1932 5229 1927 218 3475 4117 1223 797 515 2925 4344 1632 3215 3833 4335 1831 284 2283 1531 3834 5013 1009 2515 903 4968 1733 1838 447 4188 5297 1225 4839 5148 4258 5111 5107 4698 1293 1227 1371 2518 4606 1534 4257 1622 4969 710 4063 4337 5151 1490 4836 2035 1011 1526 1284 1934 3930 2617 5193 2618 217 1736 1287 5152 4966 5108 4262 1935 220 1088 1739 446 1846 1847 1369 938 2282 1016 5194 4442 1942 4438 3392 2047 22 1731 371 1849 4695 5110 1850 3311 3219 2615 23 1292 1297 2280 3393 3650 1851 2929 1090 139 4259 5317 3140 5154 2616 2041 2516 2288 1945 1636 286 1854 3567 3566 1946 941 4837 2926 451 77 5017 1289 5252 4006 375 4265 4697 5065 5391 4702 3932 2050 4605 2816 2038 4842 5067 4765 5351 2521 25 1094 3739 943 3222 1634 26 3842 1375 5014 4611 2411 4192 4191 3020 5318 4349 1735 1372 3934 1745 2522 1747 911 5068 4342 4123 376 4444 2290 4198 140 2046 5231 4199 5298 1748 3400 2055 2736 2821 4526 3134 3654 4268 5156 1452 1640 3649 1648 5335 3223 3480 1017 4348 79 713 4527 142 2386 4704 4451 1291 4439 4351 4194 3139 4065 2415 2409 1861 4900 581 1852 1954 3573 5114 1376 1535 1949 2298 80 1746 1944 4005 2416 1742 780 2739 869 5196 4270 1228 4449 4448 4201 4200 4124 3315 1862 1947 942 2166 1373 287 1231 5230 2049 81 1018 3226 4266 2623 3024 82 1302 836 4347 1164 4902 4196 4777 4846 5019 4768 1455 2422 1751 4707 4610 5115 2301 3741 1752 1641 3657 4708 457 377 4443 1451 1642 5069 4710 3314 5232 2053 2523 4903 4532 1546 1853 4904 520 4264 3225 3844 5397 1331 4905 5020 2742 585 2161 4356 1756 1755 4450 4901 455 2056 521 2826 2163 4357 5352 1856 4361 2294 5363 1860 1543 83 1300 583 586 1454 5070 2414 1538 5112 4852 4974 4012 837 4447 3146 1903 1019 2747 5300 2427 4623 4713 4714 2828 3407 2738 3655 4772 4015 4773 524 2829 3316 4625 1863 1384 4537 3409 1541 2420 4774 4779 4014 3746 4617 3663 4620 3747 4908 3025 2526 4350 3748 4712 3581 2434 1659 4775 1960 5021 379 3028 4271 3749 1305 288 945 4008 4622 2750 4203 3658 1232 522 2933 3845 4368 4910 3482 2532 4363 5274 3852 1754 4619 1306 3486 2629 1055 4131 5371 4365 4370 3031 5392 84 3410 4278 588 3849 2827 2437 31 4907 289 2744 4070 3580 2530 1022 291 3229 1456 1544 1965 4628 382 2439 1656 2631 5393 4630 87 1023 5199 1236 2940 2636 4785 2073 3662 4853 5075 5161 2441 5372 1382 2748 4359 5076 5023 4711 4716 5159 4202 1385 871 4633 1662 5160 2182 4459 148 783 2062 2937 4374 4133 2431 150 3664 4023 2539 152 1763 3406 153 290 3944 872 5200 4786 2176 3324 4134 224 4280 3584 1660 3325 5071 4275 1961 4632 5365 2323 2633 2446 2533 2756 4364 2324 4976 3942 4069 1557 2943 1972 2067 1558 5201 5073 4071 156 3048 2325 3758 1383 727 2173 3037 5275 3861 1168 1392 2187 2637 2538 805 3586 295 3587 2542 2642 4283 296 4538 1463 1239 4917 2644 2440 5072 4019 4541 5118 4784 4367 1309 385 4369 2947 3234 4637 2435 387 162 4783 3414 3333 806 2177 1240 2442 4914 4720 4791 1974 5024 3415 3329 3862 1310 4920 4380 4978 33 1460 1663 5079 297 1968 4854 3236 4375 2183 1024 5202 3159 4209 4552 163 4858 1765 5373 5198 2077 5164 4021 3056 5203 2552 1169 4549 3057 3865 2200 4210 5081 1566 3044 4211 4030 4073 1390 677 38 528 4022 4135 4282 92 3492 5166 2641 4641 2083 1559 2334 4856 2326 3676 4289 4634 3061 1565 3677 4921 3050 2449 3331 4383 2652 853 4861 1776 5379 2643 3759 5080 4983 4723 299 3239 2837 4918 3161 875 2506 2645 5204 3413 4919 5077 4635 4078 4468 5121 3672 5303 5123 166 3867 4638 5395 2201 4925 3340 4026 1563 1466 3330 2204 2845 233 391 2559 4860 3242 3068 4136 4982 3165 5340 460 2211 2455 5366 3670 4725 3158 304 306 1311 234 4928 4981 2761 4639 2088 4726 1071 2337 4987 1782 4287 5124 4793 3342 3123 3163 307 4033 2846 2660 2458 4727 2212 5167 169 1783 5205 5087 390 1977 1784 3675 5083 5165 4034 5304 532 4473 303 2213 3062 4474 5088 1777 3761 4037 393 5278 3240 2207 876 2662 463 2214 2208 1434 3686 3338 1568 3167 4989 4559 241 4730 2338 5356 5374 3868 1348 5125 597 3171 2202 2093 534 5237 2567 310 2667 2560 2461 395 1668 4795 2094 5326 3769 3424 3243 1978 5207 4930 3425 2087 4986 3872 5168 3501 2663 4731 3250 2096 4384 240 2563 1979 5325 2671 5256 2459 2468 5238 2774 4929 3388 3688 3684 1100 3961 5086 1395 3076 4143 4647 5206 2471 4479 2344 3767 49 2562 1984 3073 538 3168 4735 3344 4217 2219 662 1083 3347 103 3773 3503 50 3770 1988 4931 4148 5389 2864 105 5375 2101 5130 4393 935 3775 2865 3594 107 1788 3507 2773 2221 1883 5280 4866 177 181 2355 2771 1014 402 4142 2677 2349 1475 5281 5398 5343 3691 251 321 53 322 3261 4218 2680 1985 4990 183 5173 2360 1672 320 5367 3777 254 253 5279 3689 5399 1315 939 864 2681 5259 326 4085 3078 108 3774 5132 256 3264 2102 472 4569 4150 4736 4993 3257 3693 4394 4872 1638 667 2966 5282 2576 4568 1792 2475 2777 1989 1449 4149 1243 1399 474 3700 2873 5176 3182 55 5368 1571 3427 4090 1572 4808 1790 3270 5239 4487 741 3272 3399 5175 5390 57 331 3516 2229 5091 1647 3517 2874 5133 4936 1577 4655 3968 3267 1890 2881 4095 4810 4937 3275 3357 2583 3354 3358 682 3710 478 2111 2369 3271 5400 3084 62 3606 3607 1476 1029 3853 3356 412 4013 3360 3442 1098 3437 2688 4152 611 5344 2979 3183 5286 4041 3440 612 2529 3274 5214 3276 113 2692 482 3885 3751 3280 3610 2585 4042 5042 3361 674 3712 1580 3609 3714 3283 4044 676 3089 3445 3446 4878 5308 1025 4880 5386 1561 1676 551 2986 3091 5289 3613 1795 2790 4812 3531 3893 3891 3612 2695 4157 3092 5309 3894 3095 1027 118 2373 1582 3096 4407 2588 4158 2589 5216 2376 5217 3452
429 278
9 1675 3 5 212 363
767 144 852 5150 1843 866 259 479 61 1867 413 265 334 2309 3755 645212 4084 4996 4656 372 222 27 223 1072 231 100 398 4339 540 1095 3327 1775 4292 3428 3703
2113 1892
0
.02
.04 leverage
.06
.08
In der Grafik gibt es kein Kovariaten-Muster, dass in beiden Dimensionen gleichzeitig auffällig wäre. Das Kovariaten-Muster mit der Nummer 2233 hat allerdings eine sehr hohe positive Diskrepanz und zwei weitere haben außerordentlich hohe negative Diskrepanzen, Es gibt auch eine Reihe von Mustern, deren Leverage-Werte mehr
10.4 Diagnostik der logistischen Regression
| 385
als dreimal so groß sind wie der Durchschnitt. Wenn wir die Beobachtungen mit hoher Diskrepanz auflisten, . list cpatt2 hhnr2009 owner age hhinc east rel2head > if abs(spres)>6 & !mi(spres) cpatt2
hhnr2009
owner
age
hhinc
east
rel2head
1892 2113 2233
140421 140421 156321
0 0 1
41 43 45
441428 441428 583
0 0 0
Partner Head Head
1462. 1649. 1748.
sehen wir, dass zwei der Muster von Beobachtungen aus einem Haushalt mit sehr großem Haushaltseinkommen stammen, der über kein Wohneigentum verfügt. Muster 2233 stammt von einer Person mit Wohneigentum, die ein geradezu mickriges Haushaltseinkommen hat. Wenn wir Zugang zu den Originalfragebögen hätten, würden wir diese nun heraussuchen und prüfen, ob ein Dateneingabefehler vorliegt. Auch die Kovariaten-Muster mit hohem Leverage sollten einer näheren Analyse unterzogen werden. Anhand von . gen high = leverage > `c' if !mi(leverage) (4 missing values generated) . tabstat owner age hhinc east, by(high) Summary statistics: mean by categories of: high high
owner
age
hhinc
east
0 1
.5273474 .56
49.66903 33.28
37103.64 42113.8
.2462199 .48
Total
.5276493
49.51748
37149.97
.2483817
sehen wir, dass diese Beobachtungen überdurchschnittlich häufig junge Ostdeutsche mit hohen Einkommen sind. In der linearen Regression wurde der Einfluss einzelner Beobachtungen auf das Regressionsergebnis durch „Cook’s D“ bestimmt (Abschn. 9.3.1.2). Dabei handelte es sich um die Multiplikation von Leverage und Diskrepanz. Eine analoge Maßzahl der logistischen Regression ist Δβ =
2 rP(j)
(1 − hj )2 ⏟ Diskrepanz
×
h⏟j
(10.14)
Leverage
mit hj als den Werten für den Leverage. Diese Maßzahl erhalten Sie mit . predict db, dbeta
Als grafische Darstellung für Δβ wird meistens ein Scatterplot von Δβ gegen die vorhergesagten Wahrscheinlichkeiten verwendet, wobei für Beobachtungen mit „Er-
386 | 10 Regressionsmodelle für kategoriale abhängige Variablen folg“ andere Farben oder Symbole verwendet werden als für diejenigen mit „Misserfolg“. Für Letzteres leistet der separate-Befehl eine gute Hilfe:¹⁷
.2
. separate db, by(owner) . scatter db0 db1 Phat, mlab(cpatt2 cpatt2)
.15
767
3703 3428
4292
9
.1
1775 144 3327 1095 852 5150 4339
2233
.05
1843 866 540 1072 398 100 1867 231 259 479 3755 61 334 413 265 2309
0
2113 1892 14050 223 27 5044 372 222 4309 275 4999 408464 3100 2236 1174 2696 4996 5212 4310 3984 24 4656 3452 3900 5098 2697 123 4013 4311 3751 1582 2376 551 5217 2487 3454 3853 2891 118 5216 2529 2588 674 363 1027 2589 5245 2114 1246 3399 4816 212 3388 3891 1561 1895 5400 4945 4407 3612 3808 1025 5386 1034 676 5309 2373 4238 5286 4818 696 815 113 4158 1676 3096 4878 5390 436 482 5289 3095 3293 320 2379 5389 225 2695 4883 208 3609 1029 612 177 2378 611 1098 3446 3445 3370 570 412 1647 682 1580 360 1795 3123 5 762 1675 1896 2790 958 5308 760 2506 331 1449 701 1638 55 5396 240 5399 5266 741 705 821 1348 5091 5246 5398 3183 2593 4157 439 474478 3092 5239 3091 5182 4104 3357 3725 3894 4583 4948 393 4584 303 4812 3084 667 108 5344 390 73 256 25942597 472 326 5325 939 5176 3893 253 254 864 183 5046 2699 4949 2873 449 5395 5184 322 251 4673 5139 5381 574 321 1014 213 181 4655 3204 107 5042 1181 402 4880 5 935 105 5 053 5368 5256 1883 3531 2986 3089 8 1083 528 103 5282 49 3613 33 662 1577 1434 5214 1 476 538 5100 5313 2692 5279 3427 3542 3700 364 1489 5175 3283 5303 2492 4888 5168 5133 1325 174 5367 5086 3108 3907 4568 310 4394 1890 5379 597 534 241 4931 5361 1071 901 1903 290 4 63 783 2381 5375 4243 2585 2369 532 169 5165 1243 4044 2688 307 3812 131 234 2895 289 306 3774 1121 304 1808 909 5 88 53735374 4218 460 3714 714 981 233 5343 2979 5278 3689 2771 1399 3610 3629 853 166 5304 3905 215219 2111 4588 1410 4042 522 3712 3 1188 379 299 3361 17 1902 1054 12 5207 4142 1572 2229 92 38 1571 5198 1321 1792 3280 5055 841 14841493 5185 3885 5051 1053 163 4163 3379 2562 4504 1590 5077 5206 583 3276 10381045 4820 297 1790 1898 3594 4674 2386 455 1259 162 5259 1100 1254 4748 4393 4937 1315 387391395 3274 3360 3544 4164 5125 3775 2117 214 2800 776 2663 3442 727 4041 377 296 5281 2583 369 4957 295 3440 2124 156 1475 4384 2202 3168 1565 2881 16 1672 5280 4152 1253 4919 4918 5356 3773 5393 4810 3437 771 287288 4872 4936 4954 224 4930 2338 1055 1417 152 153 5072 1695 150 3356 3275 5004 2122 5371 5024 4479 3607 3358 2011 148 4217 3606 5366 3908 1120 142 720 4639 5204 3271 910 779 1056 5397 48564860 512 1 8 1331 1337 87 3547 5167 1989 915 789 5071 5326 4795 4143 140 382385 291 31 876 3710 5392 5132 3354 4638 5173 2204 4413 647 4736 5054 4503 4854 4635 2201 38133816 5101 4593 2874 3911 4866 2455 3378 3993 837 4808 450 1138 5202 4634 974 2392 5340 5083 3167 3968 5225 4250 524 1 262 5 164 5080 4982 2846 4095 3470 1263 4783 1383 1765 875 1788 3267 3994 3761 4559 677 370 9 14 586 4986 3675 136 4 166 5121 4929 3272 4753 3517 19 371 4592 712 8384 5300 4993 3631 585 521 2102 3516 2475 446 836 5230 4247 520 1067 5238 2334 4487 3270 1412 4890 1811 1705 1069 3163 4149 44154418 137 217 5250 1700 5112 1048 1333 452 3182 5106 457 838 5189 4026 1395 2360 3818 780 1068 5372 5365 5130 1985 20 3670 1019 2576 1807 593 2777 1593 82 4034 1490 5141 45384549 4990 2007 5006 81 1073 2837 284 3633 911 4981 3330 713 581 78 2906 5118 80 5142 7 24 5237 4033 21 453 1195 4369 1988 4711 4367 2177 4090 4421 4022 2681 2993 3628 769 1707 1074 4978 1305 2101 79 2601 5160 4 021 2966 2221 5349 5298 1710 5159 4647 376 1 270 2355 49564959 2505 4364 4920 2435 4747 32973302 1603 5073 1544 2242 138 4775 404 2173 3728 26 2 2805 5 5058 1918 1984 2680 4749 840 5391 5232 4774 4275 4917 2008 1338 3556 4619 4569 3693 2349 451 375 1499 4826 3998 5335 4772 4773 4921 4793 5 205 2994 141 77 4 172 805806 3257 286 4359 4 078 4330 3078 22432248 139 2710 5351 903 23 3996 1920 4727 2542 778 22 5350 846 4617 2533 3264 710 5363 4202 5023 4726 1311 3777 2677 1024 2219 220 2708 3002 597 3007 1917 4976 4914 4135 1668 516 4725 4637 1568 1127 4324 1261 5251 728 2637 4507 2134 1435 1221 4150 51925195 4 768 5 275 447 143 991 3691 1979 515 378 919 5352 2997 4823 849 4350 4723 1538 5124 1169 517 1919 872 2773 3548 2 18 2255 4447 5088 2756 4085 443 4255 1921 1228 3329 2 344 2096 74 3299 1504 3732 2144 855 4610 4632 3406 2937 1543 2539 1466 221 3826 5317 5087 871 1784 3261 5203 1978 4329 33843387 4508 4898 12641271 4180 1364 4784 1777 2865 4680 1139 658 3507 1783 2810 926928 4716 1373 3770 2087 2471 4443 4907 4910 3849 5123 2094 2864 519 4181 4008 4720 1336 11961205 916 1507 4837 1063 5271 1291 2827 4989 4735 1240 1782 367 368 135 4681 5296 5231 1443 4853 1856 1563 2459 511 134 1592 3005 4 264 3845 3503 2093 2468 5377 1064 4840 1616 1615 5274 4908 4468 4071 1 390 3210 1065 4347 4974 1853 4287 1168 3767 1239 133 4595 4599 1422 990 5252 1000 5020 4628 4459 1310 3912 2012 1696 4896 584 590 23982405 2261 1522 2933 366 216 3 1066 011 4439 1618 5201 1977 3344 3073 2563 4427 4967 25082511 4987 1023 1697 857 4196 2532 3684 1 309 1339 1 911 4605 4901 3025 1559 2207 2208 5110 4970 5019 4541 797 4731 2214 959 2998 1340 3558 4695 1208 4184 4336 5200 4712 3944 2671 15 3380 4168 5108 4177 4691 735 4905 1011 4622 3316 5081 1 4 4169 5294 4115 4342 1928 945 2560 1566 2774 4513 4194 4903 4904 1727 4928 1 804 460 4148 2213 2461 4825 4960 5008 1144120 929 5299 1091 1096 4248 5144 5107 4521 2721 5199 4365 4375 5 4282 079 1229 4136 3868 362 4170 2809 1062 5016 1009 4363 1375 1776 2088 76 1915 1502 1822 4762 4902 795 1625 1746 4983 2212 75 13 4058 3923 383 13451361 3 4003 3214 927 1836 1165 4730 3076 3347 2391 1198 44324440 147 2920 794 1530 4925 3243 2337 1392 11 3637 5059 2254 4179 4767 4846 51615166 936 1374 2567 5378 5145 4601 4116 1141 2 271 1532 3580 2667 3469 28 4602 3125 1001 10021010 1075 4203 1292 4209 1663 1463 10 5146 5065 2612 4900 4620 1284 1448 2600 145 2136 1600 155 5014 5383 1076 1236 3338 1905 1501 933 4708 1949 3240 3924 4966 4 1145 334 3013 2720 4343 1153 2513 4707 3062 2458 380 845 4841 1070 5066 3016 1078 4073 1093 1385 2211 2662 2803 4323 4 686 29 5148 4190 21522158 4532 1629 1087 4861 3961 5388 4109 4687 5149 4842 1428 1276 5384 862 1230 1382 2761 3915 5334 4118 2813 861 2038 4357 4014 1232 3688 4 5010 897 1419 4257 226 5155 1731 4356 5076 3746 2826 5382 4424 2 014 5 348 303234 5015 2039 5075 1633 3146 1968 2077 1557 1558 3250 5362 1421 85 4765 3213 3128 1156 2514 5336 2040 1636 4473 4474 2326 1 30132 5011 5063 4000 146 8688 4971 3929 4704 4012 942 3759 869 3158 2660 759 53165318 5064 988 4843 4520 1217 1845 1637 4858 1660 2449 2845 549 210 4598 5315 3828 5297 4836 1279 4524 4703 1226 2623 1453 1456 2645 2083 5 191 4063 1210 386 4766 3563 4450 1151 4069 4019 2183 1 2643 306 440 4112 2129 1817 4426 4332 4062 4117 4697 1266 4002 5196 4263 2816 4448 4449 4271 3 413 3 3425 872 1344 4607 3 216 3424 3171 71 292 4845 4527 2290 3225 1763 2641 5104 4756 2141 89 4526 1012 1741 17441759 34923501 3331 3769 2559 4758 5062 149 5153 3639 36403648 1214 1215 3393 1831 656 2281 3050 211 4 4425 252 5295 4611 1212 90 3024 3942 1017 4791 1300 1656 10181022 1961 1974 2200 278 70 5005 2400 151 41224126 4189 3392 3017 3840 3564 4444 2814 4348 2067 458 154 4899 1273 2 5115 3019 1927 28 5070 5021 1651 3044 2442 3552 52285229 4510 4759 4 832 592 384 1275 1613 5156 5319 530 1274 4 037 5347 5227 3831 4261 39 4267 1085 2440 1662 3686 25022507 5293 4692 4060 293 2024 4839 4700 5301 4972 1457 129 4423 4828 4835 4341 4266 5069 1362 3315 1643 1 541 1386 5314 50185022 43464353 5364 165 5254 2286 1454 1754 2062 2 176 5194 157 1349 4193 2820 2521 2947 25382552 1384 1972 594 294 2269 1280 1 521 230 1079 3218 1089 4552 4383 2652 3342 3 72 61 5188 4253 4690 2 018 5193 158 159 1429 3476 300 5302 4786 3664 943 4113 5009 1607 4763 5154 301 1285 3568 938 2410 2633 4693 1823 4838 160 4606 1061 4438 2819 2282 3852 1451 3037 1652 3068 5333 4833 1425 3474 591 1515 4260 161 4124 1286 3662 2164 867 2943 2431 3165 5152 4761 25102516 3934 3569 4621 4785 3324 941 3325 4289 283 5387 3919 4 29192925 259 4192 5068 1281 4778 1090 1376 1863 2296 1231 1956 2187 3242 7 5151 4337 1608 35 655661 1523 392397 4529 5233 282 5105 4430 4831 4335 17131722 4603 653 5067 2028 4 123 4065 1724 4066 3396 5253 3658 1642 2291 6 5186 4764 3641 459461 4614 4705 1726 1524 1088 1641 2165 2748 1955 1302 3161 3340 4111 4514 298 227 36 4005 596 1439 1860 1094 2530 2631 4380 4 4211 870 1659 210 3867 2325 4830 2021 4516 2262 529531 388 91 37 4847 3844 4852 2518 2617 3651 2931 3482 1535 46334641 2940 2744 3239 3061 1462 5346 41714175 4433 5147 2022 51115114 2509 4064 4258 164 4849 5272 3566 3567 170 4779 3655 1372 2324 128 4958 3636 1144 2921 5113 1730 1835 4127 3841 308 1289 1290 4630 2622 2624 10921097 2629 2423 1965 2323 5049 2139 843 4515 5017 4188 4445 1442 1837 1436 2033 237 3031 1016 1550 4322 3921 4333 3303 4434 3562 2406 4446 3741 1623 238246 1742 3144 2056 2526 2824 2420 2417 4 2073 2182 030 3057 1767 429 127 5143 5109 4604 2610 854 4187 229 1146 2151 1719 1444 5273 1084 3740 49114922 1640 4782 3143 3028 4283 2528 1455 2446 3677 2644 3056 5270 4506 2713 650 4517 3736 389394 1355 1082 1528 2053 2161 2294 2163 2414 1546 3676 2642 1922 4186 3932 2407 5157 4528 2614 1287 4713 4714 45 2738 3224 2306 1553 52915292 3730 4755 2714 1202 4844 787 1614 302 232 2275 93 94 1077 1225 1369 309 173 3571 1852 1947 5025 2934 3865 3159 3006 5013 1617 859 1830 5197 4777 1223 1634 117 1944 2049 4362 4629 4374 2432 5290 4327 1199 2258 792 3649 3215 1157 1840 734 1630 4625 1735 4009 4715 1294 1295 5338 4280 1960 2061 2311 1872 5052 5190 4894 4895 2260 4436 4518 4699 5116 1 95 4531 2037 67 4623 1631 5320 5337 4067 3848 2523 1298 5120 3236 5226 4176 4511 4969 4519 183 1926 7 30 3475 305311 1006 2277 4710 4851 4454 1296 3854 3317 1755 1756 2305 2441 4505 3914 983 4338 4968 2145 4 1925 769 3018 1220 40 1525 1732 4537 3032 3862 2313 2076 5269 5061 2907 3212 5 012 2264 4522 931 3645 1723 235 96 41 2046 1635 5 255 3576 3 3404 3405 660 1452 3033 2938 3415 3333 3234 2064 4591 5187 46844694 917920 1418 41854195 3833 3834 595 858 1825 2404 2730 168 1621 97 1526 5074 5321 315 4370 39403946 3851 3483 5078 4134 3034 1166 2439 3414 3004 2808 2251 2252 4331 4523 1059 4608 1346 790 4770 3391 3139 1527 1529 1639 4368 4366 4460 1299 1751 3035 1752 2437 3048 2541 69 4173 3925 381 4340 4437 4771 1004 2 1154 149 1218 1445 4352 1624 1626 736 5026 4278 1297 4458 4540 4631 4133 3147 3861 2832 1393 5268 5249 4965 2715 2268 3309 3394 1216 3133 657 236 1622 2821 42 1737 536 537 5322 1446 1447 1537 247 5380 4787 2749 3587 2636 1020 207209 2905 2911 3 9263930 4609 4701 1152 732 3737 533 462 3020 4269 4355 239 2041 1627 1628 1941 1533 1740 601 3148 3149 3758 2830 1233 3586 3830 4061 3015 33113314 4973 41284130 1935 9 1013 8 1227 51635169 4371 1648 1377 4023 36653671 3323 2946 2436 2544 2447 4502 3 118 2605 3922 4964 3304 3561 31313134 4702 2030 1359 1440 3395 733 1838 1934 2280 464 860 171 5 43 1158 158 1539 4542 4636 1301 3038 1235 2193 2 3550 4110 4963 4174 842 844 7 4345 1606 996 88 2270 998 999 4441 2267 1358 1438 1520 1931 4906 2926 2035 659 598 535 465 242 172 4453 2156 44 46 4361 4913 602 467 4131 178 106 2434 2834 2757 1313 4501 5140 5007 2913 851 1725 2615 3397 2616 2928 660 599 4007 4624 1293 1536 5323 4070 5353 1862 4462 3584 2944 2945 2948 125 5248 5 224 50575060 3997 3918 4962 3824 4059 527 995 4525 4612 4613 4706 1834 1932 4848 3478 396399 2157 11621164 1943 53395341 1748 4373 3752 1378 1379 3040 2335 5312 5103 4108 4422 4961 1510 927930 1272 1832 4776 466468 312 1086 1734 9 2159 4627 2048 9 1857 1645 1646 1861 3 5082 1380 859 3154 2840 1973 2453 3823 4834 3999 3734 3832 3389 993 4698 1352 4451 1936 3137 3937 1842 2520 1161 1160 1371 1745 1747 539 1540 2427 4279 4464 3860 4790 3 1303 1304 4883496 4320 4 955 47504754 4594 28122815 1350 1718 2150 2515 4850 3479 4975 313 4272 4360 175 1738 4 4916 855 5324 1954 52 2750 4463 4465 4072 4548 5085 2189 1 24 4319 5102 5056 3917 4419 4420 3472 925 1060 2722 1432 1433 1612 1716 1717 2029 2153 2036 4351 3135 1938 600 1159 314 243 244 176 4457 2287 47 5234 739 1649 1650 1542 182 1381 1237 2448 1785 355 3916 4251 3920 4760 786 1201 3305 924 989 1142 1267 1269 1268 2723 1828 1715 4615 4616 4618 1008 4270 4909 2822 1940 1844 51195122 48 2051 5276 1644 4024 4640 3757 5394 2328 2329 280 5053 726 4696 1058 1140 1207 3638 1610 2402 2276 1007 3652 1288 1370 245 1848 1 4015 01 1951 798 2166 2301 1749 1545 4470 2950 2839 28412851 3156 2331 2194 2195 5221 3 1132 3559 731 2256 3014 1427 3129 1714 2027 2147 2724 731 4349 934 47094718 1224 3221 737 3846 2619 2621 102 5162 1743 3486 2747 3410 5354 5355 4379 3952 2091 4821 3821 4827 4829 4757 716725 3386 1709 3130 1924 4442 2278 4268 1081 4200 4201 2042 863 796 4912 1534 248 249 1855 2055 3749 1953 2422 2829 325 255 1547 4285 4551 3047 1388 2764 2654 5223 41054107 4244 5050 3995 973 982 1137 2915 1343 3390 3835 932 4530 1368 2043 2044 2045 2932 1531 316 250 1854 104109 3747 3748 664 665 2828 1753 1653 1548 1549 3954 4028 4862 1387 1307 5342 2647 432 68 4677 649 918 1505 1136 1708 1913 1605 3836 729 4199 1222 3572 3939 1739 4204 317 318 319 2293 1858 36633672 2298 3581 5 42546 1551 4027 4728 3238 2955 1026 3114 2599 1117 3385 1204 1265 2716 1511 1604 3931 791793 4265 1080 4 198 2 154 1736 1849 1850 1851 1946 1948 1 2413 4543 2295 1859 4 79 3409 2742 5235 788 1750 666 1654 1655 1552 4077 1459 2085 2460 5247 4953 2390 523 4689 3121 1503 1342 2132 1509 2142 654 1005 2155 1632 3481 738740 3023 3744 1846 1847 40684074 1945 4277 4372 4461 180 2416 2297 3407 4722 5277 4555 4137 4643 4863 3673 3762 3337 3 2956 066 2852 4893 908 1327 4824 587 839 1128 1500 3119 1602 4344 4262 2923 2728 1283 4452 4780 937 2160 3402 3574 3745 3941 663 603604 2050 469 400 401 2415 977 1950 2299 2167 4857 800 1757 1657 39583959 285 1413 3551 4688 718 2608 2395 4435 856 3839 4125 1367 2284 2285 1 4781 1942 733 2825 470 2052 2419 1952 51 865 1864 1957 5170 1758 1761 1658 5 4932 1389 089 3678 2651 2960 2961 279 4892 4246 456 4685 582 3729 1916 652 3644 1003 1155 1219 2732 4197 1365 1366 4354 3659 4208 2625 2054 2169 2059 1865 1866 1868 1958 1869 1760 1762 1661 1554 4290 1308 2954 3500 1171 709 3382 4512 2609 2135 1282 2733 1363 2734 4533 4534 2047 2289 3657 3403 3026 49154923 2935 2739 323 2 52 1959 1764 4385 1461 1556 1560 1464 2342 5222 3811 4416 4891 4321 4822 781 1130 2607 2017 2807 1820 1821 4431 3310 1150 3646 3 3933 132 2519 4535 4626 2411 3661 2162 4132 2741 324 2057 184 2424 2425 4859 606 1870 1871 1664 4560 1391 5047 5003 4683 1125 4509 4428 4429 5 26 997 1148 1149 2818 1841 4358 4536 2288 2522 32263229 3029 541 4979 4980 403 2171 1873 1874 1766 36793690 3067 1172 122 3910 4500 4055 4682 3913 454 3001 45964600 2806 2016 1909 1147 1278 1360 3647 4006 3935 2736 4717 1015 2292 4017 2743 110 2426 2174 5236 4985 5030 1962 1769 1555 3420 2853 3248 1881 2224 52655267 5 5220 219 2799 4 3381 4752 751 1192 1052 1194 1124 2503 1415 1416 1598 994 1213 1441 3 3312 2927 565 1939 3654 3573 4455 4456 4539 4719 3857 3943 471 405 2168 2531 4467 2058 2428 2060 2307 2066 1963 5305 1768 3 1242 2854 166 2855 2356 6 7 5183 1491 4679 374 580 1191 4256 850 1211 1356 1357 1619 1620 3936 3021 3480 2620 2412 940 799 3322 2300 4469 2170 185 5084 2430 4927 2178 2071 5171 1964 1770 1876 1562 4563 1467 2964 421 4678 3634 978 1051 913 1049 1334 1699 1277 1437 1519 1729 3477 3217 1839 3136 3738 3 1937 843 3400 3223 2524 2418 801802 2302 543 2303 5027 5028 186 111 2310 2063 2065 2179 5257 5127 2072 1966 1967 58 1772 1774 1564 1465 3071 3595 1569 1314 2359 1575 4 887 1123 1258 2903 4254 41824191 4119 4121 1354 1728 33133318 3138 2283 4273 2735 4274 2421 4721 4789 3227 3666 3945 544 406 2831 2304 3 4378 2172 187 2536 2175 27 2312 2068 2069 2070 2181 2074 1969 1875 1970 1771 1666 1667 3598 3346 1470 2894 835 977 1 047 4325 4326 4328 525 785 848 921 922 923 992 1143 1209 1351 1353 3650 3022 3222 2930 1163 3151 605 3947 4284 2308 188 2634 5029 2537 54 2314 1971 5357 1665 2361 3377 3992 4590 2898 448 833 834 2249 1187 1816 2902 1904 4178 651 8 47 1057 4004 1720 1721 1933 3742 3570 2618 3653 3220 2929 3141 4010 2823 4276 4544 4545 2525 2626 14501458 2527 3754 545 473 2751 4984 189 2180 2316 5031 2184 2075 2078 1773 1879 1778 1779 2 1173 1473 670 5002 3373 4889 3627 4746 3207 2247 3468 1330 2603 589 723 1206 1430 1431 1518 1833 2034 2279 3140 3398 3847 3142 3938 4011 4205 4206 2737 2627 2628 4724 668 3756 4792 607 3949 3228 3152 3951 2429 475 2433 4075 3039 4924 4382 257 2753 190 4554 4556 4557 5 4933 2319 126 2185 2186 2079 2080 1877 1975 4800 1880 5036 5283 1669 2860 2968 5099 42424245 4676 2897 4589 1329 2901 784 1347 1516 3837 1517 38383842 1929 1930 2032 3219 4129 4207 2740 4546 2630 3489 608 2534 407 4926 2754 258 2438 2755 191193194 2315 5 2318 2320 5208 6 2188 262 2081 192 5385 35053515 3596 1671 2571 2103 2870 66 4581 3906 4952 3467 3375 578579 1116 832 972 648 721 722 987 4001 3928 1611 37353739 2031 3401 3850 3027 2939 2745 2746 4547 2535 3668 408 2949 328 329 330 2835 2443 2444 2321 2322 2190 2191 2192 5327 19761980 1878 2862 3349 3260 3262 1673 2478 1400 1993 3623 4241 4675 514 577 971 576 774 969 3115 4249 985 986 1513 1514 1826 1827 1829 2273 2274 24082409 2517 3656 3743 3145 2936 4466 2632 3585 3669 3231 476 409 3043 4988 4558 2445 2640 5128 2546 5172 2450 2327 2330 671675 2196 2198 2082 2199 264 5376 5284 1469 1471 2357 5218 445 968 642645 2497 717 719 782 1426 1609 3642 3643 2817 3575 3577 3319 3030 4281 4376 4377 4550 2635 3760 3588 4029 3046 260 2543 4729 2333 2332 2197 2336 480 2084 2205 1780 2089 1781 4297 3692 4299 1472 1787 4950 4951 703 4054 2010 1326 1134 1135 1203 3829 1824 2729 3320 3855 3578 3856 3321 4 016 3036 2941 2942 4471 4553 4642 2752 609 6 547 3864 4079 410 69 3051 2952 4386 2545 4472 12341238 2760 2547 112 59 60 5129 2451 2549 5033 52585260 2210 2090 3966 2577 2107 2367 5000 50455048 4884 5001 4886 4240 2705 830 1494 1042 2389 2245 4056 518 4057 1133 1200 3827 1423 1424 1512 1 2026 923 2148 2727 2924 3579 3484 3750 4018 4020 4381 868 670 3674 2758 3494 4 3233 2638 411 2639 4864 3157 4214 4291 794 2842 2843 4561 2844 2548 4867 2550 2551 5131 2206 2092 1981 1982 1885 1397 3780 2866 2877 4885 3374 4162 4317 4318 1041 1495 1810 1131 3825 1 420 1711 1712 2025 2403 2512 2725 2726 3485 3408 3858 3150 4286 2833 803 2836 4644 4645 46464648 2838 3334 477 4080 2759 3235 3237 4081 3053 261 2646 4798 2762 2553 2554 2555 2454 2456 2209 2097 19871990 4219 1886 1398 1789 2778 3520 2362 2878 44144417 1113 1039 4167 1324 373 1260 3733 1508 3560 2146 2401 2922 3582 3948 3326 4025 3153 1167 3041 3042 3495 3764 3417 4215 4796 3055 263 3059 3060 4477 2648 4732 63 5032 5034 2649 4733 2763 2650 1021 2653 2557 2556 2558 548 2341 483 2457 2345 2098 2100 1 570 3878 3705 2580 3273 1574 4 947 4587 3909 4412 1690 3206 715 980984 1129 1197 3473 2023 2143 3307 2265 22662272 3308 2613 3667 3753 3487 3950 3411 3328 3230 4288 4212 3045 944 3049 2951 610 2953 3591 4216 2847 4865 4934 4564 4565 2765 4802 4871 5035 2655 2656 2658 2565 2462 2347 4486 1786 3604 2581 2365 1889 3464 4160 770 3822 3635 1506 1601 3306 3126 3127 2263 2611 2718 2719 3583 3490 3412 3953 3491 4076 3955 2540 4213 4138 3155 3052 3680 3681 4035 4797 2848 3339 4294 4799 3064 3065 4868 4869 2849 1099 2766 2767 5090 2657 5 613 2659 550552 5209 2661 174 416 2215 5369 2465 2095 2466 2467 2469 2470 2350 2351 2354 2222 2223 2104 2105 1474 1888 3088 4586 4052 823 2596 575 640 4165 4106 768 2383 646 3820 979 1193 3557 1599 1706 2137 2138 2140 2020 2257 2399 2259 3008 3009 3010 3012 2914 2916 2811 2917 2918 3493 3956 3957 3863 3332 4139 3232 4387 4388 672 3054 4475 673 3058 4562 414 3063 3593 3683 3766 332 3162 4801 3069 4870 4935 4649 2958 2959 2564 5210 2664 2666 2668 5285 2216 2217 2568 2218 2472 1983 1884 3351 3265 4585 762 3465 964 365 965 2120 3819 1189 1126 1190 3553 13351341 3554 1414 3555 1597 1703 1704 2019 1819 1912 1914 2397 3124 2912 2717 2317 3589 3866 3335 3336 4031 4032 3416 3497 4140 3160 4389 4476 481 3502 3164 333 415 4734 266 4038 3244 4803 2 3245 4481 4482 3070 4738 2962 4804 957 2856 2857 2768 2665 2566 5177 2770 5211 2463 2464 2346 2672 2099 2572 4087 2358 3781 3701 2226 4093 37873797 3441 4819 4582 4316 3809 3543 3203 1184 1486 3991 3817 777 9 976 1050 75 1122 1596 1701 1702 1818 3 1908 1910 3120 2253 2131 2133 211 2396 3122 3763 3590 3418 4293 3498 3499 4390 4391 4478 3241 3768 3687 4144 3247 4395 3072 4991 5037 4992 2769 5178 5092 2669 5134 2861 53065307 2348 2575 1887 3969 2363 2110 3884 1991 2879 1793 1674 2981 961 441 827 766 1252 3990 3815 644 711 3632 7 912 1046 75 1119 1332 3471 3383 1595 3300 3301 2908 2909 2910 2712 4036 3869 3682 3592 3765 3419 4141 3341 4392 484 3343 4480 3871 3246 4737 3421 4145 3423 4146 3169 4739 3170 4805 3172 2963 4740 4994 2858 3074 2859 4995 5093 5135 2772 5136 418 5240 2569 5287 2863 2570 5288 2352 2775 2220 2675 2678 2477 3879 2228 4226 2974 2880 1992 3443 1794 31853191 204 4315 4161 3372 3989 3 814 444 1044 1118 1498 3209 1594 3003 2130 1907 2393 2 2504 2711 2394 015 873 3685 3870 2452 4 3422 4295 3772 3345 4566 41474151 082 3962 3597 3249 4650 3173 3251 3174 4651 3075 4806 3252 5038 5039 5040 2673 2473 2776 2106 2366 4039 3975 29842989 4946 2489 4499 510 2595 8 2006 2494 26 513 3630 831 907 970 1328 1257 1 3298 497 2127 2128 1906 2501 2604 2606 3771 3960 485 3873 40834086 3504 4296 4 3506 4396 335 4567 195 3508 17 4 3253 3254 3175 2965 3255 873 3176 3077 3177 2674 2573 2474 2871 2225 2682 3788 1791 4877 1576 2976 1996 2687 15791581 2001 4314 4239 4053 508 509 3726 3727 3546 3549 708 773 904 905 906 1115 1043 1 3208 3117 256 1591 2 3000 2125 2250 2709 2904 013 2126 2500 3874 3963 336 4298 3776 4483 4484 3599 3426 4398 4399 4652 4653 3 5179 348 5213 5241 2676 2574 3079 2679 2578 5328 2971 2476 2683 2108 2584 3724 4817 4498 4 2490 411 4103 1180 506 3988 3545 707 902 967 2900 16941698 3 2802 1815 2999 2 116 2804 2499 707 4397 3875 3694 4485 114 3965 4400 3695 3696 4654 3876 3256 4570 3509 3258 4741 4807 3259 3178 4809 3350 553 2969 3263 3081 2579 2364 2875 4660 2684 3281 2370 2784 1401 2691 1998 3363 4 4497 410 2 240 4102 573 638 1319 3810 641643 3376 706 772 1040 1114 1812 1692 1900 1693 2123 2899 2246 1813 1814 1901 2498 2339 1170 8 742 678 74 486 1567 196 267 3778 3697 4742 3511 3179 4874 5041 3601 3602 616 3430 2970 3518 3432 5094 2867 2868 2869 3352 3266 3353 3268 5261 3181 2582 2973 3085 2227 2882 3974 4040 2782 2686 3526 3904 1407 761 2 820 1109 822 002 687 3 466 3205 3296 829 966 1112 2996 2896 3113 1409 1492 1411 1809 2385 1589 2706 2387 2801 1899 2388 1496 1691 2121 2 496 2203 2850 2340 1241 679680 337 268 3779 197 3698 4401 115 3699 4220 3510 4 3512 3513 3514 3600 4571 3702 4222 4572 4088 3704 4938 4743 4657 5 300 5095 3080 3706 5242 2872 2972 137 526252635264 3269 3435 2779 2975 4153 2783 1994 1995 5330 2689 4101 698 2380 6 1035 37 4 3295 3112 704 42 828 1 2704 1 037 1323 25982602 322 2384 2244 614 1 338 3967 4221 116 394 4402 4403 4223 3603 3877 4224 3429 4089 3431 4573 3880 4091 4092 3180 3881 3082 3083 3783 3784 3883 3785 3786 3523 3524 2876 3438 2780 53585359 2479 3277 3279 2480 2883 1997 2482 2586 2484 3369 1894 3460 571 2990 28922893 3625 3626 894 699702 3541 1 3294 108 765 639 2798 963 11851186 2495 1487 2702 2119 2382 1488 1588 1408 1806 2561 2086 2343 615 487 488 419 3970 877 3519 3707 4225 3605 3433 4094 4659 3521 4661 4096 3434 4574 4662 49394940 3355 4875 4663 3972 3971 5096 4097 3973 3789 3790 5329 3791 3525 2781 2982 2787 4409 3903 4159 3 753 3201 9863987 2239 3624 70027012703 1248 1249 754 3111 2991 29922995 900 1110 962 1183 1689 1111 1485 3964 807 2 3782 69 4658 3708 3882 3709 3522 4876 3436 4664 3439 4 4666 4303 3086 4667 3886 3608 3087 3713 3792 301 3527 3715 3447 2685 3528 3448 4304 2985 4491 2483 2 2231 371 1796 4051 3620 281 3539 31073109 1684 437 1033 3371 3202 3110 507 897 898 1036 899 764 825 1320 960 1182 2493 20052009 1804 1805 1312 1468 554 1882 1 4744 4665 4488 17 4745 3359 4879 3278 4489 2977 3887 3184 2978 5215 3977 3978 2884 3530 2690 3282 3186 3090 2885 2788 4404 1402 4408 4312 4313 3902 568 503 3199 3463 1585 635 763 700 895 1250 896 824 1897 2003 12511255 1 2004 1688 587 1396 1670 1028 743 744 420 555 4302 4811 4227 3711 3793 3444 4154 4155 4997 2980 3888 3284 3285 2230 2988 2232 3368 3985 3805 502 3806 3458 3807 3621 3198 3292 3622 126 3540 3461 3462 1682 1106 814 2797 758 572 1685 505 1179 2241 21162118 819 1686 2353 878 879 339 4668 4669 3976 3794 4670 3529 4043 3795 2983 4046 4228 5370 2785 3890 2786 2693 2694 3532 3533 3189 3093 2791 3901 1176 3723 206 3200 1405 888 697 755 756 1586 2491 1483 1406 817 757 818 1986 3796 5 3611 4942 5180 5138 4671 4229 3 331 3892 4098 362 4576 2789 3450 3717 3451 2372 2112 3286 3102 3804 3197 3538 2796 3459 2698 3106 1800 954 752 633 1104 695 893 636 2967 489 119 4045 4941 4490 3889 3614 3716 5243 4813 3187 4230 4492 4231 2987 4047 5332 3188 3798 3799 4308 2587 5311 3456 353 2592 1480 631 205 2488 2000 1683 1584 1482 889 2115 890 18021803 957 359 891 634 1107 892 681 745 65 5181 4156 4575 3979 5043 3615 3449 3534 4577 30943097 4405 4494 3895 3800 3980 2374 3364 3365 3899 1680 3455 3103 3457 3104 3105 1175 1479 356 501 2238 1105 1801 8 955 358 1317 956 504 1318 13816 1 573 4 90 5310 4232 5360 3616 3190 5345 3287 4578 4 4306 4307 3896 672 2375 2792 2485 16781681 3291 2590 3196 2795 2591 1102 567 1177 1247 569 1799 1404 435438 1178 1481 632 694 1032 1103 2109 4493 4943 4305 4944 4406 3718 3288 3801 3192 30983099 1893 3195 2486 1403 629 500 630 812 433 693 434 357 8 953 87 2368 1316 340 4 91 4495 4579 4048 2793 2794 3289 885 3101 1679 352 3 1031 54 2481 1578 556 4814 4815 3719 2886 2887 3193 3983 883 498 2890 6 1245 1798 626 951952 564 430 499 627 91 565 566 811 628 886 431 746 617 3198 2888 802 1797 3803 3194 2 884 621 562 349 1 1583 950 563 351 1101 237 623 624 692 478 625 3617 3535 4049 3720 1677 3898 3290 880 881 810 347 426 496 1030 497 689 620 751 427 9 882 348 690 350 276 277 428 622 49 808 946 3536 3721 4099 3618 3366 3722 4496 3981 4580 1891 3619 2377 423542364237 3537 1999 2234 3367 2235 1477 274 685 342 948 749 686 343 344 494 687 495 1244 561 345 619 346 121 750 688 2731 4233 5097 5244 3897 2889 4881 422 423 341 618 747 557 120 270 199 424 748 492 558 271 272 200 559 201 273 493 203 560 425 809 684 683 202 947 4882 3982 4234 3453 4100 4998
0
.2
.4
.6
.8
1
Pr(owner) db, owner == 0
db, owner == 1
In diesem Plot formen die Punkte zwei Kurven. Die Kurve von links unten nach rechts oben besteht aus allen Mietern, die Kurve von links oben nach rechts unten aus allen Eigentümern. Ganz links in der Abbildung finden wir das schon mehrfach auffällige Muster 2233, dass sich durch Wohneigentum auszeichnet, obwohl das Modell eine sehr niedrige Wahrscheinlichkeit dafür vorhersagt. Eine Reihe von Beobachtungen beeinflussen das Regressionsergebnis, obwohl für sie nur mittlere vorhergesagte Wahrscheinlichkeiten vorliegen. Schaut man sich diese Beobachtungen näher an, . list hhnr2009 owner age hhinc east rel2head > if abs(db)>.1 & !mi(db)
so findet man wenig Gemeinsamkeiten – außer vielleicht, dass sie alle von Beobachtungen stammen, die nicht zur Kernfamilie gehören. Sollten wir die Analyse vielleicht auf Haushaltsvorsitzende und deren Partner beschränken? Wir stellen die Antwort auf diese Frage zugunsten der Einführung einer weiteren Kennziffer für einflussreiche Beobachtungen zurück. Wie in Abschnitt 10.3.3.2 dargestellt, ist die Summe der quadrierten Pearson-Residuen eine Maßzahl für die Abweichung der vorhergesagten Werte von den beobachteten Werten. Der Beitrag jedes Kovariaten-Musters zu dieser Maßzahl entspricht demnach dem Quadrat des 2 , eine Pearson-Residuums. Teilt man diesen Beitrag durch 1 − hj , so erhält man ΔχP(j) Maßzahl, welche die Veränderung der Pearson-Chi-Quadrat-Statistik angibt, wenn 2 das Kovariaten-Muster j aus dem Datensatz entfernt wird. Der Scatterplot von ΔχP(j) gegen die vorhergesagten Wahrscheinlichkeiten eignet sich zur Entdeckung von Ant17 Mehr zu separate finden Sie unter help separate. Die Variable Phat haben wir auf S. 369 mit predict Phat erzeugt.
10.5 Likelihood-Ratio-Test
| 387
wortmustern, die durch das Modell schlecht vorhergesagt werden. Dabei ist es sinnvoll, den von Hosmer und Lemeshow (2000: 163) genannten groben Schwellenwert 2 für ΔχP(j) von vier in die Grafik einzuzeichnen: . predict dx2, dx2 . separate dx2, by(owner) . scatter dx20 dx21 Phat, yline(4) mlabel(cpatt2 cpatt2)
200
400
600
800
2233
0
1892 2113 275 4309 14050 3100 5044 2696 2236 1174 4999 3984 3452 5217 4310 2376 2697 3454 3900 5216 1246 2589 2891 4311 4158 2588 4407 3096 2378 2373 815821 118 696701 1027 2487 3370 3095 5098 3894 5309 3092 958 4157 2379 2 695 4238 3612 3293 2699 1034 760 2114 3531 3893 3891 4816 1795 2790 3613 5289 3091 2986 3725 551 1181 1561 1676 1896 5386 2492 4880 1025 5308 2381 2593 4878 4945 1895 3445 3446 3089 3108 676 3714 4044 3283 5245 25942597 3712 3609 15801582 3808 674 5042 3361 4042 2585 3610 3751 482 3885 3280 4818 1898 113 2692 2117 14841493 3276 1321 5214 4583 4584 901 2529 612 3440 3274 123 611 5286 4041 3183 2979 1098 5344 3437 4152 767 3703 3442 3360 3853 412 3356 1029 4883 3905 705 3606 3607 1 476 5400 3271 3084 2111 46734674 1253 3710 3358 682 10381045 2583 3275 3357 3542 4937 48104812 3428 4095 2881 4948 1890 4655 3267 2874 1577 2007 1489 1647 331 5 762 5390 5133 5091 4936 3516 3517 1807 3399 5175 3272 4949 4163 3908 3907 741 5239 4487 38133816 2993 2242 1412 4808 3427 4090 3270 1790 1571 1572 55 5368 5176 3182 3812 2008 1325 474478 3700 1399 2873 1243 5046 4104 2994 22432248 1808 776 1449 4149 2777 1989 5182 449 910 2475 1792 3628 667 5282 4568 2966 2576 2895 1410 2800 974 1638 5139 2997 472 256 4872 4993 4394 3693 3257 5266 3204 3728 3544 779 326 108 4736 5132 4569 3774 4150 3078 2102 3264 5184 1048 939 864 253 254 5399 5259 3689 4085 26812688 1315 909 9 14 320 183 5279 5367 5173 3777 23602369 1672 5100 4413 3548 1590 321 322 251 4990 4218 3261 1985 2680 2998 2012 2122 5398 5343 5281 3691 1475 4820 3629 3547 2011 1014 402 181 4142 2771 2349 2677 2355 5246 1696 714 1592 1121 107 177 4292 5280 3507 3594 2773 3775 2865 22212229 1788 1883 4888 44154418 4164 3380 2391 1697 1188 838 647 105 5389 5375 5130 4393 2864 2101 4588 2600 1695 103 5 053 4931 3770 3503 4148 3773 1988 436 208 2803 1120 1127 1083 662 538 3344 33473354 2219 4243 3469 1336 981 49 4735 3767 4479 4217 3073 3168 2 2562 344 1984 4954 3912 3993 3631 1905 3388 5206 4929 5086 4647 3684 4143 39613968 3688 3076 2774 1395 2471 1100 570 360 3378 1902 1593 2 915 014 5325 5256 5238 2563 2459 1979 2671 2468 1333 2129 1339 1340 11961205 1053 840 240 5168 4986 4384 4731 3 872 2087 3250 2663 2096 2601 1337 7 24 310 5326 5207 4930 4795 3243 3769 2560 3424 3425 1978 1668 2667 2461 2094 4890 3379 4 166 32973302 25022507 2805 720 1501 144 1434 1348 597 534 241 63 5356 5237 5125 4730 3868 2338 2202 3171 1568 2567 2093 876 3911 4747 4503 4168 3915 2124 1195 1817 1700 919 846 593 532 393 303 5278 5088 4989 4473 4474 3761 4559 3338 3240 3062 4 3686 037 2207 2208 1777 3167 2662 2213 2214 4749 4169 4170 2708 3552 1499 2710 3123 307 390 169 5304 5167 5083 5165 4727 5 5087 205 3675 4033 2846 4034 3342 1977 3163 2660 2458 2212 1783 1784 5101 3994 3818 3633 4248 3002 1338 1259 1054 1419 849 1071 306 234 4981 4793 4726 4639 5124 4287 4928 4987 2761 2337 1311 2088 1782 5381 5313 4592 4109 24 2 018 1421 1 926928 990 262 460 233 304 5366 5340 4725 4982 3670 3158 3242 3165 3068 2211 2455 5396 49564959 4680 4595 2392 1417 1261 1707 1263 1056 166 5395 4638 5123 3327 4136 4925 4026 3330 3867 2845 3340 1563 2559 2201 2204 1466 5361 4748 5004 4823 4681 4753 3299 4112 4 172 33843387 1504 2713 2506 1823 1141 728 853 299 5303 5121 5379 5077 4723 4918 4919 4468 4635 5204 4983 5080 48614866 3759 4383 3331 3 413 4 2643 2837 2645 078 3239 3161 2652 1776 875 439 89 4247 4323 3470 3006 2714 1507 2810 2139 2021 2022 2134 841 1344 1062 1138 528 92 38 4921 48564860 4634 4282 4073 4022 34923501 4289 4 4135 3050 030 2641 3676 3677 2449 2326 3061 1559 1 390 2083 2334 1566 677 1565 5225 4593 5141 45044507 3996 1 3210 3005 911 1422 12641271 2255 1917 1607 1145 163 5198 53735374 5203 4209 5 5081 4858 164 4 4552 021 4 4211 3044 210 3865 2077 3159 3056 3057 17651775 1169 1024 2200 73 5054 4424 4 4324 252 2809 2906 2254 3212 1915 1822 1705 2258 2260 1139 991 17131722 387391395 162 297 929 857 33 5024 4854 4375 5 5202 4978 4791 4920 079 4380 3862 2442 3414 3415 3333 2183 3329 3236 1968 1663 1 460 1974 1310 1240 5051 5250 4421 4896 3921 3730 2136 3558 2911 2715 2264 1922 295 1919 296 1921 1515 1210 1070 1001 10021010 5072 4914 4784 4720 4541 4783 45384549 4367 4369 4019 4917 4637 2947 2440 2435 3234 2177 2642 2644 1463 1 1239 309 574 213 4825 4250 4 4687 4598 4425 686 4253 2505 3304 727 25082511 2145 23982405 1063 156 1064 1065 2261 1273 1275 1214 1215 1 1067 1069 270 658 5073 4976 5 5201 275 4364 4069 3942 4283 3037 2943 4071 3861 3 25382552 3586 3587 758 2067 2173 3048 2756 2324 1383 2637 2325 1168 2542 2187 1972 1557 805806 1558 1392 5185 5106 4510 2913 150 152 1918 2 153 1710 13451361 1208 2268 24 1066 855 5365 5071 4275 4632 4280 3324 3325 4134 3584 2633 2 2533 1763 1961 176 1660 2446 2323 872 12 5055 4957 4960 3637 4508 3556 4115 783 3007 3923 148 290 3125 28122815 1603 2270 1000 1925 789 1280 1073 933 4711 51615166 5200 5076 4359 5159 5160 4202 5023 4786 46334641 4716 3664 4374 4459 4133 3406 4023 2748 2937 3944 2431 2062 1382 2441 1385 2539 2182 871 1662 364 4329 5189 5008 597 4 4756 3998 897 4430 4427 4177 382385 3925 291 87 2400 1920 3129 1428 2722 3013 2723 2612 1614 5393 5372 794 735 4853 5199 5075 4785 4630 3662 4628 4070 2940 2744 2530 2631 3580 1656 1456 1544 2437 2636 2439 1965 2073 1236 1023 214 1055 4058 4758 3924 4759 1144120 5 4599 4433 4333 88591 289 4116 4179 3390 2024 3130 2144 3213 2724 3128 1276 2720 2030 1153 1068 1075 1617 5392 1723 1442 5371 4907 5274 4619 4910 3852 3658 4368 3482 3849 4370 4363 4278 4365 4131 3031 2629 2827 3486 3410 1754 1232 2532 1 945 306 16 131 5006 4826 524 5059 522 5010 379 4 4693 3828 4514 832 3732 3826 4513 41854195 3832 3638 2269 1613 2813 1279 1076 2 1078 1931 1074 271 1444 1615 4620 4774 4775 4617 1012 1085 4271 4350 861 5021 4779 4908 4008 4712 3845 4622 3028 4203 4014 3025 3747 3748 36633672 3749 2526 3746 2420 2933 3581 3409 1863 1095 1 2750 541 2434 1960 1659 1384 1305 771 512 1 215219 8 1903 837 586 5349 8384 5144 5011 4330 4835 4000 4691 4517 44324440 4338 4 4118 3 334 011 5300 3639 36403648 2923 5112 2728 1217 1435 2276 2153 1156 2514 4772 4773 1621 5070 4447 1618 1525 1522 4852 1364 4974 1221 4713 4714 4623 4625 3655 4537 3316 4015 4012 2738 2414 3407 3146 2828 1454 2747 2829 1538 1300 2427 1019 17 1331 457 585 520 521 5142 583 455 5058 5145 5146 5063 5064 4062 4255 4838 4180 3831 4764 4604 4436 3474 4518 4340 5397 4002 2921 3835 3836 225 2406 2028 5363 5352 3310 4901 3 1 3017 132 2732 4450 1362 2278 521 2036 4 1936 21522158 5020 4903 4904 795 1624 3844 4905 264 1626 1627 4532 4361 4356 4357 2523 2053 2161 2294 2163 2056 3225 1642 1853 1860 1451 1856 2742 2826 1755 1756 1546 1543 370 136 19 836 81 377 82 5350 4898 5296 5149 4181 4519 4522 4437 3641 4523 4345 5232 3214 3931 41224126 2920 2721 3644 3839 2407 4 2151 4266 4610 1724 51155118 768 1726 4347 5069 4443 3019 2733 4196 1928 2818 2734 5019 1523 1616 2814 4777 4902 4846 3741 4710 1443 4707 1938 4708 862 1628 1842 1527 1529 1625 3657 32263229 3024 1641 2623 2422 2301 942 1751 1752 1455 1231 1302 10181022 2386 369 137 20 7 780 581 13 79 142 287288 80 4601 4602 4762 5251 4184 4699 5230 3 4608 3562 4441 4520 927 4189 5196 4439 3016 3646 4065 4194 2275 4124 3647 4005 4900 3312 3476 2277 2513 1837 4704 4451 3217 1730 2927 4351 3021 3136 1524 4270 1727 4448 4449 3139 4200 1285 4201 1286 2042 1940 2043 2 2044 2155 2045 2039 1734 3573 1844 154 1533 1944 1852 2049 1947 3315 1530 1742 1535 2739 1376 2415 1291 2416 2298 1017 1373 2166 1228 1954 1861 1648 1949 1862 1746 869 1254 911 21 138 376 26 140 519251955197 4967 5150 5298 5153 4339 4336 4844 4003 5335 4841 4 4609 3736 5231 5068 5156 4342 769 4 4261 123 4193 3933 2730 4349 3 3649 3477 4444 4526 4 4268 2037 4199 4527 3020 565 33133318 4348 198 1623 1840 3934 3138 1836 2821 2519 3654 1528 2284 2285 3400 3480 2046 2281 1735 2160 3223 1089 1738 1848 1640 1372 2522 2736 540 1446 1447 1294 1295 1532 1296 2290 2055 1745 1747 1748 1452 943 451 375 286 139 450 141 77 2 5 5391 5351 4842 4697 4837 4765 4607 4341 5252 4605 4260 5017 5067 5065 4064 4192 4770 4701 3932 4771 5014 4525 4766 4702 4612 4613 3929 3645 4265 3394 4611 43464353 3133 3563 4125 40064013 3935 3 2926 3936 3738 216 2816 3566 3567 2041 3396 3220 3022 3141 3222 2038 1732 1630 2930 1631 2040 2819 2620 1634 2288 398 2289 1289 1290 2521 2411 1945 1946 2050 1854 1855 1948 1845 1536 1448 1374 10921097 1375 941 1094 1811 446 220 371 778 22 712 516 23 452 143 5110 5317 5194 4695 5154 4843 4 4840 4845 4700 259 4521 4442 5066 4262 5113 4343 4190 4438 5015 4971 3 33113314 4706 3393 392 4615 4616 3737 4618 3395 4197 2615 3397 3564 3650 2616 2928 4066 2280 1935 3137 3 3219 3742 3140 3570 3653 843 3841 1731 2929 3398 2520 1287 1369 2156 1941 3142 2157 2282 1088 1635 2047 2735 1942 1737 1846 1847 2823 938 1639 1090 1739 1849 1843 1850 1629 1851 2931 2524 2412 2052 2292 1636 2410 2162 1743 2054 1858 1297 1950 1292 1859 1 1540 1644 1299 1377 016 1229 867 1490 903 710 515 447 2 284 18 217 517 221 453 78 5107 5108 5297 4966 4836 4335 5151 51115114 4337 5193 5013 5148 5152 4968 4257 4969 3833 3834 4063 4698 4839 4606 4970 4899 4258 4188 4767 5299 4445 2515 5155 4263 4776 4848 3840 1838 4530 2035 1831 3478 1934 4452 1622 3479 4354 4529 1223 1526 2283 2618 4127 1225 2518 2822 3218 2617 1284 3847 1009 3740 1632 1 2820 2619 100 2621 2159 1011 1531 3401 2287 1534 1736 2048 3571 733 1740 1943 1371 1293 3145 1227 3027 1633 3143 2737 1537 1637 1298 2418 1952 2421 2057 1091 17441759 1165 1096 769 519 584 5315 5334 53165318 4692 5294 5147 5109 5062 4761 4117 4763 4434 3561 4603 4516 4344 4186 3837 4187 37353739 38383842 5301 5016 5319 4614 3391 2150 4705 4446 1832 3475 1834 5157 4528 1932 4524 1725 5116 3018 4703 1927 4906 2817 4973 3215 1220 1445 4972 41284130 4850 47094718 2279 4267 4007 1157 2614 1937 3937 1082 1084 3652 1841 1939 4358 3568 3221 3569 1288 4010 3938 2932 11621164 4011 1370 3656 3850 3743 4009 1226 174178 174 3575 3848 1087 3577 3319 2286 936 2051 3320 1857 797 3030 1741 1951 3317 2936 2740 2626 1539 2627 2824 1645 2628 2527 2300 2168 2302 2303 2296 2164 1750 1230 1864 866 1865 1378 1379 1453 1651 1380 1233 870 511 216 367 368372 133 134 135 5 5293 348 4690 5295 5143 378 4426 5 4834 5 4332 4760 4965 191 3830 4831 4060 012 4696 4833 4435 3389 4515 4121 3014 4004 183 3642 3643 29192925 2147 2402 25102516 1072 1717 5271 1718 3309 5383 2029 2727 50185022 2924 1358 1438 1359 1216 1520 2729 1440 1218 24082409 4847 2034 1933 4849 2517 1151 5272 4531 231 1839 4352 4269 1835 4355 2033 4909 4975 1224 1159 1368 1086 4533 4534 3846 4535 1161 3572 4536 1013 4455 4456 3481 3651 4273 4274 3402 3023 4067 4205 4129 2825 3026 3855 3578 39403946 2413 2293 3851 2625 3579 2295 3321 3576 3484 2297 3485 2419 3404 1646 1953 2291 3036 2745 1649 2746 1650 1749 2630 3032 1643 2304 2170 2058 2423 1301 2528 2429 1166 1866 1868 2060 1093 2172 1757 1654 1655 1956 1548 1870 1760 1549 1381 259 1235 366 1 15 4 5378 5362 5377 4828 4176 4113 4963 5061 3922 4964 380 5009 145 3919 28 4830 4511 3472 41824191 29 3305 2915 4061 4119 3928 3 2 1924 2262 9263930 1714 2027 509 1608 1828 1715 1612 2922 1716 2512 31313134 2725 1429 3015 2726 1349 1152 931 5384 1929 1274 2273 1833 1721 1930 2031 1154 2274 2404 2032 1212 859 1006 1830 1728 1729 1619 596 1620 1363 1719 5364 1365 1366 1283 1439 1367 1222 5273 1281 1008 1079 5336 736 860 4453 5 4912 4272 4780 4781 4626 158 3939 3744 3574 4539 3745 49114922 4276 4206 3659 4715 4454 3403 4207 3144 2935 3224 4366 3856 3029 4 2741 3750 2622 2299 3408 2624 2934 2743 016 2167 3582 2424 2425 2165 2169 3150 2941 2417 2942 3033 1542 1753 3147 1955 2632 1545 2534 2433 1653 3148 2535 2308 1652 2175 2063 1871 2065 2432 2306 2068 1551 1873 1552 1764 1457 804 443 11 75 76 13 74 5005 5188 5227 4327 52285229 5007 4423 4829 4961 3918 3823 4958 4689 4962 3824 4755 4757 916 4512 4428 4178 4429 3636 4431 4174 4256 4331 3999 590 3829 4059 3303 146 4001 85 8688 3560 3473 2716 303234 292 3306 3734 2142 149 3126 3127 2610 3307 3308 2718 1427 2719 2613 1610 1432 1433 1350 1352 1272 2148 1826 1827 1829 2403 2267 858 1004 1437 1825 1356 1357 1720 1519 1155 1360 1355 1219 1441 1080 1282 934935 1436 1081 1007 656 4851 4621 4624 4360 4778 4627 4457 51195122 5233 3941 4204 40684074 4717 4719 49154923 3661 5025 977 3854 4544 4458 4545 4540 3 3322 404 4018 3483 4371 3405 4020 3858 3227 660 3667 2531 3753 3487 3034 2831 3035 2426 3326 2938 2059 2428 1957 3411 3323 2430 2171 3328 1958 2307 3149 1959 3412 2174 3153 1869 1547 2635 2752 1758 1303 3041 1761 2832 1304 2438 2833 1762 1867 2836 3038 2946 2069 2070 2180 2443 2315 2444 1964 1020 2318 2311 1966 1661 1766 479 1459 1388 1386 1664 1237 61 959 10 5388 5382 5104 5347 5187 50575060 4110 4506 5190 41714175 4173 4894 4895 4685 5105 3997 4111 4688 4827 4509 3385 46844694 4254 3825 2609 3121 2907 3733 3827 3920 3 1198 3124 3559 2912 1602 3386 1509 731 592 2717 3008 3009 3010 458 3012 2914 1511 1604 2916 384 2811 1343 594 2917 1605 2263 151 1140 2918 2611 293 154 2265 1060 22662272 383 1207 1142 294 927930 993 1267 1269 1268 1 851 157 2146 2401 158 147 159 2025 2026 1824 995 595 1430 1431 996 1516 155 998 923 999 1061 1517 1611 1351 1518 1211 1353 790 1354 1213 1277 1147 1148 1149 1003 1150 1278 1146 1005 932 5302 5253 5320 5074 5337 5026 117 5321 4913 5162 4277 4782 5234 4362 4372 4208 4461 4629 4132 4017 5120 3857 3943 4979 4721 4789 4542 4546 4281 3666 4547 4376 4377 3151 4466 36653671 4373 3948 4025 4279 3228 3950 3152 3583 3860 3039 2751 3490 2536 2634 3953 3491 2830 3230 4024 2749 2537 2310 2305 3042 2178 3493 2066 2312 1962 1657 2179 2061 1658 3045 1874 1963 2071 2758 3155 2838 3049 3154 2638 2543 2948 3040 1387 2064 2951 2639 2445 2320 2834 2185 2545 1872 2759 1554 2541 2321 2322 1550 2075 1307 2313 2547 2757 1969 2078 1769 1970 1876 2191 4 1767 1556 2076 1560 13 1462 362 1 30132 5314 5103 5270 4505 5056 4322 5052 5226 4108 5186 4824 3821 3914 4683 3916 45964600 3917 4419 4420 4325 4326 4328 4251 4422 3635 2605 2905 3557 2607 3004 3120 2017 2808 1820 1821 2135 2251 3122 2252 1502 3119 1916 2397 1342 1600 1136 1204 2257 1199 1265 1137 1202 2399 2259 1711 924 925 989 1712 1058 2023 2143 845852 2256 988 1510 1347 1513 7 1514 653 1609 1209 1059 1606 160 459461 529531 161 88 997 388 1346 298 226 227 856 729 791793 386 35 91 36 37 731 5254 5322 4 4916 4543 5323 855 4 5276 4722 4980 4460 4631 5078 788 3945 4724 3947 3754 3756 4792 3949 4550 4471 3752 3489 3951 4286 3 4463 4465 4381 4790 4553 3668 3585 4076 3 3231 3755 859 3955 2753 2949 2754 2755 3956 2944 3957 3043 2835 4285 2945 3952 3863 4883496 3046 2314 2309 4028 2316 2181 3332 2072 3232 3589 2074 2319 2436 1967 3335 2184 2953 3336 3416 3497 3052 2186 1768 1770 3054 2840 2646 1875 1971 2548 1553 3058 2330 2544 3156 2847 1389 1461 2451 1555 2848 2648 2080 2447 2649 2198 1308 2081 2199 2336 1772 1975 1774 1464 265 334 759 129 211 5346 5333 5249 5269 5290 4591 52915292 5102 4822 5053 5140 4679 4893 47504754 3551 3550 4682 3382 4594 3001 4056 3553 4057 2806 3554 3301 3 2503 3555 3729 118 1598 2016 3 2908 2909 1909 2910 2712 2253 2807 2131 2133 2019 211 1912 1914 2396 983 918 2608 1418 223 2395 726 2137 2138 1508 2140 2020 2132 1708 786 1913 1423 1424 527 1709 1425 1512 843 1057 1426 992 850 1206 1266 1143 652 1144 994 654 854 787 792 389394 164 530 229 302 232 2 89 93 94 90 28 39 5 51635169 255 53395341 5353 5380 5324 5235 4857 4787 4467 4469 4636 4462 5084 4378 5027 5028 4284 4075 4464 4924 4072 4984 5029 5082 3669 4642 4926 3757 3760 3588 4288 4212 4213 4551 4138 3674 4644 4645 3954 3494 4728 4139 3051 3233 3866 2952 3157 2640 3334 4077 3763 4031 4137 4032 3235 4140 3237 2546 2842 2760 2843 2950 2844 3053 3047 3590 3762 3418 2839 28412851 2079 2450 2188 2327 2190 3160 3498 3499 2549 2192 2333 2332 3592 1771 3063 3419 2448 2196 3241 2197 2650 2553 3238 2082 3164 1877 1391 2554 3337 1562 2189 2849 2653 2555 1773 2556 1564 1665 2558 2767 2205 2656 2453 2193 1879 2335 1880 2210 1171 1666 1667 1778 1779 283 3 7 70 71 72 210 61 5387 5049 4319 5268 4501 5 4320 4502 4821 4891 4 224 5050 4590 4 4677 3381 4678 3995 4892 955 4752 751 4246 3819 4055 4249 3913 3820 3634 3822 3471 3209 3383 1334 2903 3300 3003 1192 1699 2606 1194 2393 1415 1416 2504 2711 2394 1130 222 1818 1908 1703 839 1704 1599 1910 649 1506 1706 1819 917920 2731 1134 1601 1200 1500 1135 986 1203 1503 1 987 1505 8 1132 650 785 848 420 1201 921 922 47 923 842 844 2141 7 30 305311 657 732 655661 1 733 235 533 95 300 230 462 165 301 168 96 67 40 464 236 392397 97 41 239 42 9 8 5338 5277 4859 5354 5355 4548 5236 4382 4640 4470 4554 5085 4556 4379 4557 4029 5 3864 4079 46464648 4027 4988 4 4862 4864 126 3495 4080 39583959 3764 4643 3673 794 3417 4387 4388 3591 3055 3680 4475 3059 3060 4036 4293 4389 3869 3682 4560 3339 2762 3765 2550 2551 3064 4141 3065 3678 2763 3162 3341 2647 2328 2329 2765 19761980 2454 2331 3685 2557 3343 2954 2456 3500 2 1973 2084 1878 2206 2194 2195 2658 3246 2955 1465 3422 3 3072 3345 3169 3170 957 2764 2457 2659 2956 2857 1393 2654 2565 2661 066 2960 2852 2961 2664 2089 1242 1172 1569 2090 2092 1467 1669 1470 1026 128 282 6 5223 5003 4746 4244 4676 4318 4500 4589 4416 3817 4167 3992 2898 3114 4321 3632 3208 3117 2599 2390 2247 3115 3468 2804 2249 3298 3000 2709 2901 1816 2904 1123 1258 2126 978 1051 2500 2603 2127 2128 2902 1906 1904 2501 2604 1191 1595 13351341 1052 2130 1907 1596 7 2 1414 1701 587 1129 718 1597 1702 523 81 015 1197 721 722 1131 1260 1128 1133 525 716725 723 784 651 985 982 5 3 26 81 1926 2 149 659 598 660 1077 599 535 465 396399 466468 242 171 600 172 734 308 737 312 43 170 313 44 46 237 314 238246 243 9 244 309 175 176 245 173 9 1 47 45 48 01 5170 4985 5030 4927 5257 5305 4558 4933 4555 4214 4386 4291 4863 5208 4472 4081 4729 5128 4561 4215 4796 4290 5172 4385 4932 3681 5129 4216 4035 4865 4562 4476 4390 4797 4391 4934 4799 3593 3683 3766 4478 4868 4869 36793690 3502 4734 3069 4392 3244 3870 2766 3687 4480 3245 4563 2958 4 2655 2959 3070 2657 3771 3247 3960 3873 40834086 2341 3067 2651 2209 2962 3504 2856 3 082 3506 3874 2564 2768 3249 3420 2853 1780 1781 3174 2566 3074 166 2770 2085 2666 3252 3595 2668 3248 2342 2462 3253 2465 2345 2861 2568 2466 2347 2467 1469 2672 2460 2469 1471 2470 2472 2350 2091 2351 1981 2097 1982 1671 2098 2100 1785 1787 1473 1314 1313 69 127 45 5247 5221 5312 4889 5248 3627 41054107 44144417 4675 42424245 3910 4953 4165 3990 4317 3377 4106 3991 2799 3207 3815 3630 3549 2897 2010 2899 2246 2900 3 2802 2389 1116 2498 2999 2245 1329 2 1413 2497 833 116 834 908 1327 1330 1591 1 2499 835 2 1187 977 2125 1117 2250 707 580 973 497 1332 454 013 1122 1 1498 1594 979 1189 1126 1049 1190 456 047 980984 1193 1124 582 1125 717 719 782 648 589 863 796 1158 937 738740 1160 248 663 316 601 249 603604 317 536 250 318 537 102 319 315 469 400 602 470 401 104109 1 180 467 247 79 323 2 51 106 52 5394 5171 5127 5031 5 5342 4867 4477 4798 5357 4564 4294 4732 5032 5034 089 4733 4565 52585260 4801 4038 4870 3768 4935 4803 4144 4481 4482 5090 3871 4737 3421 4295 4145 3423 4146 3772 4739 4566 4296 4805 549 3962 3172 4396 3597 3963 4650 3173 4567 2963 4298 3071 3508 3251 2858 2665 3776 2854 3075 4483 2855 2769 4484 2859 35053515 3596 2669 2463 3254 3426 2772 3598 3875 2215 2464 2216 2217 3175 2346 2218 2095 3695 3876 3255 3 3176 2569 3346 2348 2863 3077 3509 2570 2673 2860 1472 3177 1983 2 2352 2099 2354 3350 2775 2964 1786 2572 348 1173 2776 2675 1881 19871990 2678 670 1 1885 2575 1397 2222 2223 2104 2105 1886 2358 570 1789 64 1 125 24 2 207209 5 5220 5183 3906 219 5222 5002 4952 5047 4 4587 4240 4162 887 3467 3811 3909 4412 4241 3989 3726 3375 3727 4054 2894 3205 3296 3545 2704 2705 3376 1690 3546 25982602 2996 2896 3113 1113 3206 814 2383 2384 1809 830 2385 2244 2706 1494 2387 2801 1899 2388 1691 2121 1491 2 1326 577 968 578579 1812 1692 971 1900 1693 2123 1495 496 1 1813 1810 1814 16941698 1901 709 285 1815 1044 969 777 1328 1118 256 1257 912 832 646 972 1046 374 9 1119 976 1050 715 75 518 913 3135 1015 739 940 541 799 798 539 1163 324 801802 403 471 405 184 664 543 665 544 666 605 800 406 865 668 110 182 185 5 545 607 325 3 52 473 186 255 187 111 42546 188 27 5033 5327 5131 4802 4871 4649 5035 5385 4395 5376 5 4738 4800 4804 41474151 4991 5210 174 4740 4994 4651 5177 5036 5178 5093 4297 4 3599 5135 5038 5039 4397 4398 5040 4652 3694 3692 4485 3965 4400 3696 4654 2965 3256 873 4570 4299 3258 3778 3259 3178 2674 3697 3698 4220 3510 2573 2473 2862 3511 3179 2220 4 3966 2676 2969 2474 3702 3601 1884 2571 3602 2574 4219 3079 2679 3430 3704 3263 3349 2578 2970 3518 3432 300 3260 3780 1887 1398 3262 2871 3352 2971 3266 2968 2476 2225 3353 3268 3081 2477 2106 2103 1474 2226 2356 2357 3181 2224 2363 2682 2870 2875 2359 2683 1888 2366 2361 2110 1574 279 432 68 355 280 5218 4 50455048 5099 4884 52655267 5001 3464 947 4103 3623 4315 4585 4885 4950 4886 4586 4951 4161 4316 4160 3809 3988 3374 4052 4053 3372 3810 3373 2596 3543 3 3295 2798 2595 3112 3465 466 2006 2494 964 3203 2495 1487 2702 2119 2382 1488 1588 1408 1 1806 1184 966 1112 1323 1486 1409 322 1492 902 2120 1411 1040 708 1114 1589 444 967 773 445 904 1496 905 906 514 831 1039 1324 1115 907 1041 1043 970 642645 644 1042 711 576 774 7 448 75 373 2525 14501458 608 475 407 189 257 606 868 408 476 190 1167 54 258 328 609 6 191193194 329 409 330 547 803 670 5 260 410 69 411 477 6 112 59 60 261 58 5209 5037 4992 4806 5092 4995 5211 5285 5134 5283 5284 5212 5369 5136 4399 4653 4996 5240 53065307 5287 5288 4741 4084 4807 3779 4809 4401 4486 3699 5179 4742 5213 3512 3513 3967 3514 5241 3600 4221 4402 4874 4571 4403 4222 4223 3603 4572 3877 4224 3429 4088 4089 4938 4743 4087 4657 3431 3970 2867 2868 2869 3080 3519 3706 3880 2866 3781 4091 3701 4092 3180 3881 3707 2579 3969 2872 3878 2972 3782 4225 3082 3605 2577 3708 3351 3083 3783 3433 3784 4094 3521 3883 4096 3434 2778 3705 3785 3786 3522 3265 2364 3355 3269 3435 3520 2779 3523 3972 3971 2582 4097 3973 3604 3789 2973 3524 3790 4093 2876 2108 3438 3085 3791 2780 2580 2362 3525 2781 2107 2581 2227 2228 37873797 1791 2975 2479 3273 1673 3277 3279 2584 2365 1991 2882 2478 2877 2684 2878 2782 1992 1576 2783 2686 1400 1793 2367 1575 1993 1674 1794 1996 6 122 7 4946 4497 4581 4498 4101 4 5000 4819 4582 4499 2490 411 3371 4314 3624 4239 3625 3202 4102 3904 2241 3626 21162118 1180 2380 3541 3110 3294 3111 1897 762 2 2003 2991 29922995 12511255 1 823 2004 1688 1319 1320 960 1182 2493 20052009 002 212 900 1804 587 961 687 1110 765 1805 962 639 1183 363 1689 1111 963 8 704 575 640 703 1485 828 441 11851186 827 766 1 26 1252 641643 3 829 706 772 707 037 965 768 65 513 770 2939 2540 944 2317 610 12341238 672 673 263 671675 414 63 332 873 1021 262 333 415 192 480 266 1099 484 264 81 548 485 483 5041 4573 5328 5 5094 5095 4656 5242 5261 4658 3882 4659 137 4661 4574 3709 526252635264 4662 49394940 3879 4875 4876 4663 3436 5096 4744 4665 4664 3439 4488 4660 4 4302 4666 4303 3086 4667 3788 4226 3886 4745 3359 3608 4877 3087 4879 3711 3278 3713 3884 3792 301 2974 3793 4489 3527 3715 2879 3974 2977 4040 4039 2880 2480 3887 3444 3447 3184 3794 2978 2685 3977 3528 3529 3441 1994 3978 3975 4154 3088 1995 3526 4155 2976 2884 2883 1889 3448 3530 3281 3443 2980 2690 2689 2370 421 2982 1997 2687 3888 3282 31853191 1401 2981 3186 2985 2482 2586 2787 1998 29842989 15791581 66 4313 4409 4051 3724 3806 3807 3621 3106 3903 3292 3622 4159 4817 3620 3540 3200 4 3539 3199 1894 2115 3461 3462 410 3463 3 31073109 753 3201 3460 2489 1585 571 2001 2 9863987 1684 1586 2491 698 1483 2990 2239 1033 28922893 2797 240 1406 70027012703 817 757 818 758 572 573 1248 1249 754 1685 505 1179 894 819 699702 1686 763 700 1 895 506 6 1035 1250 896 824 1407 507 761 820 897 108 898 1109 1036 899 37 764 822 825 638 508 509 4 510 42 2339 2203 2452 2850 2340 1170 1241 2561 613 2086 8 4 550552 742 335 336 678 416 195 679680 74 17 486 1567 614 114 196 337 267 418 807 268 615 487 338 197 488 115 419 553 116 2 69 5329 53585359 4811 4227 4668 4669 3976 4153 5215 4670 4043 3795 4997 5330 3796 4045 4304 4490 2983 4046 3611 4228 4942 2784 5180 3889 5138 4671 2785 2691 3614 3890 4229 2786 4156 3 3716 3979 1675 4813 2693 3090 3892 3187 3284 2694 4098 3285 3532 4230 3533 4492 4231 3363 362 2987 2230 3615 3449 4047 4491 2885 3188 2988 2789 2788 3450 3189 2483 3717 3798 3451 2 2372 3093 2112 2791 3286 2231 1402 371 2232 1796 204 3102 3368 3291 3455 3103 3196 4408 2795 3456 3457 3901 3369 4312 3804 3104 3105 2591 3985 8 953 1175 3902 1176 3197 1479 3805 1177 3723 1247 1799 1404 3538 1178 2796 3459 1481 502 501 632 2698 694 206 2238 3458 87 568 1032 1103 2592 503 1105 3198 1480 631 1801 8 205 126 2488 1800 955 281 954 752 358 2000 1317 956 504 633 1318 1104 1683 1584 1482 889 695 13816 890 1405 18021803 888 957 1682 359 891 1106 634 1107 892 814 893 636 635 697 755 756 437 2343 3964 1312 1468 1396 1 1670 2353 1028 394 2967 1986 743 616 554 1882 744 878 877 879 420 555 1 339 17 489 681 745 119 5 65 4941 5370 5181 4575 331 5043 5243 5310 5332 3534 4576 4577 4232 4493 4943 4404 4305 30943097 4405 4494 4944 4406 5360 3616 3190 5345 3287 3718 4495 3895 3800 3799 4579 4578 3980 4 4048 4306 4307 2374 3288 3896 3364 2484 3365 4308 672 3801 2375 2587 2792 3983 5311 3194 882 690 883 2 884 621 428 622 562 349 1 1583 498 1893 429 950 2890 563 351 1101 885 237 623 624 692 478 6 625 16781681 3101 278 3899 1245 1798 626 951952 564 3195 430 499 1680 1679 627 91 565 566 811 628 886 431 2486 1403 352 3 2590 1031 353 629 500 54 630 812 433 1102 567 693 434 357 569 435438440 356 2109 1 573 2368 2481 4 1316 90 1578 340 4 556 746 91 617 4814 4815 3719 2793 2794 2886 2887 3192 30983099 3193 3289 2485 3617 3535 3198 4049 3536 2888 3720 802 1797 422 423 341 618 747 557 120 270 199 424 748 492 558 271 272 200 423542364237 559 201 273 493 203 3537 560 425 809 1999 684 683 202 2234 3367 2235 1477 274 685 342 948 749 3898 686 343 344 494 3290 687 495 1244 561 345 619 3803 346 121 750 688 880 881 810 347 426 496 1030 497 689 620 751 427 9 348 350 276 277 49 2731 808 946 4233 3721 4099 3618 3366 3722 4496 3981 947 4580 1677 5097 1891 3619 5244 2377 3897 2889 4881 4882 3982 4234 3453 4100 4998
0
.2
.4
.6
.8
1
Pr(owner) dx2, owner == 0
dx2, owner == 1
Wieder gerät unser üblicher Verdächtiger, das Kovariaten-Muster 2233, ins Visier. Unsere erste Maßnahme sollte sich darum mit dem Befragten befassen, der dieses Muster hervorgebracht hat. Wie schon oben festgestellt, hat die entsprechende Beobachtung ein jährliches Haushaltseinkommen von gerade einmal 583 €; das reicht, um sich ein Jahr lang etwa 13 Bic Macs pro Monat zu kaufen – und für nichts weiter. Gegeben, dass die Bedarfssätze für das Arbeitslosengeld II („Hartz IV“) um ein vielfaches höher sind, erscheint uns die vorliegende Information zum Haushaltseinkommen sehr fragwürdig. Es gibt daher gute Gründe die Beobachtung aus der Datenbasis zur Schätzung des Modells auszuschließen: . replace loghhinc = .c if cpatt2==2233
Im Allgemeinen sollten Sie aber mit der Entfernung von Daten außerordentlich zurückhaltend sein. Wenn Datenfehler ausgeschlossen werden können, so sollte man untersuchen, ob eine für das Modell wichtige Variable vergessen wurde. Vielleicht handelt es sich ja um eine „Subgruppe“, für die der Zusammenhang zwischen Alter, Haushaltseinkommen und Wohneigentum schlichtweg nicht gilt.
10.5 Likelihood-Ratio-Test 2 vorgeführt. Dabei hanIn Abschnitt 10.3.3 haben wir Ihnen die Berechnung von χℒ delte es sich um eine Maßzahl, welche die Likelihood des berechneten Modells mit der Likelihood eines Modells vergleicht, in dem alle Koeffizienten außer der Konstan-
388 | 10 Regressionsmodelle für kategoriale abhängige Variablen ten auf 0 gesetzt werden. Je stärker sich die Likelihood unseres berechneten Modells von der des Nullmodells unterschied, desto höher war die Bedeutung unseres Modells einzuschätzen. Dieselbe Logik lässt sich auch auf die Frage anwenden, ob eine oder mehrere unabhängige Variablen die Erklärungskraft eines Modells im Vergleich zu einem Modell ohne diese Variablen verbessern. So könnte man z.B. fragen, ob sich die Güte einer Regression des Wohneigentums auf das Haushaltseinkommen verbessert, wenn das Alter als zusätzliche Variable aufgenommen wird. Zur Untersuchung dieser Fragestellung kann man analog zum Test des Gesamtmodells vorgehen, indem man die mit −2 multiplizierte Differenz zwischen der logarithmierten Likelihood des Modells ohne Alter (ln ℒohne ) und dem entsprechenden Wert des Modells mit Alter (ln ℒmit ) berechnet: 2 χℒ(Diff) = −2(ln ℒohne − ln ℒmit )
(10.15)
2 folgt auch diese Prüfgröße einer χ 2 -Verteilung, wobei die Anzahl der FreiWie χℒ heitsgrade die Differenz der Anzahl der Parameter zwischen den beiden Modellen ist. 2 Die Berechnung von χℒ(Diff) mit Stata erfolgt durch den Befehl lrtest. In unserem Beispiel wollen wir „die Signifikanz“ des Gesamteinflusses der rel2head-Dummies untersuchen. Dazu wird zunächst das Modell mit der zu untersuchenden Variablen berechnet:
. logit owner age_c loghhinc east i.rel2head
Dieses Modell wird mit estimates store unter dem Namen full für weitere Analysen gespeichert: . estimates store full
Anschließend wird das reduzierte Modell berechnet. . logit owner age_c loghhinc east
Danach kann man den Befehl lrtest verwenden, um dieses Modell mit beliebigen zuvor gespeicherten Modellen zu vergleichen. In unserem Fall verwenden wir . lrtest full Likelihood-ratio test (Assumption: . nested in full)
LR chi2(4) = Prob > chi2 =
109.12 0.0000
Die −2-fache Differenz der Log-Likelihood-Werte zwischen dem vollen und dem redu2 zierten Modell beträgt 109,12. Die Wahrscheinlichkeit, einen χℒ(Diff) -Wert dieser Größe in einer Stichprobe zu erhalten, wäre, wenn der Koeffizient von rel2head in der Grundgesamtheit 0 ist, nur sehr klein. Wir können damit einigermaßen sicher sein, dass der gesamte Effekt aller Kategorien von rel2head zusammen in der Grundgesamtheit nicht 0 ist. Dies sagt jedoch nichts darüber aus, wie stark der Einfluss des Alters auf das Wohneigentum ist.
10.6 Verfeinerte Modelle
| 389
Bei der Anwendung des Likelihood-Ratio-Tests ist zu beachten, dass mit dem Test nur Modelle verglichen werden können, die untereinander hierarchisch geschichtet sind. Dies bedeutet insbesondere, dass das als full gespeicherte Modell alle Variablen des reduzierten Modells enthalten muss. Darüber hinaus bedeutet dies, dass beide Modelle auch für dieselben Beobachtungen berechnet werden müssen. Letzteres kann z.B. problematisch werden, wenn im erweiterten Modell Beobachtungen auf Grund von Missings ausgeschlossen werden, ein Teil der Beobachtungen jedoch durch das Auslassen einer Variablen im reduzierten Modell wieder in das Modell aufgenommen werden. Zu Ihrer Erinnerung gibt Stata in solchen Fällen die Warnung „observations differ“ aus. Nicht immer ist man an einem Test hierarchisch geschichteter Modelle interessiert. In solchen Fällen können die sog. „Information-Criteria“ verwendet werden. Die am häufigsten verwendeten Information-Criteria sind BIC („Bayesian Information Criterion“) oder AIC („Akaike’s Information Criterion“). Diese Maßzahlen erhalten Sie durch estat ic. Eine ausgezeichnete Einführung in die statistischen Grundlagen dieser Kennziffern gibt Raftery (1995).
10.6 Verfeinerte Modelle Wie schon das lineare Regressionsmodell lässt sich auch das logistische Regressionsmodell zur Analyse komplizierterer Forschungsfragen verfeinern. Im Folgenden wollen wir die Spezifikation nichtlinearer Zusammenhänge und die Untersuchung von zwischen Subgruppen variierenden Zusammenhängen (Interaktionseffekte) ansprechen.
Nichtlineare Zusammenhänge Im Rahmen der Diagnose unseres Regressionsmodells waren wir auf Anzeichen für einen U-förmigen Zusammenhang zwischen dem Alter und der logarithmierten Chance auf Wohneigentum gestoßen (Abschn. 10.4.1). U-förmige Zusammenhänge sind indes nur eine Form von nichtlinearen Zusammenhängen. Hyperbolische und logarithmische Zusammenhänge können ebenfalls auftreten. Bei Letzteren ist jedoch zu beachten, dass die Modellannahme der logistischen Regression nur dann verletzt ist, wenn diese Zusammenhänge zwischen den Logits und den unabhängigen Variablen auftreten. Bezüglich der Wahrscheinlichkeiten werden sowohl logarithmische als auch hyperbolische Zusammenhänge bis zu einem gewissen Ausmaß bereits durch den Sförmigen Verlauf der Logit-Transformation berücksichtigt. Es gibt unterschiedliche Möglichkeiten zur Berücksichtigung von nichtlinearen Zusammenhängen. Wenn wir eine Vermutung darüber haben, warum Wohneigentum bei älteren Menschen seltener ist als bei Menschen mittleren Alters, so ist es das Bes-
390 | 10 Regressionsmodelle für kategoriale abhängige Variablen te, eine entsprechende Variable in das Regressionsmodell einzubauen. Wenn man z.B. vermutet, dass der beobachtete Rückgang eine Folge der sogenannten „Altersversorgungswanderung“ ist, so wäre es sinnvoll, Dummy-Variablen für das Wohnen am Wohnort oder in der Wohnung der Kinder, in Altenwohnheimen oder Altenheimen usw. einzuführen. Träfe die Vermutung zu, würde der nichtlineare Verlauf im multiplen Modell verschwinden. Liegen die Variablen, die den nichtlinearen Verlauf erklären könnten, nicht vor, so kann der nichtlineare Verlauf direkt im Modell berücksichtigt werden. Eine Möglichkeit besteht darin, die entsprechende unabhängige Variable zu gruppieren und als Set von Dummy-Variablen in das Modell einzuführen. Eine derartige Strategie haben wir oben auf Seite 379 angewandt. Eine sparsamere Möglichkeit ist die Verwendung von Transformationen oder von Polynomen der unabhängigen Variablen. Dabei gelten dieselben Regeln wie bei der linearen Regression: Im Fall von hyperbolischen Zusammenhängen wird die x-Variable quadriert, im Fall von logarithmischen Zusammenhängen wird die x-Variable logarithmiert. Bei U-förmigen Zusammenhängen verwenden wir die quadrierte x-Variable zusätzlich zur Originalvariablen. An Stelle der Generierung einer quadrierten Altersvariablen zur Modellierung des U-förmigen Zusammenhangs zwischen Wohneigentum und Alter kann man sich auch der Faktorvariablennotation bedienen [U] 11.4.3 Factor variables: . logit owner c.age##c.age loghhinc east i.rel2head, nolog Logistic regression
Number of obs LR chi2(8) Prob > chi2 Pseudo R2
Log likelihood = -3160.7975 owner
Coef.
age
= = = =
5,406 1156.28 0.0000 0.1546
Std. Err.
z
P>|z|
[95% Conf. Interval]
.1219795
.0129222
9.44
0.000
.0966525
.1473064
c.age#c.age
-.0008032
.0001157
-6.94
0.000
-.0010299
-.0005765
loghhinc east
1.073894 .0272748
.045947 .0708097
23.37 0.39
0.000 0.700
.98384 -.1115096
1.163949 .1660592
rel2head Partner Child Relative Nonrelative
.105434 1.848891 .3396665 .8898796
.0684178 .1554012 .5262689 .4800361
1.54 11.90 0.65 1.85
0.123 0.000 0.519 0.064
-.0286625 1.54431 -.6918015 -.0509738
.2395305 2.153471 1.371134 1.830733
_cons
-19.99336
.7447019
-26.85
0.000
-21.45295
-18.53377
Die Ergebnisse dieses Modells lassen sich am besten mit einem ConditionalEffects-Plot darstellen. Nur mit einem solchen Plot lässt sich die kurvilineare Natur des Zusammenhangs zwischen dem Alter und der Wahrscheinlichkeit auf Wohneigentum einigermaßen verständlich machen.
10.6 Verfeinerte Modelle
| 391
. margins, at(age = (20(5)80) loghhinc=(14(1)16)) over(east) . marginsplot, by(east)
Predictive Margins with 95% CIs east=1
.5 0
Pr(Owner)
1
east=0
20 25 30 35 40 45 50 55 60 65 70 75 80 20 25 30 35 40 45 50 55 60 65 70 75 80
age loghhinc=14 loghhinc=16
loghhinc=15
Interaktionseffekte Lassen Sie uns nun mit der in Abschnitt 10.1 begonnen Untersuchung der TitanicKatastrophe fortfahren. Dabei ging es um die Frage, ob das in der Schifffahrt geltende Prinzip „Frauen und Kinder zuerst“ bei der Rettung praktiziert wurde, oder ob sich, wie der Film „Titanic“ suggeriert, feine Herren der ersten Klasse ihren Platz in den Rettungsbooten auf Kosten von Frauen und Kindern der dritten Klasse erkauft haben. Die Forschungsfrage kann in Erwartungen über die Effekte spezifischer unabhängiger Variablen einer logistischen Regression übersetzt werden: „Frauen und Kinder zuerst“ bedeutet zunächst einmal, dass nur Geschlecht und Alter bei der Rettung eine Rolle spielen sollten. In einer logistischen Regression der Chance, die Katastrophe zu überleben, sollte die Fahrscheinklasse nach Kontrolle von Geschlecht und Alter darum keinen Effekt mehr haben. Doch das Prinzip geht noch etwas weiter. Es impliziert, dass – Frauen und Kinder unabhängig von der Passagierklasse eine höhere Überlebenschance haben sollten, und dass – das Geschlecht bei Kindern keine Rolle spielen sollte. Die These des Films „Titanic“ läuft dagegen darauf hinaus, dass – der Effekt des Geschlechts zwischen Passagierklassen variiert, und zwar entweder, weil männliche Erste-Klasse-Passagiere überproportional häufig überlebten, oder weil Dritte-Klasse-Passagiere überproportional selten überlebten. Um zu entscheiden, welche der beiden Prinzipien verwendet wurden, müssen wir darum untersuchen, ob sich der Effekt des Geschlechts zwischen den Angehörigen unter-
392 | 10 Regressionsmodelle für kategoriale abhängige Variablen schiedlicher Passagierklassen unterscheidet, und ob das auch für den Geschlechtseffekt zwischen Erwachsenen und Kindern gilt. Lassen Sie uns nun den Originaldatensatz laden:¹⁸ . use titanic, clear
Dieser Datensatz enthält die Dummy-Variablen survived, adult und men sowie die kategoriale Variable class mit Kategorien für die Besatzung (0), die erste Klasse (1), die zweite Klasse (2) und die dritte Klasse (3). Um festzustellen, ob die Passagierklasse einen Einfluss auf die Überlebenschance hatte, spezifizieren wir ein logistisches Regressionsmodell von survived auf die Kategorien von class bei Kontrolle von men und adult. Die Verwendung der unabhängigen Variablen class erfordert die Erzeugung von Dummy-Variablen oder die Verwendung der Faktorvariablennotation. Im Folgenden verwenden wir die Faktorvariablennotation und bestimmen mit Hilfe des ib.-Operators die dritte Klasse (class==3) zur Referenzkategorie: . logit survived adult men ib3.class, nolog Logistic regression
Number of obs LR chi2(5) Prob > chi2 Pseudo R2
Log likelihood = -1105.0306 Std. Err.
z
P>|z|
= = = =
2,201 559.40 0.0000 0.2020
survived
Coef.
[95% Conf. Interval]
adult men
-1.061542 -2.42006
.2440257 .1404101
-4.35 -17.24
0.000 0.000
-1.539824 -2.695259
-.5832608 -2.144862
class Crew First Second
.9200861 1.777762 .7596673
.1485865 .1715666 .1763533
6.19 10.36 4.31
0.000 0.000 0.000
.6288619 1.441498 .4140211
1.21131 2.114027 1.105313
_cons
1.327618
.2480381
5.35
0.000
.8414719
1.813763
Anhand der Vorzeichen der geschätzten Koeffizienten stellen wir zunächst fest, dass die Überlebenschance für Erwachsene geringer war als für Kinder und für Männer kleiner als für Frauen. Dies stützt die Vermutung, dass das Prinzip Frauen und Kinder zuerst angewandt wurde. Wir sehen aber auch, dass die Erste-Klasse-Passagiere von allen Passagierklassen die größten Überlebenschancen hatten und die DritteKlasse-Passagiere die kleinsten; ihre Überlebenschance war sogar noch etwas kleiner als die der Crew, die doch als Letzte das Schiff verlassen sollte. Als Zwischenfazit dürfen wir festhalten, dass Frauen und Kinder zwar bevorzugt gerettet wurden, dass aber die Passagierklasse ebenfalls eine Rolle spielte. 18 Die Daten wurden vom „British Board of Trade“ im Rahmen ihrer Untersuchung zum Untergang der Titanic erhoben und von Dawson (1995) öffentlich zugänglich gemacht.
10.6 Verfeinerte Modelle
| 393
Nebenbei bemerkt: Alle Koeffizienten des Regressionsmodells sind nach üblichen Standards „signifikant“. Der Signifikanztest bezieht sich hier aber nicht auf eine Grundgesamtheit, sondern auf einen datengenerierenden Prozess. Der Test fragt danach, ob das beobachtete Muster auch durch Zufall hätte entstehen können, und die Antwort auf diese Frage ist: Nein, das ist sehr unwahrscheinlich (vgl. dazu auch Abschn. 8.3). Die Untersuchung der erwarteten implizierten Interaktionsterme kann ebenfalls mit Hilfe der Faktorvariablennotation erfolgen: . logit survived i.men##i.adult i.men##ib3.class, nolog
Bevor wir uns nun an die Interpretation dieses Outputs machen, müssen wir Sie auf eine unangenehme Eigenschaft der logistischen Regression, oder, allgemeiner, aller nichtlinearer Wahrscheinlichkeitsmodelle hinweisen. Es ist leider nicht möglich, geschätzte Koeffizienten zwischen Gruppen zu vergleichen, und aus diesem Grund ist auch die Interpretation von Koeffizienten aus Interaktionstermen fehleranfällig (Allison 1999). Das Problem besteht im Wesentlichen darin, dass die Koeffizienten der logistischen Regression in einer nicht näher bestimmten Weise skaliert sind, und dass sich die Skala zwischen verschiedenen Gruppen unterscheiden kann; das ist in etwa so, wie wenn Sie Temperaturen vergleichen und nicht wissen, welche der Angaben in Grad Celsius und welche in Grad Fahrenheit gemessen sind. In der Literatur gibt es eine Reihe von Vorschlägen zum Umgang mit dem Problem (Breen et al. 2011; Williams 2009; Wooldridge 2002), aber soweit wir wissen, gibt es keine Übereinstimmung darin, welches die beste Lösung ist. Da eine ausführliche Schilderung der verschiedenen Lösungen den Rahmen dieses Buches sprengen würde, raten wir Ihnen dringend, die angegebene Literatur zu konsultieren, bevor Sie Interaktionsterme in logistischen Regressionen interpretieren. Für unsere Beispiele verwenden wir durchschnittliche Marginaleffekte zur Interpretation der Interaktionsterme. Die folgende Ausgabe zeigt die durchschnittlichen Marginaleffekte des Geschlechts für die Kategorien von adult und class: . margins adult class, dydx(men) Average marginal effects Model VCE : OIM
Number of obs
=
2,201
Expression : Pr(survived), predict() dy/dx w.r.t. : 1.men dy/dx 1.men
Delta-method Std. Err.
z
P>|z|
[95% Conf. Interval]
adult No Yes
-.2509003 -.5502979
.0814881 .0327675
-3.08 -16.79
0.002 0.000
-.410614 -.6145209
-.0911865 -.4860748
class Crew
-.6304944
.0713627
-8.84
0.000
-.7703626
-.4906262
394 | 10 Regressionsmodelle für kategoriale abhängige Variablen First Second Third
-.6201961 -.7395926 -.2949521
.0376232 .0408843 .0401417
-16.48 -18.09 -7.35
0.000 0.000 0.000
-.6939362 -.8197242 -.3736283
-.546456 -.6594609 -.2162758
Note: dy/dx for factor levels is the discrete change from the base level.
Für männliche Kinder ist die vorhergesagte Überlebenswahrscheinlichkeit im Schnitt um etwa 25 Prozentpunkte niedriger als für weibliche Kinder. Für Erwachsene ist der Unterschied in der vorhergesagten Überlebenswahrscheinlichkeit zwischen Männern und Frauen deutlich größer, nämlich 55 Prozentpunkte. Wie es bei Beachtung des Prinzips Frauen und Kinder zuerst sein sollte, ist der Effekt des Geschlechts bei Erwachsenen stärker als bei Kindern; andererseits ist der Effekt bei Kindern nach wie vor vorhanden. Die Ausgabe zeigt auch, wie sich der Geschlechtseffekt zwischen den Passagierklassen unterscheidet. In der dritten Klasse sind die Überlebenswahrscheinlichkeiten von Männern und Frauen viel ähnlicher als in allen anderen Klassen. Insbesondere sind die Überlebenschancen der Frauen der dritten Klasse äußerst gering. Dies passt zur Vermutung, dass weibliche Passagiere der dritten Klasse keine Plätze in den Rettungsbooten erhielten. Es gibt also Evidenz für beide datengenerierenden Prozesse, dem Prinzip Frauen und Kinder zuerst und dem Mechanismus des Hollywood-Films. Durchschnittliche Marginaleffekte sind eine sinnvolle Möglichkeit, Interaktionseffekte in logistischen Regressionen zu interpretieren. Aber sie sind keinesfalls immer anwendbar. Sie müssen beachten, dass die Größe des durchschnittlichen Marginaleffekts von der beobachteten Verteilung der unabhängigen Variablen abhängt. Durchschnittliche Marginaleffekte sind nur dann zwischen Gruppen vergleichbar, wenn es die Verteilung der unabhängigen Variablen in den Gruppen ebenfalls ist. Generell zurückhaltend wären wir damit, durchschnittliche Marginaleffekte zwischen Gruppen zu vergleichen, die unterschiedlichen Stichproben entstammen und bei denen die Verteilung der unabhängigen Variablen durch Stichprobenausfälle beeinflusst sein könnte.
10.7 Weiterführende Verfahren Neben der logistischen Regression lässt sich mit Stata eine Vielzahl von verwandten Modellen berechnen. Der Platz in diesem Buch reicht nicht aus, um sie ausführlich darzustellen. Für die wichtigsten dieser Verfahren wollen wir jedoch in diesem Abschnitt kurz den Grundgedanken beschreiben. Zur Vertiefung wollen wir ausdrücklich auf die dem jeweiligen Befehl zugeordneten Einträge im alphabetisch geordneten Stata Reference Manual [R] verweisen. Dort finden Sie auch Auswahlbibliographien zu den einzelnen Verfahren.
10.7 Weiterführende Verfahren
| 395
10.7.1 Probit-Modelle Im logistischen Regressionsmodell wurde versucht, die Wahrscheinlichkeit eines Erfolgs durch eine Linearkombination aus einer oder mehreren unabhängigen Variablen zu modellieren. Um sicherzustellen, dass die vorhergesagten Wahrscheinlichkeiten innerhalb der Grenzen von 0 und 1 bleiben, wurde die Wahrscheinlichkeit des Erfolgs einer Logit-Transformation unterzogen. Die Logit-Transformation ist allerdings nicht die einzige Möglichkeit, dies zu erreichen. Ein mögliche Alternative ist die in „ProbitModellen“ genutzte Probit-Transformation. Um eine Vorstellung von dieser Transformation zu bekommen, sollte man sich zunächst die Dichtefunktion der Standardnormalverteilung vergegenwärtigen.
0
.1
y .2
.3
.4
. tw function y = 1/sqrt(2*_pi) * exp(-.5 * x^2), range(-4 4)
−4
−2
0 x
2
4
Sie können diese Grafik wie einen Kern-Dichte-Schätzer (Abschn. 7.3.3.3) der Variablen X interpretieren, d.h., in dieser Variablen kommen Werte um 0 am häufigsten vor und je größer bzw. kleiner die Werte werden, desto seltener sind sie. Nehmen Sie nun an, Sie wählen aus der Variablen X zufällig eine beliebige Beobachtung aus. Wie groß wäre dann die Wahrscheinlichkeit, eine Beobachtung auszuwählen, die einen Wert von kleiner −2 aufweist? Da Werte unter −2 in der Variablen X nicht allzu häufig auftreten, lautet die intuitive Antwort: nicht sehr wahrscheinlich. Wenn Sie es genau wissen wollen, können Sie diese Wahrscheinlichkeit anhand von Tabellen der Verteilungsfunktion der Standardnormalverteilung oder durch den Stata-Befehl . display normal(-2) .02275013
ermitteln. Die Wahrscheinlichkeit, aus einer standardnormalverteilten Variablen eine Beobachtung mit einem Wert von kleiner oder gleich −2 zu ziehen, beträgt demnach etwa 0,023. Die gleiche Berechnung können Sie für beliebige Werte von X wiederholen. Tun Sie dies, und tragen Sie die berechneten Wahrscheinlichkeiten gegen die Werte
396 | 10 Regressionsmodelle für kategoriale abhängige Variablen von X in einem Scatterplot ab, erhalten Sie die kumulative Verteilungsfunktion der Standardnormalverteilung Φ, die wir in folgender Grafik dargestellt haben.
0
.2
.4
y
.6
.8
1
. tw > || function y = normal(x), range(-4 4) > || function y = exp(x)/(1+exp(x)), range(-4 4) > ||, legend(order(1 "Probit-Transformation" 2 "Logit-Transformation"))
−4
−2
0 x
Probit−Transformation
2
4
Logit−Transformation
Die Funktion zeigt einen S-förmigen Verlauf, ähnlich dem der den Logits zugeordneten Wahrscheinlichkeiten. Mit der Verteilungsfunktion der Standardnormalverteilung können Werte zwischen −∞ und +∞ in Werte zwischen 0 und 1 transformiert werden. Entsprechend wandelt die Inverse der Verteilungsfunktion der Standardnormalverteilung (Φ−1 ) die zwischen 0 und 1 liegenden Wahrscheinlichkeiten für einen Erfolg (P(Y = 1)) ähnlich der Logit-Transformation in Werte zwischen −∞ und +∞ um. Die Werte dieser Probit-Transformation eignen sich ebenfalls als abhängige Variable eines linearen Modells. Dies ist das Probit-Modell: Φ−1 [P(Y = 1)] = β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i
(10.16)
Die Schätzung der β-Parameter des Probit-Modells erfolgt wie beim Logit-Model durch Maximum-Likelihood. Die Interpretation der Koeffizienten entspricht derjenigen der bekannten Regressionsmodelle. Hier erhöht sich jedoch der Wert der inversen Verteilungsfunktion der Normalverteilung um jeweils β Einheiten. Durch die Verteilungsfunktion der Standardnormalverteilung können hieraus die Veränderungen der Erfolgswahrscheinlichkeiten berechnet werden. Die vorhergesagten Wahrscheinlichkeiten von Probit-Modellen sind dabei normalerweise weitgehend mit denen von Logit-Modellen identisch, und die Koeffizienten haben üblicherweise den 0,556- bis 0,1625-fachen Wert der Koeffizienten des Logit-Modells (Agresti 1990: 103–104). Insofern handelt es sich beim Probit-Modell nicht um ein weiterführendes, sondern um ein alternatives Verfahren.
10.7 Weiterführende Verfahren
| 397
Der Stata-Befehl zur Berechnung von Probit-Modellen lautet probit. Die Syntax des Befehls entspricht derjenigen aller Modellbefehle in Stata. Als Beispiel können Sie das zuletzt berechnete Logit-Modell (S. 393) als Probit-Modell berechnen: . probit survived men adult i.class, nolog Probit regression
Number of obs LR chi2(5) Prob > chi2 Pseudo R2
Log likelihood = -1106.3142 Std. Err.
z
P>|z|
= = = =
2,201 556.83 0.0000 0.2011
survived
Coef.
[95% Conf. Interval]
men adult
-1.44973 -.5803382
.0808635 .1377535
-17.93 -4.21
0.000 0.000
-1.608219 -.85033
-1.29124 -.3103463
class First Second Third
.5399101 -.0898158 -.4875252
.0951552 .1028857 .0800342
5.67 -0.87 -6.09
0.000 0.383 0.000
.3534092 -.2914681 -.6443893
.7264109 .1118364 -.3306611
_cons
1.277019
.1648489
7.75
0.000
.9539214
1.600117
Weitere Hinweise zum Probit-Modell finden Sie unter [R] probit.
10.7.2 Multinomiale logistische Regression Die multinomiale logistische Regression wird angewandt, wenn die abhängige Variable mehr als zwei Kategorien aufweist, die nicht in eine Rangordnung gebracht werden können. Ein Beispiel für eine solche Variable wäre die Parteipräferenz mit den Ausprägungen für die CDU/CSU,¹⁹ für die SPD und für die sonstigen Parteien. Das Hauptproblem der Anwendung der multinomialen logistischen Regression besteht in der Interpretation der Koeffizienten. Darum wird sich der Schwerpunkt dieses Abschnittes damit befassen. Zum Verständnis dieses Problems ist es allerdings unumgänglich, eine zumindest intuitive Vorstellung der statistischen Grundlagen des Verfahrens zu erlangen. Diese sollen daher im Folgenden kurz angesprochen werden (ausführlich: Long 1997). In der multinomialen logistischen Regression wird die Wahrscheinlichkeit für jede Ausprägung der abhängigen Variablen vorhergesagt. Hierzu könnte man zunächst binäre²⁰ logistische Regressionen für jede Ausprägung der abhängigen Variablen berechnen. In unserem Beispiel mit der Parteipräferenz könnte man zunächst drei getrennte logistische Regressionen berechnen: Eine logistische Regression mit der ab19 Im Folgenden verwenden wir die die Bezeichnung „CDU“ an Stelle von CDU/CSU. 20 Zur Unterscheidung von der multinomialen logistischen Regression bezeichnen wir die in den vorangegangenen Abschnitten beschriebene logistische Regression auf eine dichotome abhängige Variable als binäre logistische Regression.
398 | 10 Regressionsmodelle für kategoriale abhängige Variablen hängigen Variablen CDU vs. Nicht-CDU, eine logistische Regression mit der abhängigen Variablen SPD vs. Nicht-SPD und schließlich eine Regression mit der abhängigen Variablen der Sonstigen vs. Nicht-Sonstigen: P(Y = CDU) (1) (1) (1) (1) = β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i , P(Y = Nicht-CDU) P(Y = SPD) (2) (2) (2) (2) ln = β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i und P(Y = Nicht-SPD) P(Y = Sonst.) (3) (3) (3) (3) ln = β0 + β1 x1i + β2 x2i + … + βK−1 xK−1,i . P(Y = Nicht-Sonst.) ln
Das eingeklammerte Superscript bedeutet, dass sich die β-Parameter der ein(1) (2) (3) zelnen Gleichungen unterscheiden: βk ≠ βk ≠ βk . Zur Vereinfachung der No(1)
(1)
tation werden wir β1 … βK−1 mit b(1) bezeichnen und entsprechend die Sets der b-Koeffizienten aus den beiden anderen Gleichungen mit b(2) bzw. b(3) . Aus den drei getrennten Regressionen lässt sich für jede Ausprägung der abhängigen Variablen eine vorhergesagte Wahrscheinlichkeit berechnen. Allerdings addieren sich diese vorhergesagten Wahrscheinlichkeiten nicht zu 1. Dies sollte jedoch der Fall sein, da ja eine der drei Möglichkeiten – SPD oder CDU oder Sonstige – vorliegen muss.²¹ Aus diesem Grund erscheint es sinnvoll, b(1) , b(2) und b(3) gemeinsam zu schätzen, und dabei die Vorschrift, dass sich die vorhergesagten Wahrscheinlichkeiten zu 1 aufaddieren müssen, einzuhalten. Leider ist ein Modell, bei dem b(1) , b(2) und b(3) gemeinsam bestimmt werden sollen, nicht eindeutig lösbar. Um das Modell eindeutig schätzen zu können, muss die Zahl der zu schätzenden Koeffizienten reduziert werden. Dazu wird ein Teil der Koeffizienten auf einen arbiträren Wert gesetzt. Im multinomialen logistischen Regressionsmodell werden üblicherweise die Koeffizienten einer der Gleichungen auf 0 gesetzt. So kann man z.B. b(1) = 0 setzen. Danach ist das Modell identifiziert und die verbleibenden Koeffizienten können nach dem MaximumLikelihood-Prinzip geschätzt werden. Dabei spielt es keine Rolle, welcher Set von Koeffizienten auf 0 gesetzt wird. Der Stata-Befehl zur Schätzung der Parameter der multinomialen logistischen Regression verwendet in seiner Voreinstellung stets den Set, welcher der häufigsten Kategorie entspricht. Wir wollen die Interpretation der Koeffizienten nun an einem Beispiel vorführen. Bitte laden Sie hierzu data1.dta: . use data1, clear
21 Wir lassen hier die Möglichkeit keiner Parteipräferenz außer Acht. Tut man dies nicht, so müsste man ein weiteres Regressionsmodell für diese Option berechnen. Danach sollten sich die vorhergesagten Wahrscheinlichkeiten der vier Regressionen zu 1 aufaddieren.
10.7 Weiterführende Verfahren
| 399
Bilden Sie nun eine Variable für die Parteipräferenz, bei der Sie die Parteien, die nicht im deutschen Bundestag sind, außen vor lassen. Bilden Sie außerdem eine Variable für das Lebensalter. . gen party:pib = pib if pib < 6 . gen age = 2009 - ybirth
Der Stata-Befehl für die multinomiale logistische Regression lautet mlogit. Die Syntax des Befehls entspricht der Syntax aller Modellbefehle, d.h., nach dem Befehl folgt erst die abhängige Variable und dann die Liste der unabhängigen Variablen. Mit der Option baseoutcome() können Sie die Gleichung bestimmen, deren b-Koeffizienten auf 0 gesetzt wird. Mit . mlogit party yedu age, base(1) nolog Multinomial logistic regression
Number of obs LR chi2(8) Prob > chi2 Pseudo R2
Log likelihood = -2515.1866 party SPD
Coef.
Std. Err.
z
P>|z|
= = = =
1,948 193.62 0.0000 0.0371
[95% Conf. Interval]
(base outcome)
CDU_CSU
yedu age _cons
.0145588 .0098657 -.6472421
.0195694 .0032362 .3364861
0.74 3.05 -1.92
0.457 0.002 0.054
-.0237966 .0035228 -1.306743
.0529141 .0162086 .0122586
yedu age _cons
.1797254 -.0059135 -3.61921
.0308604 .0059058 .5720866
5.82 -1.00 -6.33
0.000 0.317 0.000
.1192401 -.0174887 -4.740479
.2402108 .0056618 -2.497941
Greens_B90 yedu age _cons
.2504939 -.021925 -3.478488
.0275987 .005449 .5036535
9.08 -4.02 -6.91
0.000 0.000 0.000
.1964014 -.0326048 -4.465631
.3045864 -.0112451 -2.491346
.1104863 .0146143 -3.828885
.0318876 .0058458 .5941485
3.46 2.50 -6.44
0.001 0.012 0.000
.0479877 .0031568 -4.993395
.1729849 .0260718 -2.664375
FDP
Linke
yedu age _cons
berechnen Sie eine multinomiale logistische Regression der Parteipräferenz gegen die Bildung (in Bildungsjahren) und das Geburtsjahr. Dabei werden die b-Koeffizienten der Gleichung für die SPD auf 0 gesetzt. Im Unterschied zur binären logistischen Regression ist der Koeffizientenblock in mehrere Bereiche unterteilt. Der oberste Bereich enthält die Koeffizienten der Gleichung für die CDU/CSU, gefolgt von der Gleichung für die FDP usw. Außer für die Ba-
400 | 10 Regressionsmodelle für kategoriale abhängige Variablen siskategorie findet sich für jede Kategorie der abhängigen Variablen ein Bereich mit Koeffizienten. Als Resultat der Setzung von b(SPD) = 0 sind die Koeffizienten der beiden anderen Gleichungen relativ zu den SPD-Anhängern zu interpretieren. Damit meinen wir, dass die Koeffizienten in der Gleichung für die CDU/CSU angeben, wie sich die logarithmierte Chance, die CDU/CSU und nicht die SPD zu präferieren, ändert, wenn sich die unabhängigen Variablen um eine Einheit erhöhen. In der Gleichung für die FDP geben die Koeffizienten die Veränderungen der logarithmierten Chance wieder, die anderen Parteien und nicht die SPD zu präferieren usw. Die Interpretation der Koeffizienten der multinomialen logistischen Regression ist insofern problematisch, als die Vorzeicheninterpretation nicht angewandt werden kann. Das positive Vorzeichen der Bildungsdauer in der Gleichung für die CDU/CSU bedeutet nicht zwingend, dass die Wahrscheinlichkeit einer Präferenz für die CDU/CSU mit der Bildung zunimmt. In unserem Regressionsmodell lässt sich dies am Beispiel des b-Koeffizienten für die Variable ybirth aus der Gleichung für die CDU/CSU demonstrieren. Notieren wir die Wahrscheinlichkeit, die CDU/CSU zu präferieren, mit PCDU/CSU , und die Wahrscheinlichkeit, die SPD zu präferieren, mit PSPD , so ergibt sich der oben angesprochene b-Koeffizient als (CDU/CSU)
byedu
= ln ( = ln (
P̂ CDU/CSU|yedu P̂ CDU/CSU|yedu+1 ) − ln ( ) P̂ SPD|yedu+1 P̂ SPD|yedu
P̂ SPD|yedu P̂ CDU/CSU|yedu+1 × ) . P̂ CDU/CSU|yedu P̂ SPD|yedu+1
Der b-Koeffizient des Geburtsjahrs in der Gleichung für die CDU/CSU ist damit zum einen abhängig von der Veränderung der Wahrscheinlichkeit für eine CDU/CSUPräferenz mit dem Geburtsjahr, zum anderen aber auch von der entsprechenden Veränderung der Wahrscheinlichkeit für die SPD-Wahl. Anders als beim binären LogitModell ist die Veränderung der Wahrscheinlichkeit der SPD-Präferenz im multinomialen Logit-Modell jedoch nicht vollständig abhängig von der Veränderung der Wahrscheinlichkeit für die CDU/CSU-Präferenz. Insofern ist der b-Koeffizient ausschließlich, hauptsächlich oder teilweise vom Wahrscheinlichkeitsverhältnis in der Basiskategorie abhängig. Um Fehlinterpretationen der multinomialen logistischen Regression zu vermeiden, empfehlen wir Ihnen die Verwendung von durchschnittlichen Marginaleffekten oder grafische Darstellungen der Ergebnisse in Form von Conditional-Effects-Plots. Wie immer lassen sich diese Plots mit margins und marginsplot erstellen. Allerdings müssen wir bei der Verwendung von margins angeben, auf welche Gleichung der Befehl angewandt werden soll. Im folgenden Beispiel verwenden wir hierzu die Option predict(outcome(2)), um die Berechnung der vorhergesagten Wahrscheinlichkeiten für Kategorie 2, der CDU/CSU anzufordern. Gleichzeitig fixieren wir das Alter auf 40 Jahre.
10.7 Weiterführende Verfahren
| 401
. margins, at(yedu=(9(1)18) age=40) predict(outcome(2)) . marginsplot
.2
.25
Pr(Party==Cdu_Csu) .3 .35
.4
.45
Adjusted Predictions with 95% CIs
9
10
11
12 13 14 15 Number of Years of Education
16
17
18
Beachten Sie, dass die vorhergesagte Wahrscheinlichkeit einer CDU/CSU- Präferenz mit der Bildungsdauer abnimmt, obwohl der geschätzte Koeffizient von yedu in der Ausgabe des Regressionsmodells positiv ist.
10.7.3 Ordinale Logit-Modelle Ordinale Logit-Modelle werden angewandt, wenn die abhängige Variable ordinales Skalenniveau aufweist. Das heißt, die abhängige Variable hat mehr als zwei Ausprägungen, die sich in eine Rangordnung bringen lassen, wobei die Größe der Abstände zwischen den Werten bedeutungslos ist. Ein Beispiel wäre die Frage nach der Sorge über die Kriminalitätsentwicklung, auf welche mit „keine Sorgen“, „einige Sorgen“ oder „große Sorgen“ geantwortet werden kann. In einem Datensatz könnte man diesen Antworten z.B. die Werte 0, 1 und 2 zuweisen. Genauso gut könnte man jedoch die Werte 0, 10 und 12 verwenden. Ein statistisches Modell sollte deshalb für beide Vercodungen der Variablen dieselben Ergebnisse produzieren. Zur Modellierung von ordinalen abhängigen Variablen stehen prinzipiell zwei Strategien zur Verfügung. Die erste Strategie verwendet die multinomiale logistische Regression, wobei den Koeffizienten bestimmte „Constraints“ auferlegt werden („Stereotype-Modell“). Die zweite Strategie ist eine Verallgemeinerung der binären logistischen Regression auf Variablen mit mehr als zwei Ausprägungen („ProportionalOdds-Modell“). Anderson (1984) diskutiert die Anwendungsbedingungen der beiden Modelltypen. Die Logik des Stereotype-Modells ist schnell erklärt. In der multinomialen logistischen Regression wird für jede Ausprägung der abhängigen Variablen ein eigener Koeffizient ermittelt. Deshalb konnte Alter im Regressionsmodell auf Seite 399 einen positiven Effekt in der Gleichung für die CDU/CSU vs. SPD haben und einen negativen
402 | 10 Regressionsmodelle für kategoriale abhängige Variablen Effekt in der Gleichung für FDP vs. SPD. Wenn die abhängige Variable eine Rangordnung aufweist, wird man normalerweise jedoch keine Richtungsänderung der Effekte erwarten. Betrachten Sie hierzu das Beispiel der Variablen für die Sorgen über die Kriminalitätsentwicklung (wor09). Diese Variable enthält die Werte 1 für „große Sorgen“, 2 für „einige Sorgen“ und 3 für „keine Sorgen“. Bitte berechnen Sie einmal eine multinomiale logistische Regression dieser Variablen gegen die Bildungsdauer. Bevor Sie dies tun, sollten Sie allerdings die Variable wor90 spiegeln, damit hohe Werte großen Sorgen entsprechen und umgekehrt: . generate worries = 4 - wor09 . mlogit worries yedu, base(1)
Sie erhalten einen Koeffizienten von ca. −0, 1158 in der Gleichung für einige Sorgen und −0, 232 in der Gleichung für die großen Sorgen. Hier ändert sich die Richtung der Koeffizienten nicht. Wenig erstaunlich, werden Sie sagen, denn wenn die Bildung die Chance, sich einige Sorgen (und nicht keine Sorgen) zu machen, reduziert, so sollte die Bildung auch die Chance, sich große Sorgen (und nicht keine Sorgen) zu machen, reduzieren. Berechnet man eine multinomiale logistische Regression, wird diese Vermutung allerdings ignoriert. Man kann solche Vermutungen jedoch in das Modell einführen, indem man die b-Koeffizienten mit sog. „Constraints“ belegt. Durch Constraints kann man vor der Berechnung eines Modells bestimmte Strukturen der b-Koeffizienten festlegen. So könnte man z.B. festlegen, dass die Bildung die Chance, sich einige Sorgen (und nicht keine Sorgen) zu machen, in genau dem gleichen Maße reduziert, wie die Chance sich große Sorgen (und nicht einige Sorgen ) zu machen. In diesem Fall müsste der Koeffizient der Bildung für die großen Sorgen genau doppelt so hoch sein wie der Koeffizient der Bildung für einige Sorgen. Durch den Befehl constraint können Sie diese Struktur dem mlogit-Befehl mitteilen. Mit . constraint define 1 [3]yedu = 2*[2]yedu
definieren Sie den Constraint Nr. 1, der besagt, dass der Koeffizient der Variablen yedu in der dritten Gleichung genau zweimal so hoch sein soll wie der Koeffizient der Variablen yedu in der zweiten Gleichung. Durch die Option constraints() des mlogit-Befehls können Sie den Constraint Nr. 1 nutzen. Hierzu geben Sie innerhalb der Klammer die Nummer des Constraints an, den Sie verwenden wollen: . mlogit worries yedu, base(1) constraints(1)
Wenn Sie dieses Modell berechnen, werden Sie feststellen, dass es mit dem vorangegangenen nahezu identisch ist. Es ist aber viel sparsamer, da im Prinzip nur ein Koeffizient der Bildung berechnet werden muss. Der andere Koeffizient ergibt sich aus der ordinalen Struktur der abhängigen Variablen und unserer Vermutung, dass die Bildung die Sorgen proportional erhöht.
10.7 Weiterführende Verfahren
| 403
Die Festsetzung spezifischer, die ordinale Struktur der abhängigen Variablen berücksichtigender Constraints ist ein Weg, die ordinale abhängige Variable zu modellieren. Dabei ist der vorgeführte Constraint nur ein Beispiel für zahlreiche Alternativen. Ein anderer Ansatz wird dagegen vom „Proportional-Odds-Modell“ verfolgt. Bei diesem Modell wird der Wert der ordinalen Variablen als Resultat der Kategorisierung einer zu Grunde liegenden metrischen Variablen aufgefasst. Bezogen auf das Beispiel könnte man sagen, dass die Variable worries nur grob die Einstellung gegenüber der Kriminalitätsentwicklung wiedergibt. Die Einstellung der Leute variiert wahrscheinlich zwischen unendlich viel Sorge und überhaupt keiner Sorge und kann dazwischen jeden beliebigen Wert annehmen. Durch die Antwortvorgaben keine, einige und große Sorgen wird die Variable schon bei der Befragung kategorisiert, wobei wir aber nicht genau wissen, bei welchen Werten (κ1 , κ2 ) der Einstellung wir die Kategorisierung vornehmen. Alles, was wir sagen können, ist, dass unsere beobachtete ordinale Variable (Y) die Ausprägung k = 1 erhält, wenn die unbekannte Einstellung E plus einem Messfehler u unterhalb der unbekannten Grenze κ1 liegt. Die beobachtete ordinale Variable erhält die Ausprägung k = 2, wenn sie zwischen den unbekannten Grenzen κ1 und κ2 liegt, und die Ausprägung k = 3, wenn die Einstellung über κ2 liegt. Nun sollten Sie sich an die vorhergesagten Werte (L)̂ der binären logistischen Regression erinnern. Diese Werte lagen im Bereich von −∞ bis +∞. Insofern könnte man diese vorhergesagten Werte als die unbekannte metrische Einstellung E auffassen. Wären nun die Werte von κk bekannt, so könnte man, bei Annahme einer spezifischen Verteilung des Messfehlers u, für jede Beobachtung die Wahrscheinlichkeit ermitteln, mit welcher Y die Ausprägung k erhält. In einem Proportional-Odds-Modell werden die Werte von κk sowie eine Linearkombination aus unabhängigen Variablen für Y geschätzt. Ein Beispiel mag dies verdeutlichen. Der Befehl für das Proportional-Odds-Modell in Stata lautet ologit. Die Syntax des Befehls folgt der aller Modellbefehle: Nach dem Befehl steht die abhängige Variable, gefolgt von der Liste der unabhängigen Variablen. Wir wollen hier das gleiche Modell wie oben berechnen: . ologit worries yedu, nolog Ordered logistic regression
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
Log likelihood = -4843.0868 worries
Coef.
Std. Err.
yedu
-.1496667
.0104568
/cut1 /cut2
-3.590283 -1.066422
.136148 .1241718
z -14.31
P>|z| 0.000
= = = =
5,002 209.52 0.0000 0.0212
[95% Conf. Interval] -.1701617
-.1291717
-3.857128 -1.309794
-3.323438 -.8230495
Der vorhergesagte Wert dieses Modells für Befragte mit zehn Bildungsjahren ist −0, 149667 × 10 = −1, 50. Die geschätzten Werte für κ1 und κ2 werden unterhalb des
404 | 10 Regressionsmodelle für kategoriale abhängige Variablen Koeffizientenblocks ausgegeben. Die vorhergesagte Wahrscheinlichkeit, dass Befragte mit einem vorhergesagten Wert von −1, 50 als Personen mit einigen Sorgen klassifiziert werden, entspricht der Wahrscheinlichkeit, dass −1, 50 + uj ≤ −3, 590 ist, bzw. anders formuliert, der Wahrscheinlichkeit, dass uj ≤ −2, 094 ist. Nimmt man an, der Fehler folge einer logistischen Verteilung, so ergibt sich diese vorhergesagte Wahrscheinlichkeit durch 1 − 1/(1 + e−0,2094 ) = 0, 11. Für weitere Information zum Proportional-Odds-Modell vgl. [R] ologit.
10.8 Übungen 1.
Laden Sie folgenden Teildatensatz des „National Longitudinal Survey 1988“ in den Arbeitsspeicher: . webuse nlsw88, clear
2.
Schätzen Sie die Koeffizienten eines logistischen Regressionsmodells der Variablen union gegen folgende unabhängigen Variablen: – tenure (zentriert) – age (zentriert) – collgrad – race 3. Erstellen Sie eine Variable mit den vorhergesagten Wahrscheinlichkeiten für alle Beobachtungen. 4. Ermitteln Sie die durchschnittlichen geschätzten Odds in einer Gewerkschaft organisiert zu sein für folgende Personengruppen: (a) Befragte mit durchschnittlichem Alter und durchschnittlicher Betriebszugehörigkeit ohne Universitätsabschluss. (b) Schwarze Befragte mit Universitätsabschluss im durchschnittlichen Alter und mit durchschnittlicher Betriebszughörigkeit. (c) Absolventen mit College-Abschluss. 5. Ermitteln Sie, wie die geschätzte Wahrscheinlichkeit, in einer Gewerkschaft organisiert zu sein, für Personen ohne College-Abschluss im durchschnittlichen Alter mit der Betriebszugehörigkeit variiert. Stellen Sie die Wahrscheinlichkeiten grafisch dar. 6. Schätzen Sie entsprechende Wahrscheinlichkeit für Befragte mit einem CollegeAbschluss. Fügen Sie Ihrer Grafik eine Linie für diese Wahrscheinlichkeiten hinzu. 7. Untersuchen Sie die funktionale Form des Effektes der Betriebszugehörigkeit. Ist der Zusammenhang linear? 8. Erstellen Sie eine Klassifikationstabelle; nutzen Sie dazu zunächst die vorhergesagten Wahrscheinlichkeiten, danach den Stata-Befehl estat classification.
10.8 Übungen
9.
| 405
Führen Sie einen „Likelihood-Ratio-Test“ für den Einfluss des Alters durch. Was folgt aus diesem Test? 10. Erstellen Sie einen Scatterplot von δχ 2 gegen die vorhergesagten Wahrscheinlichkeiten. Beschriften Sie die Markersymbole mit dem Kovariaten-Muster. Welche Schlussfolgerung ziehen Sie aus der Analyse? 11. Untersuchen Sie die Zusammenhang zwischen den „High-Influence-Points“ und dem Wirtschaftssektor (industry). Was schließen Sie daraus? Führen Sie eine Kontrollvariable mit den Kategorien Urproduktion, industrieller Sektor, Dienstleistungssektor in das Modell ein und interpretieren Sie die Veränderung der geschätzten Koeffizienten.
11 Daten lesen und schreiben Zu Beginn der vorangegangenen Kapitel baten wir Sie jeweils, einen Datensatz zu laden. Dazu reichte es normalerweise aus, den Befehl use gefolgt von einem Dateinamen einzugeben. Meistens verwendeten wir¹ . use data1, clear
In der Praxis ist es leider nicht immer so einfach. Manchmal liegen die Daten, die Sie verwenden wollen, nicht im Stata-Format vor, sondern in Formaten für Programme wie SAS, SPSS oder Excel, und manchmal stehen Ihnen die Daten nicht einmal als Datei zur Verfügung. Nach einer kurzen Erläuterung des Begriffs „Rechteck-File“ (Abschn. 11.1), werden wir Ihnen zunächst zeigen, wie Sie verschiedene Arten maschinenlesbarer Dateien in Stata importieren können (Abschn. 11.2). Maschinenlesbare Daten finden Sie auf Festplatten von Computern, auf CD-ROMs, Memory-Sticks, Internetseiten oder beliebigen anderen Speichermedien. Solche Daten sind meistens nicht im Stata-Format und können daher nicht mit dem Befehl use gelesen werden. In Abschnitt 11.3 besprechen wir, wie Sie nicht maschinenlesbare Daten in Stata einlesen. Beispiele sind Informationen in statistischen Jahrbüchern oder ausgefüllte Fragebögen von Umfragen. Danach werden wir Daten behandeln, die zwar im Stata-Format vorliegen, die aber auf verschiedene Dateien verteilt sind (Abschn. 11.4). Das Vorgehen werden wir dabei anhand von Datensätzen des GSOEP vorführen. Abschnitt 11.5 befasst sich dann mit der Frage, wie die von Ihnen erzeugten Datensätze gespeichert werden können.
11.1 Das Ziel: Die Datenmatrix Bevor Sie beginnen, sollten Sie sich noch einmal den aus den vorangegangenen Kapiteln bekannten Datensatz data1.dta betrachten: . describe
Wie Sie sehen, besteht der Datensatz aus 5.511 Beobachtungen und 65 Variablen. Einen anderen Blick auf den Datensatz erhalten Sie mit dem Befehl . browse
Dieser Befehl startet den Stata-Browser (Abb. 11.1). Der Browser ist ein eigenes Fenster mit einer Tabelle, die Text- und Zahlenfelder enthält. In der grau unterlegten Kopfzeile (der ersten Zeile der Tabelle) stehen die Namen der Variablen. In der grau 1 Achten Sie darauf, dass Sie sich im Arbeitsverzeichnis c:\data\kk befinden, bevor Sie diesen Befehl eingeben (vgl. S. 12).
11.1 Das Ziel: Die Datenmatrix
| 407
Abb. 11.1. Der Stata-Browser in Stata für Linux
unterlegten ersten Spalte erscheint eine fortlaufende Nummerierung von 1 bis 5.411. In jeder Zeile dieser Tabelle befinden sich demnach Informationen zu einer der 5.411 befragten Personen (Fälle/Beobachtungen). Jede Spalte der Tabelle enthält die unterschiedlichen Ausprägungen je einer der insgesamt 65 Variablen für alle 5.411 Personen. Eine solche Tabelle wird als „Datenmatrix“ bezeichnet. In der ersten weißen Spalte steht die Personennummer. Für jede befragte Person steht hier eine andere Zahl. Wenn Sie die Zeile der Person mit der Personennummer 8501 verfolgen, können Sie der vierten Spalte entnehmen, dass diese Person im Jahre 1932 geboren wurde. In der zwölften Spalte der Person 8501 fehlt die Angabe über deren Einkommen. An Stelle dieser Angabe taucht ein Punkt im Browser auf. Dieser Punkt ist die Darstellung eines fehlenden Wertes („Missing“). Da in allen leeren Zellen Missings verwendet werden, ist die Datenmatrix rechteckig. Das heißt, sie hat für alle Fälle die gleiche Spaltenzahl. Sie haben nun gesehen, wie die Datenstruktur aussehen sollte, damit der Datensatz in Stata sinnvoll bearbeitet werden kann. In den folgenden Abschnitten werden Sie lernen, wie Sie zu einer solchen Datenstruktur gelangen. Den Browser können Sie nunmehr schließen. Dazu drücken Sie Alt+F4 oder verwenden die Maus so, wie Sie es zum Schließen von Fenstern in Ihrem Betriebssystem gewohnt sind.
408 | 11 Daten lesen und schreiben Tab. 11.1. Dateinamenerweiterungen von Statistikpaketen Extension
Origin
.dta .odf .por .rda, .rdata .sav .xls, .xlsx .xpt
Stata OpenOffice Calc SPSS (portable) R SPSS Excel SAS (portable)
11.2 Import maschinenlesbarer Daten Statistische Ämter und ähnliche Einrichtungen stellen inzwischen große Mengen von Daten auf maschinenlesbaren Datenträgern (z.B. CD-ROM) oder im Internet zur Verfügung.² Diese können von Wissenschaftlern für Sekundäranalysen³ genutzt werden. Leider stehen die Datensätze, die Sie aus derartigen Datenarchiven bekommen, nur selten als „Stata-System-File“ zur Verfügung. Häufig handelt es sich um SystemFiles anderer Datenanalysepakete (SAS, SPSS, R), einer Datenbank (Access, Oracle, MySQL) oder eines Tabellenkalkulationsprogramms (Excel, OpenOffice Calc). Die Herkunft einer Datei kann in den allermeisten Fällen aus der Dateinamenerweiterung erschlossen werden. Die meisten Computerprogramme vergeben automatisch eine Dateinamenerweiterung, wenn man mit ihnen eine Datei speichert; Microsoft Word vergibt zum Beispiel die Erweiterung .docx. Wenn wir auf eine Datei mit der Dateinamenerweiterung .docx stoßen, wissen wir darum, dass diese Datei mit Microsoft Word gelesen werden kann. Tabelle 11.1 führt Dateinamenerweiterungen von einigen häufiger genutzten Datenanalyseprogrammen auf. Die in Tabelle 11.1 aufgeführten Dateitypen sind allesamt Binärdateien. Zwar lassen sich einige der Dateiformate direkt mit Stata einlesen, der primäre Zweck der Dateien ist es aber, durch diejenige Software gelesen zu werden, von der das Dateiformat stammt. Bei denjenigen Formaten, die Stata nicht direkt lesen kann, benötigen Sie eine spezielle Software, die das vorhandene Format in ein von Stata lesbares Format übersetzt. Wenn eine Datei keine der in der Tabelle genannten Erweiterungen hat, handelt es sich mit einiger Wahrscheinlichkeit um eine Textdatei. Physisch werden auch reine Textdateien binär gespeichert. Der Inhalt der Dateien wird aber für alle Anwendungen in Text umgewandelt, wobei bestimmte Regeln verwendet werden. Diese sog. 2 Unter http://ifdo.org/wordpress/ finden Sie eine Liste von Archiven. 3 Als Sekundäranalysen werden Analysen bezeichnet, die mit nicht selbst erhobenen Daten durchgeführt werden.
11.2 Import maschinenlesbarer Daten
| 409
„Zeichencodierungen“ können sich unterscheiden. In der Regel wirde die „erweiterte ASCII-Codierung“ verwendet, wobei in Deutschland ISO 8859-1 („Latin-1“) Kodierung gebräuchlich ist. Stata 14 kann zudem mit Textdateien umgehen, die in Unicode codiert sind. Öffnet man eine Textdatei mit einer anderen Zeichencodierung als derjenigen, die zum Speichern verwendet wurde, werden Umlaute und Sonderzeichen falsch dargestellt (siehe hierzu ausführlich Abschn. 11.7). Im Gegensatz zu den binären Dateiformaten aus Tabelle 11.1 gibt es für Textdateien keine feststehende Dateinamenerweiterung (typische Erweiterungen sind aber .txt, .tsv, .csv, .raw, .out und .asc). Die einfachste Methode, um festzustellen, ob eine Datei im Text-Format vorliegt, ist der Stata-Befehl type. Mit type Dateiname wird Ihnen im Ausgabefenster der Inhalt der genannten Datei angezeigt, ohne dass diese Datei in den Stata-Arbeitsspeicher geladen wird. Sie können den Unterschied zwischen System- und Text-Files leicht sehen, wenn Sie folgende Befehle eingeben: . type popst1.dta . type popst1.xls . type popst1.raw
Die Ausgabe der ersten beiden Befehle ist ziemlich verwirrend. Nur die Ausgabe von type popst1.raw ist für Menschen lesbar.⁴ Dies ist ein guter Indikator dafür, dass es sich um einen reinen Textdatei handelt. Seit Stata 14 müssen wir diesen letzten Satz allerdings etwas einschränken, da Stata 14 grundsätzlich mit Dateien umgehen kann, die in Unicode codiert sind. Das kann dazu führen, dass eine Textdatei aus Ihnen völlig unbekannte Buchstaben besteht – so etwa tibetische oder chinesische Schriftzeichen, Runen oder Hieroglyphen. Es könnte daher durchaus sein, dass Sie eine Datei als „nicht für Menschen lesbar“ einschätzen, sie aber dennoch eine Textdatei in unserem Sinne ist (Details zu Unicode finden Sie in Abschnitt 11.7). Reine Textdateien können direkt in Stata eingelesen werden.
11.2.1 Einlesen von System-Files anderer Programme 11.2.1.1 Reading Excel files Viele frei verfügbare Datensätze sind im Dateiformat von Microsoft Excel vorhanden. Stata enthält darum einen Import-Filter, der es möglich macht, diese Dateien direkt mit Stata zu lesen. Excel-Dateien weisen aber einige Besonderheiten auf, die das direkte Übersetzen in Dateiformate für Datenanalyseprogramme erschweren. Diese Besonderheiten wollen wir Ihnen hier zunächst kurz verdeutlichen.
4 Alle Dateien unseres Datenpakets, deren Namen mit pop beginnen, enthalten Einwohnerzahlen und Flächen der deutschen Bundesländer aus dem Jahre 2010. Die Dateien wurden mit dem Do-File crpop.do aus dem deutschen Gemeindeverzeichnis erzeugt, das auf der Homepage des Statistischen Bundesamtes (http://www.destatis.de) liegt.
410 | 11 Daten lesen und schreiben
Abb. 11.2. Excel-Datei popst1.xls in einem Fenster von OpenOffice Calc
Abbildung 11.2 zeigt eine Datei im Excel-Format in einem Fenster von OpenOffice Calc. Die Daten sind in einer Datenmatrix, die derjenigen von Statas Browser-Fenster (Abbildung 11.1) zum Verwechseln ähnlich sieht. Doch es gibt durchaus einige Unterschiede: – Die erste Zeile der Datenmatrix von Excel enthält Informationen über die Bedeutung der einzelnen Spalten. Die meisten Excel-Dateien haben mindestens eine solcher Zeilen, oft sind es auch mehrere. Beim Einlesen der Datei in Stata spielt es eine zentrale Rolle, wie mit solchen Zeilen umgegangen wird. – Beim Anzeigen der Datenmatrix einer Excel-Datei mit Excel (oder OpenOffice Calc) werden die Daten in einer großen Tabelle, dem sog. Arbeitsblatt, angezeigt. Dabei kann das Arbeitsblatt mehrere Datenmatrizen enthalten, ohne dass man dies auf Anhieb bemerken würde. In unserer Abbildung könnte es zum Beispiel eine Tabelle in den Zellen AA-1 bis AF-17 geben. In der gewählten Ansicht wäre dies optisch nicht von einem Fall unterscheidbar, bei dem nur die Daten der Zellen A-1 bis F-17 sichtbar wären. Liest man Excel-Dateien in Stata ein, werden aus leeren Zeilen oder Spalten zwischen den verschiedenen Teiltabellen Variablen und Beobachtungen mit Missings. – Zellen in Excel können eine Zahl enthalten, die das Ergebnis der Anwendung einer Formel darstellt. Häufig sind das z.B. Zahlen, welche die Summe der Einträge einer Zeile oder Spalte darstellen. In diesen Fällen importiert Stata die Zahl und nicht die Formel. – In Excel kann jede Zelle ein anderes Datenformat haben. Das Datenformat einer bestimmten Zelle hat darum keinen Einfluss auf das Datenformat in der Zelle der-
11.2 Import maschinenlesbarer Daten
–
| 411
selben Spalte. Es ist darum möglich, dass manche Zahlen, die wie Zahlen aussehen, von Excel als Strings, d.h. wie Buchstaben, aufgefasst werden. Excel-Dateien enthalten häufig mehr als ein Arbeitsblatt, so auch die Datei popst1.xls. Außer dem sichtbaren Arbeitsblatt Absolute (mit den Absolutzahlen) gibt es noch ein zweites Arbeitsblatt mit den Namen Percent mit relativen Häufigkeiten.
Nun da Sie über diese Besonderheiten von Excel-Dateien Bescheid wissen, können wir Ihnen die Funktionsweise von Statas Importfilter für Excel-Dateien erläutern. Aufgerufen wird der Importfilter mit dem Befehl import excel. In seiner einfachsten Form genügt die Eingabe des Befehls unter Nennung eines Dateinamens. Hier ist ein Beispiel: . import excel popst1, clear . describe Contains data obs: vars: size:
17 6 1,751
variable name
storage type
A B C D E F
str22 str17 str10 str17 str19 str18
display format
value label
variable label
%22s %17s %10s %17s %19s %18s
Sorted by: Note: Dataset has changed since last saved.
Die Excel-Datei wurde in einen Stata-Datensatz mit 6 Variablen und 17 Beobachtungen importiert. Der Stata-Datensatz enthält alle nicht leeren Zellen aus dem ersten Arbeitsblatt der Excel-Datei. Die Variablennamen A, B, …F erbt Stata aus der Spaltenadresse der Excel-Datei. Die wichtigste Eigenschaft des Stata-Datensatzes ist aber, dass alle Variablen als String-Variablen importiert wurden (vgl. Abschn. 5.6). Dafür gibt es einen einfachen Grund: Wenn in einer Spalte mindestens eine Zelle eine nichtnumerische Angabe enthält, so wird die gesamte Spalte als String importiert. Da alle Spalten mit einem erklärenden Text überschrieben sind, ist die jeweils erste Zelle jeder Spalte nicht numerisch, so dass alle Spalten als String-Variablen importiert werden. Es gibt zwei Möglichkeiten, um die Spalten der Datei popst1.xls in numerische Variablen zu importieren, so dass sie für eine Analyse mit Stata besser geeignet sind. Die erste Möglichkeit bedient sich der Option firstrow von import excel. Mit firstrow verwendet Stata den Inhalt der ersten Zeile der Datei, um Variablennamen zu bilden. Sollte die erste Zeile keine in Stata zulässigen Variablennamen enthalten, wird
412 | 11 Daten lesen und schreiben Stata diese durch Löschen unzulässiger Zeichen bilden; in diesem Fall wird der Originalinhalt der ersten Zeile als Variablenlabel verwendet. . import excel popst1, clear firstrow . describe Contains data obs: vars: size: variable name
16 6 800 storage type
Statename Areainkm2 Population Populationmale Populationfem~e Populationden~y
str22 double long long long double
display format %22s %10.0g %10.0g %10.0g %10.0g %10.0g
value label
variable label State (name) Area in km^2 Population Population (male) Population (female) Population density
Sorted by: Note: Dataset has changed since last saved.
Dieser Befehl erzeugt einen recht annehmbaren Datensatz. Es gibt 16 Beobachtungen – eine für jedes Bundesland – und 5 numerische Variablen. Die von Stata gebildeten Variablennamen sind möglicherweise etwas lang; sie können aber einfach mit dem Stata Befehl rename umbenannt werden. Auf keinen Fall sollten Sie die Variablennamen dadurch ändern, dass sie die erste Zeile in der Excel-Datei ändern, weil dies die volle Reproduzierbarkeit des Vorgehens zerstören würde. Die Option firstrow reicht nicht in allen Fällen aus, um den Import von ExcelSpalten in String-Variablen zu verhindern. So reicht firstrow nicht, wenn die Information über den Spalteninhalt auf zwei Zeilen verteilt ist oder wenn eine andere Zelle in einer Spalte ein nicht numerisches Zeichen enthält. Dazu genügt es schon, wenn eine Zelle irgendwo in der Spalte einen sog. „White-Space-Character“ (Leerzeichen, Tabulator) enthält. In all diesen Fällen ist man mit der Option cellrange() besser bedient. Mit der Option cellrange() kann man den Bereich des Excel-Arbeitsblatts angeben, der die (numerischen) Daten enthält, die in Stata importiert werden sollen. Hier ist ein Beispiel: . import excel state area pop_total pop_male pop_female > using popst1, clear cellrange(A2:E17)
Mit diesem Befehl lädt Stata nur den Inhalt der Zellen zwischen A-2 und E-17; die erste Zeile bleibt also außen vor, genauso alle Zeilen unter Zeile 17 und alle Spalten rechts von Spalte E (Spalte F haben wir absichtlich weggelassen). Beachten Sie zudem, dass wir direkt hinter dem Befehl import excel eine Liste aus Variablennamen eingegeben haben. Dabei ändert sich die Syntaxstruktur des Befehls, da nunmehr das Schlüsselwort using verwendet werden muss, um Variablennamen vom Dateinamen zu tren-
11.2 Import maschinenlesbarer Daten
| 413
nen. Im Ergebnis führt diese Änderung dazu, dass die Erzeugung der komplizierten Variablennamen durch firstrow umgangen wird. Der Nachteil dabei ist allerdings, dass dadurch auch die automatische Erzeugung von Variablenlabels verhindert wird. Bis hierin haben wir uns nur mit dem Import des ersten Arbeitsblatts beschäftigt. Für das zweite Arbeitsblatt benötigt man die Option sheet("sheetname"). Wie man die Option verwendet, zeigt unser letztes Beispiel: . import excel popst1, clear sheet("Percent") firstrow
11.2.1.2 SAS-Transport-Dateien Stata hat einen Importfilter für Dateien im SAS-Transport-Format (SAS-XPORT-Files, .xpt). Diese Dateien lassen sich mit dem Befehl import sasxport direkt in Stata einlesen. Die Datei popst1.xpt lässt sich z.B. so einlesen: . import sasxport popst1, clear
11.2.1.3 Andere Systemdatensätze Für alle binären Dateiformate außer Excel- und SAS-Export-Dateien benötigen Sie entweder ein Daten-Konvertierungsprogramm oder Sie exportieren den Datensatz mit der Ursprungs-Software in eine Textdatei. Danach können Sie die Datei direkt in Stata einlesen.⁵ Nach unserem Wissen gib es derzeit zwei Daten-Konvertierungsprogramme auf dem Markt: Stat/Transfer von Circle Systems und DBMS/COPY von DataFlux, einem Tochterunternehmen von SAS. Der Vorteil von Konvertierungsprogrammen ist, dass diese auch etwa vorhandene Variablen- und Value-Label übersetzen und auch die Definition von Missings nicht zwangsläufig verlorengehen muss. Wenn Sie häufiger Dateien aus anderen Programmen konvertieren müssen, lohnt sich die Anschaffung einer entsprechenden Software allemal. Aber es geht auch ohne, indem man den Umweg über Textdateien wählt. Diesen Umweg beschreiben wir im nächsten Abschnitt.
11.2.2 Einlesen von Textdateien Zum Einlesen von Textdateien gibt es in Stata drei Kommandos: infile, import delimited und infix. Letztere sind vereinfachte Spezialfälle des infile-Kommandos. Haben Sie einmal den Umgang mit infile im Griff, werden Sie alle Textdateien
5 Das benutzerdefinierte Programm usespss importiert Dateien im SPSS-Format (.sav). Informationen zur Installation von benutzerdefinierten Programmen finden Sie in Kapitel 13.
414 | 11 Daten lesen und schreiben problemlos einlesen können. Wir beginnen bei unserer Erklärung mit import delimited. In vielen Fällen ist es einfach, hilfreich und schnell anwendbar. Da aber nicht alle Datensätze mit diesem Kommando eingelesen werden können, erläutern wir Ihnen im Anschluss ausführlich die Nutzung des infile-Kommandos.
11.2.2.1 Einlesen von Daten im Spreadsheet-Format In einer einfachen Form einer Textdatei steht jede Beobachtung in einer eigenen Zeile, wobei die einzelnen Variablen durch Kommas oder Tabulatoren getrennt sind. Derartige Dateien werden von Tabellenkalkulationsprogrammen als Exportdateien verwendet, weshalb das Format auch als Spreadsheet-Format bezeichnet wird. Übliche Windows-Bezeichnungen solcher Dateien sind „Tab getrennt“ mit der Extension .tsv oder „comma separated values“ (.csv). Die Datei popst1.raw ist eine solche Datei:⁶ . type popst1.raw Baden-Wuerttemberg,35742,10744921,5285946,5458975,301 Bayern,68025,,6136004,6374327,184 Berlin,892,3442675,1686256,1756419,3861 Brandenburg,29482,2511525,1244101,1267424,85 Bremen,404,661716,322227,339489,1637 Hamburg,755,1774224,866623,907601,2349 Hessen,20788,6061951,2970776,3091175,292 Mecklenburg-Vorpommern,23189,1651216,818119,833097,71 Niedersachsen,46510,7928815,3894627,4034188,170 Nordrhein-Westfalen,34088,17872763,8719694,9153069,524 Rheinland-Pfalz,19847,4012675,1970665,2042010,202 Saarland,2569,1022585,497605,524980,398 Sachsen,18420,4168732,2039451,2129281,226 Sachsen-Anhalt,20449,2356219,1153749,1202470,115 Schleswig-Holstein,15700,2832027,1387049,1444978,180 Thueringen,16172,2249882,1110714,1139168,139
Die Datei popst1.raw enthält für 16 Bundesländer die Bevölkerungszahlen von 1990 bis 1995 (Statistisches Bundesamt 1997: 47). Die erste Variable gibt Auskunft über das Bundesland, die zweite über die Bevölkerungszahl von 1990, die dritte über diejenige von 1991 usw. Jede Zeile beginnt mit dem Namen des Bundeslandes, setzt sich fort mit der Bevölkerungszahl 1990, 1991, 1992 usw. Jede Zeile ist in dieser Datei eine neue Beobachtung und für jede Beobachtung finden sich sechs Informationen, die jeweils mit einem Komma voneinander getrennt sind. In der zweiten Zeile – Bayern – scheint es lediglich 5 Informationen zu geben, nämlich den Ländernamen und vier Zahlen. Bei genauem Hinschauen sieht man aber, dass an einer Stelle zwei Kommas direkt aufeinanderfolgen. Der Wert dazwischen fehlt. Hier müsste normalerweise die Bevölkerungszahl von 1991 stehen. Das heißt, wir kennen die Bevölkerungszahl von 1991 nicht, aber wir wissen, dass es die Bevölkerungszahl von 1991 ist, die fehlt. Auch 6 Wir verwenden die Extension .raw, weil wir dies die Standard-Extension für viele Text-RohdatenFormate von Stata ist. Weitere Informationen hierzu finden Sie unter Abschn. 3.1.8.
11.2 Import maschinenlesbarer Daten
| 415
in der zweiten Zeile sind daher genau sieben Informationen vorhanden. Das ist wichtig! Der Datensatz muss rechteckig sein. Jede Beobachtung muss in einer Zeile stehen und in jeder Zeile müssen exakt gleich viele Informationen sein – auch dann, wenn eine oder mehrere Informationen nicht bekannt sind. Ein Spreadsheet-Format liegt auch dann vor, wenn statt der Kommas Tabulatoren zwischen den Variablen stehen. Tabulatoren haben allerdings die Eigenschaft, für Menschen von Leerzeichen schwer unterscheidbar zu sein. Die Option showtabs des type-Befehls gibt Ihnen die notwendige Auskunft. Probieren Sie es: . type popst5.raw . type popst5.raw, showtabs
Datensätze im Spreadsheet-Format können durch import delimited eingelesen werden. Das ist denkbar einfach. Für popst1.raw genügt z.B. folgende Eingabe: . import delimited using popst1.raw, clear . describe
Nach import delimited wird hinter dem Kennwort using angegeben, welche Datei eingelesen werden soll. Lautet die Extension der Dateien „.csv“, kann sie weggelassen werden. Wenn Sie sich die Ausgabe von describe anschauen, werden Sie feststellen, dass Stata automatisch 6 Variablennamen erzeugt hat, nämlich v1–v6. Wenn Sie andere Variablennamen haben wollen, können Sie diese zwischen import delimited und using angeben: . import delimited state area pop_total pop_mal pop_female pop_dens using popst1 > .raw, clear
Einige Tabellenkalkulationsprogramme speichern die Variablennamen in der ersten Zeile der Datei. Ist dies der Fall, verwendet import delimited automatisch die erste Zeile als Variablennamen und alle übrigen Zeilen als Fälle. Die Datei popst2.raw enthält eine solche Zeile. Mit . import delimited using popst2.raw, clear
erhalten Sie den gleichen Datensatz, den Sie schon mit dem vorangegangenen Befehl angefordert haben. So einfach import delimited zu bedienen ist, so sehr müssen Sie auf den Zustand Ihrer Daten achten. Tabellenkalkulationsprogramme verwenden teilweise Konventionen beim Exportieren ins Spreadsheet-Format, die beim Lesen große Verwirrung stiften. Zusätzlich zu den in Abschnitt 11.2.1.1 aufgeführten Problemen, müssen Sie Folgendes beachten: 1. Kommas werden manchmal als Trennzeichen für Tausenderstellen oder, vor allem in deutschen Versionen, als Dezimaltrennzeichen verwendet. In beiden Fällen würde Stata eine Zahl in verschiedene Variablen schreiben.
416 | 11 Daten lesen und schreiben 2.
Missings werden manchmal als Punkte oder Leerzeichen in die Textdatei geschrieben. Diese Zeichen führen dazu, dass die Variable als String-Variable importiert wird. Bei import delimited müssen die Feldtrennzeichen immer direkt nebeneinanderstehen, wenn eine Angabe Missing ist. 3. Wenn die Variablen in Ihrer Textdatei mit Leerzeichen bzw. anderen Zeichen als Komma oder Tabulator getrennt sind, müssen Sie dieses Zeichen mit der Option delimiter() angeben (vgl. help import delimited). 4. Sie können den import delimited-Befehl nicht verwenden, wenn die einzelnen Variablen in der Textdatei nicht durch ein spezifisches Zeichen getrennt sind oder die Beobachtungen über mehrere Zeilen verteilt. In solchen Fällen benötigen Sie infile. Einige dieser Schwierigkeiten können Sie mit dem Befehl filefilter beseitigen, indem Sie Ihre Datei mit dem Befehl infile einlesen. Die Korrektur der Datei mit einem Editor empfehlen wir nur dann, wenn sich der Prozess automatisieren lässt.
11.2.2.2 Einlesen von Daten im freien Format Die meisten Textdateien liegen heutzutage im „freien Format“ vor. Bei diesem Format stehen zwischen den einzelnen Variablen Leerzeichen, Tabulatoren, Kommas oder Zeilenwechsel. Ein Beispiel für dieses Format ist popst3.raw: . type popst3.raw Baden-Wuerttemberg 35742 10744921 Bayern Berlin Brandenburg Bremen Hamburg Hessen Mecklenburg-Vorpommern Niedersachsen Nordrhein-Westfalen Rheinland-Pfalz Saarland Sachsen Sachsen-Anhalt Schleswig-Holstein Thueringen
5285946 5458975 68025 12510331 892 3442675 29482 2511525 404 661716 755 1774224 20788 6061951 23189 1651216 46510 7928815 34088 17872763 19847 4012675 2569 1022585 18420 4168732 20449 2356219 15700 2832027 16172 2249882
301 6136004 1686256 1244101 322227 866623 2970776 818119 3894627 8719694 1970665 497605 2039451 1153749 1387049 1110714
6374327 1756419 1267424 339489 907601 3091175 833097 4034188 9153069 2042010 524980 2129281 1202470 1444978 1139168
184 3861 85 1637 2349 292 71 170 524 202 398 226 115 180 139
Hier ist die Beobachtung „Baden-Württemberg“ aus einem Ihnen nicht bekannten Grund auf zwei Zeilen verteilt. Im Unterschied zum Spreadsheet-Format können die Beobachtungen im freien Format also auf mehrere Zeilen verteilt sein. Dies hat eine wichtige Konsequenz: Stata kann nun nicht mehr automatisch feststellen, wie viele Variablen der Datensatz enthält. Diese Information muss daher vom Benutzer eingegeben werden.
11.2 Import maschinenlesbarer Daten
| 417
Textdateien im freien Format werden mit dem Befehl infile eingelesen. Die Information über die Anzahl der Variablen wird dabei durch eine Variablenliste mitgeteilt. Die Datei popst3.raw wird z.B. durch . infile str22 state area pop_tot pop_male pop_female pop_dens > using popst3.raw, clear
oder . infile str22 state area pop1-pop4 using popst3.raw, clear
eingelesen. Nach infile folgt die Variablenliste, danach das Kennwort using und der Dateiname. Aus der Variablenliste kann Stata ersehen, dass der Datensatz sechs Variablen enthält. Bei jedem sechsten Eintrag beginnt darum eine neue Beobachtung.⁷ Die einzige Schwierigkeit beim Einlesen von popst3.raw ist die Variable für den Namen des Bundeslandes. Da es sich bei dieser Variablen um einen Text handelt, muss diese Variable in der Variablenliste als String-Variable gekennzeichnet werden (str in der Variablenliste). Dabei muss jeweils angegeben werden, wie viele Buchstaben diese Variable höchstens enthalten soll. Im vorliegenden Fall ist „Mecklenburg-Vorpommern“ mit 22 Zeichen das längste und deshalb limitierende Element. Wir verwenden darum str22 als Speichertyp. Statt die Buchstaben zu zählen, ist es allerdings meist einfacher, zuerst mehr Platz als nötig vorzusehen und den Datensatz später mit compress zu optimieren (vgl. Abschn. 11.6). Bei der vorliegenden Form des infile-Befehls wird alles, was nicht einem Leerzeichen, Tabulator, Komma oder Zeilenwechsel gleicht, als Variablenwert gelesen, bis eines der eben genannten Zeichen auftaucht. Diese Logik verbietet Leerzeichen innerhalb von String-Variablen und ist eine häufige Ursache für Fehlermeldungen. In der Datei popst4.raw fehlt z.B. der Bindestrich bei „Mecklenburg-Vorpommern“. Wenn Sie den letzten Befehl wiederholen und als Dateiname popst4.raw einsetzen, erhalten Sie folgende Fehlermeldung: . infile str22 state area pop1-pop4 using popst4.raw, clear 'Vorpommern' cannot be read as a number for area[8] 'Niedersachsen' cannot be read as a number for area[9] 'Nordrhein-Westfalen' cannot be read as a number for area[10] 'Rheinland-Pfalz' cannot be read as a number for area[11] 'Saarland' cannot be read as a number for area[12] 'Sachsen' cannot be read as a number for area[13] 'Sachsen-Anhalt' cannot be read as a number for area[14] 'Schleswig-Holstein' cannot be read as a number for area[15] 'Thueringen' cannot be read as a number for area[16] (eof not at end of obs) (17 observations read)
7 Das funktioniert auch im Spreadsheet-Format. Das Spreadsheet-Format ist ein Spezialfall des freien Formats und wir können obigen Befehl daher auch für die popst1.raw und popst2.raw verwenden.
418 | 11 Daten lesen und schreiben Was ist passiert? In dem Augenblick, in dem Sie ein Leerzeichen an einer unvorhergesehenen Stelle haben, verschiebt sich die Zuweisung der Variablen. „Mecklenburg“ wird als String-Variable mit maximal 22 Zeichen gelesen und mit dem Variablennamen state abgespeichert. Das Leerzeichen zwischen „Mecklenburg“ und „Vorpommern“ wird als der Beginn einer neuen Variablen verstanden. Stata versucht nun, „Vorpommern“ als Zahlenwert der Variablen pop90 zu lesen, scheitert und meldet dies. Der Fehler setzt sich über alle Zeilen hinweg fort, da bei infile die Werte solange zu einem Fall gezählt werden, bis die Variablenliste zu Ende ist. Zur Vermeidung dieses Problems sollten Strings, die Leerzeichen enthalten, in Anführungszeichen gesetzt werden. Fehlende Strings sollten als zwei direkt aufeinanderfolgende Anführungszeichen gekennzeichnet sein, damit der Datensatz rechteckig bleibt.
11.2.2.3 Einlesen von Daten im festen Format Daten im festen Format liegen vor, wenn die einzelnen Variablen an einer bestimmten Spalte des Textdateien beginnen und enden und abgesehen von dieser Position kein Trennzeichen zwischen den Variablen steht. Ein Beispiel für eine Datei im festen Format ist die Datei popst6.raw: . type popst6.raw Baden-Wuerttemberg357421074492152859465458975 301 Bayern680251251033161360046374327 184 Berlin 892 3442675168625617564193861 Brandenburg29482 251152512441011267424 85 Bremen 404 661716 322227 3394891637 Hamburg 755 1774224 866623 9076012349 Hessen20788 606195129707763091175 292 Mecklenburg-Vorpommern23189 1651216 818119 833097 71 Niedersachsen46510 792881538946274034188 170 Nordrhein-Westfalen340881787276387196949153069 524 Rheinland-Pfalz19847 401267519706652042010 202 Saarland 2569 1022585 497605 524980 398 Sachsen18420 416873220394512129281 226 Sachsen-Anhalt20449 235621911537491202470 115 Schleswig-Holstein15700 283202713870491444978 180 Thueringen16172 224988211107141139168 139
Hier können die einzelnen Variablen nicht voneinander getrennt werden – außer man weiß, dass z.B. die Variable area an der 23sten Spalte der Datei beginnt und an der 28sten endet. Für derartige Dateien muss der Befehl infile zusammen mit einem sog. „Dictionary“ verwendet werden. Diese Technik kann jedoch auch für die anderen Datenformate verwendet werden. Sie ist damit die allgemeinste Form der Dateneingabe. Das
11.2 Import maschinenlesbarer Daten
| 419
Dictionary ist eine kleine Hilfsdatei,⁸ in der die Positionen der Variablen festgelegt werden. Darüber hinaus können Variablenbeschriftungen und Kommentarzeilen eingefügt sowie unwichtige Variablen oder Zeilen übersprungen werden. Eine einfache Version dieser Hilfsdatei könnte lediglich aus einer Zeile mit dem Namen der zu verwendenden Datei und der Auflistung der einzulesenden Variablen bestehen. Hier ist ein Beispiel: 1: 2: 3: 4: 5: 6: 7: 8:
dictionary using popst5.raw { state area pop_total pop_male pop_female pop_dens }
begin popst5.dct
end popst5.dct
Dieses Dictionary enthält lediglich die Variablennamen und die Kennzeichnung für die String-Variable. Es finden sich keinerlei Hinweise auf die Position der Variablen, weshalb es für den Datensatz popst6.raw nicht geeignet ist. Für popst5.raw reichen die Angaben aber aus. Lesen wir also zunächst diese Datei ein, damit wir verstehen, wie ein Dictionary funktioniert. Danach entwickeln wir ein Dictionary für popst6.raw. Bitten geben Sie obiges Beispiel in den Do-File-Editor (oder einen beliebigen anderen Editor) ein und speichern Sie es mit dem Namen popst5.dct⁹ in Ihrem Datenverzeichnis. Danach wechseln Sie wieder zu Stata und geben folgenden Befehl ein: . infile using popst5.dct, clear
Zunächst die Feinheiten: Im Gegensatz zum Befehl auf Seite 417 enthält dieser Befehl keine Variablenliste. Außerdem wird hinter using auf das Dictionary anstatt auf die Datei mit den Daten verwiesen. Die Extension .dct können Sie auch weglassen, denn Stata geht bei einer Eingabe des infile-Befehls ohne Variablenliste automatisch davon aus, dass hinter using ein Dictionary angegeben wird. Sonst würden ja wichtige Informationen fehlen. Im vorliegenden Beispiel erscheint dieses Vorgehen nicht nur unnötig kompliziert, es ist es auch. Trotzdem kann es sehr nützlich sein, ein solches Dictionary zu
8 Ein Dictionary kann auch direkt vor die Zahlenreihen der Textdatei geschrieben werden. In diesem Fall würde die Datei aber für andere Datenanalyseprogramme wertlos werden. Das Dictionary in einem Editor vor Datenreihen zu schreiben, ist oft schwierig, da viele Editoren keine großen Datensätze einlesen können. Wir empfehlen deshalb, das Dictionary als externe Datei anzulegen. 9 Sie finden das Dictionary auch unter dem Namen popst5kk.dct in unserem Dateipaket.
420 | 11 Daten lesen und schreiben verwenden. Einerseits ermöglicht es eine sehr detaillierte Beschreibung des Datensatzes, andererseits können Daten im festen Format nur so eingelesen werden. Der folgende Syntaxauszug zeigt Ihnen in allgemeiner Stata-Schreibweise die wichtigsten Gestaltungsmöglichkeiten eines Dictionary. Stata lässt noch einige weitere Optionen zu, die aber selten notwendig sind und deshalb an dieser Stelle nicht dargestellt werden. Einen Überblick mit Beispielen gibt das Kommando help infile2. [infile] dictionary [using filename] { * comments may be included freely _lrecl(#) _firstlineoffile(#) _lines(#) _line(#) _newline[(#)] _column(#) _skip[(#)] [type] varname [:lblname] [% infmt] ["variable label"] }
Beginnen wir mit der vorletzten Zeile. Wie Sie aus Kapitel 4 wissen, sind alle in eckige Klammern eingeschlossenen Teile optional. Vorgeschrieben ist also nur ein Variablenname. Darüber hinaus können Sie zu jeder Variablen den Speichertyp [type] (vgl. Abschn. 5.8) schreiben, eine Variablenbeschriftung ["variable lbl"] vergeben und die Breite der Variablen bestimmen [%infmt]. Darüber hinaus können Sie die Behälternamen für die einzelnen Ausprägungen der Variablen angeben [:lblname]. Alle mit einem Unterstrich (_) beginnenden Zeilen sind ebenfalls optional und können nach Bedarf verwendet werden. Mit _column können Sie markieren, in welcher Spalte eine bestimmte Variable beginnt. Das Ende der Variablen kann durch die Spezifikation des Formats bestimmt werden. Um zu spezifizieren, dass die Variable area in der Datei popst6.raw in der 23sten Spalte beginnt und fünf Spalten breit ist, würde man z.B. Folgendes angeben: _column(23) area %5f
Als Formattyp haben wir %5f gewählt, da die Bevölkerungszahlen nicht mehr als fünf Zeichen enthalten. Mit den anderen Variablen verfährt man entsprechend. Die drei Line-Optionen beziehen sich auf die Zeilen Ihrer Datei. Sie können mit der Zeile _firstlineoffile festlegen in welcher Zeile Ihre Daten beginnen. Oftmals enthalten Dateien eine Überschrift, Quellenhinweise oder Bemerkungen zur Art der Datenerhebung. Diese müssen Sie nicht aus der Originaldatei entfernen, vielmehr werden diese Zeilen beim Einlesen übersprungen. Mit _lines können Sie angeben, aus wie vielen Zeilen ein Fall besteht. Dies ist bei Daten im festen Format notwendig, wenn eine Beobachtung auf mehrere Zeilen aufgeteilt ist, und bei Daten im freien Format hilfreich, wenn nicht alle Zeilen eines Falles eingelesen werden sollen. Aus welchen
11.3 Dateneingabe
| 421
Zeilen die Werte eingelesen werden sollen, bestimmen Sie mit _line. Die Werte hinter dieser Option beziehen sich immer auf die Zeilen innerhalb eines Falls. Bevor Sie nun verwirrt beschließen, diesen Befehl auf keinen Fall zu benutzen, zeigen wir Ihnen ein Dictionary zum Einlesen von popst6.raw. Wir empfehlen Ihnen, die Zeilen abzuschreiben, den Datensatz damit einzulesen und anschließend einige Veränderungen am Dictionary durchzuspielen. Sie werden dabei rasch merken, dass die Dinge keineswegs so kompliziert sind, wie sie aussehen. 1: 2: 3: 4: 5: 6: 7: 8:
dictionary using popst6.raw { _column(1) str22 state %22s _column(23) area %5f _column(28) pop_total %8f _column(36) pop_male %7f _column(43) pop_female %7f _column(50) pop_dens %4f }
begin popst6kk.dct "State (name)" "Area in km^2" "Total Population" "Male Population" "Female Population" "Population Density" end popst6kk.dct
Für Daten im festen Format bietet der Befehl infix eine allerdings weniger flexible Alternative zum infile-Befehl. Daten im festen Format müssen in jedem Fall mit einem Dictionary eingelesen werden. Der infix-Befehl erlaubt allerdings eine andere – einfachere – Struktur im Dictionary. Die Struktur ist so einfach, dass sie bei kleineren Datensätzen sogar direkt im Kommandofenster eingegeben werden kann. Da Datensätze im festen Format ohne Trennzeichen heute nur noch in absoluten Ausnahmefällen auftreten, wollen wir auf diesen Befehl hier nicht näher eingehen und es bei einem Beispiel belassen, das die ersten drei Variablen von popst6.raw einliest: . infix str22 state 1-22 area 23-27 pop_total 28-35 using popst6.raw, clear
11.3 Dateneingabe In einem Beispiel im Grafik-Kapitel haben wir Daten zur Temperatur in Karlsruhe von 1779 bis 2004 verwendet. Einen Teil dieser Daten haben wir in Tabelle 11.2 abgedruckt. Die Tabelle enthält die jährlichen Durchschnittstemperaturen sowie die Durchschnittstemperaturen der Monate Juli und Dezember in Karlsruhe für den Zeitraum von 1984 bis 1990. So wie die Daten hier gedruckt sind, sind sie ein Beispiel für nicht maschinenlesbare Daten.¹⁰ Um die Daten zu analysieren, müssen wir sie von
10 Zugegeben, in Wirklichkeit handelt es sich um maschinenlesbare Daten, die wir unter http://www. klimadiagramme.de/Europa/special01.htm gefunden haben. Für unser Beispiel wollen wir dennoch bei der gedruckten Fassung bleiben. Die Quelle für die Daten ist übrigens eine HTML-Tabelle der monatlichen Temperaturen in Grad Celsius von 1779 bis 2004. Wenn Sie diese Daten mit Stata einlesen wollen, sollten Sie die HTML-Tabelle in einen leistungsstarken Editor einlesen, einige Suchen-
422 | 11 Daten lesen und schreiben Tab. 11.2. Durchschnittstemperaturen in Karlsruhe, 1984–1990 (in Grad Celsius) Jahr
Jährlich
Juli
Dezember
1984 1985 1986 1987 1988 1989 1990
9,9 9,4 10,1 9,8 11,2 11,2 11,6
18,8 20,3 19,6 19,5 19,2 20,5 20
2,7 4,6 3,7 3,4 4,9 3,6 1,8
Hand eingeben. Mit Stata gibt es dazu zwei Möglichkeiten: den Daten-Editor und den Befehl input.
11.3.1 Dateneingabe über den Editor Bitte beginnen Sie diesen Abschnitt mit einem leeren Arbeitsspeicher. . clear
Sie öffnen den Dateneditor durch die Eingabe des Befehls . edit
Durch edit erhalten Sie ein Fenster mit einer leeren Datenmatrix. Die obere linke Ecke der Datenmatrix ist farblich unterlegt; dies ist die derzeit aktive Zelle. Den Inhalt der aktiven Zelle können Sie verändern. Über der Tabelle, links neben einem Eingabefeld, sehen Sie „var1[1] = “. Hier tragen Sie den Wert der ersten Variablen („var1“) für die erste Beobachtung („[1]“) ein. Wenn Sie die Pfeil-nach-unten-Taste drücken, sehen Sie, dass die Markierung ebenfalls nach unten wandert. Sie bleiben innerhalb der ersten Variablen, der Wert in der eckigen Klammer verändert sich aber. Jede Zeile ist also eine neue Beobachtung. Bitte tippen Sie nun in das Feld „var1[1]“ – sagen wir – den Wert 1984 ein. Bestätigen Sie dann Ihre Eingabe mit der Eingabetaste. Hierdurch wird die Zahl 1984 in das erste Feld geschrieben, die zweite Beobachtung wird zum aktiven Feld und die Variable wird mit einem Namen versehen. Sie können nun direkt den Variablenwert für die zweite Beobachtung eingeben, z.B. 1985.
Ersetzen-Befehle ausführen und die Daten danach mit import delimited oder infile in Stata einlesen.
11.3 Dateneingabe
| 423
Klicken Sie nun mit der Maus auf das erste Feld der zweiten Spalte und geben Sie dort einen weiteren Wert an (z.B. 9.9).¹¹ Bestätigen Sie Ihre Eingabe. Nun erscheint für die zweite Beobachtung automatisch ein Punkt. Dieser Punkt ist ein Platzhalter für einen fehlenden Wert. Sobald für eine Beobachtung ein Wert eingetragen wird, ergänzt das Programm die restlichen Felder mit fehlenden Werten. Wenn Sie die Dateneingabe fortsetzen, werden diese einfach überschrieben. Bevor wir dieses Beispiel beenden, doppelklicken Sie mit dem Mauszeiger noch auf das graue Feld mit der Beschriftung „var1“. Hierdurch wechselt der Eingabe-Fokus auf den „Property“-Bereich auf der rechten unteren Seite des Editor-Fensters. In diesem Bereich können Sie Namen und Variablen- und Value-Label der hervorgehobenen Variablen angeben. Schreiben Sie year in das erste Eingabefeld, und Beobachtungjahr in das zweite Eingabefeld. Wenn Sie auf den Rechtspfeil am oberen Rand des Property-Bereichs klicken, gelangen Sie zur nächsten Variablen. Jetzt schließen Sie den Editor; drücken Sie dazu Alt-F4 oder verwenden Sie die Maus so, wie Sie es zum Schließen von Fenstern unter Ihrem Betriebssystem gewohnt sind.
11.3.2 Der input-Befehl Eine vielleicht ungewohnte, aber besser replizierbare Methode, Daten in Stata einzugeben, ist der Befehl input. Zu Beginn verwenden wir den Befehl input, um nur eine einzige Beobachtung von Tabelle 11.2 einzugeben. Bitte sorgen Sie zunächst für einen leeren Arbeitsspeicher . clear
und starten Sie dann die Dateneingabe mit input. Direkt hinter dem Befehl nennen Sie alle Variablennamen, für die Sie Werte eingeben wollen, z.B.: . input year temp
Nach dieser Eingabe erscheinen die beiden Variablennamen sowie die Zahl 1. auf dem Bildschirm: year temp 1.
11 Beachten Sie, dass Sie einen Punkt als Dezimaltrennzeichen verwenden. Sollten Sie hier (versehentlich) ein Komma eingeben, wird die Variable später als Textvariable behandelt (zu StringVariablen vgl. Abschn. 5.6).
424 | 11 Daten lesen und schreiben Die mit 1. beginnende Zeile ist hier die Eingabeaufforderung des input-Befehls. Sie werden aufgefordert, die Werte für die erste Beobachtung einzugeben. Laut Tabelle 11.2 sind dies die Zahlen 1984 für das Jahr und 9,9 für die Jahresdurchschnittstemperatur. Bitte schreiben Sie diese Zahlen, getrennt durch ein Leerzeichen, in das Eingabefenster und bestätigen Sie Ihre Eingabe mit der Eingabetaste. Danach erscheint auf dem Schirm die Eingabeaufforderung für die zweite Beobachtung. Nun könnten Sie die übrigen Beobachtungen auf die gleiche Weise eingeben. Für hier soll es aber erst einmal genügen. Tippen Sie daher . end
Dies bringt Sie zur normalen Stata-Eingabeaufforderung zurück. Der wesentliche Vorteil von input ist, dass Sie den Befehl in einem Do-File verwenden können. Probieren Sie es aus. Öffnen Sie den Do-File-Editor (oder einen beliebigen anderen Editor) und erstellen Sie folgenden Do-File: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
clear input year 1984 1985 1986 1987 1988 1989 end exit
begin crkatemp.do mean jul 49.82 65.84 48.92 68.54 50.18 67.28 49.64 67.1 52.16 66.56 52.16 68.9 end crkatemp.do
Speichern Sie diesen Do-File unter, sagen wir, crkatemp.do und lassen Sie ihn laufen. Dadurch werden die Daten erzeugt: . do crkatemp
Den Befehl input können Sie auch verwenden, um neue Variablen oder neue Beobachtungen zu einem existierenden Datensatz hinzuzufügen. Für zusätzliche Beobachtungen genügt es, input ohne Variablenliste einzugeben. Auf diese Weise können wir unseren Datensatz z.B. um Temperaturen für das Jahr 1990 ergänzen: . input . 1990 52.88 . end
68
Für zusätzliche Variablen müssen Sie input mit dem Namen einer neuen Variablen eingeben. Hier ergänzen wir unseren Datensatz z.B. um die Durchschnittstemperaturen für Dezember. . input dec . 36.86
11.3 Dateneingabe
. . . . . .
| 425
40.28 38.66 38.12 40.82 38.48 35.24
Nun geht es sogar ohne end. Stata weiß, dass der Datensatz sieben Beobachtungen enthält und lässt uns, sofern wir input mit einer Variablenliste in einem existierenden Datensatz verwenden, keine neuen Beobachtungen hinzufügen. Im Dienste der Reproduzierbarkeit wäre es übrigens besser, die neue Variable im obigen Do-File zu ergänzen, anstatt sie hier von Hand einzugeben.
Welche Zahlen für welchen Inhalt? Bisher gingen wir davon aus, dass die Zahlen bzw. der Text, den Sie eingeben, vorgegeben ist. Wenn Sie die Daten selbst erheben, die Daten aus Texten bestehen oder einzelne Daten fehlen, müssen Sie selbst entscheiden, welche Zahlen Sie für welche Inhalte verwenden. Dazu wollen wir an dieser Stelle einige kurze Hinweise geben: 1. Ihr Datensatz sollte auf alle Fälle eine Identifikationsvariable enthalten; dies ist eine Variable, welche die Beobachtungen eindeutig identifiziert, z.B. die Variable persnr in der Datei data1.dta oder die Variable year in den gerade eingegebenen Temperaturdaten. Derartige Variablen werden leicht vergessen, vor allem dann, wenn man Daten aus einer Quelle bezieht, in der die Identifikation durch Sortierung erfolgt. Nehmen Sie z.B. an, dass Sie Klausurnoten eines Kurses eingeben. Die Namen lassen Sie weg, um Tipparbeit zu sparen. Sie denken: Weil die Namen alphabetisch sortiert sind, wissen Sie ja welche Kursteilnehmer welche Note haben. Sobald Sie die Daten aber in Stata eingegeben haben, können Sie die Daten in alle möglichen Reihenfolgen sortieren und so diese wichtige Information verlieren. Noch wichtiger werden Identifikationsvariablen, wenn Sie verschiedene Datensätze verbinden müssen (vgl. Abschn. 11.4). 2. Ein anderer Aspekt betrifft die Vercodung fehlender Werte. In unserem Beispiel mit den Bevölkerungszahlen der Bundesländer haben wir die fehlende Information zur Bevölkerungszahl in Mecklenburg-Vorpommern einfach weggelassen. Im Stata-Datensatz wurde dieser fehlende Wert zu einem Punkt, d.h. einem „Missing“. Bei vielen Datenquellen und insbesondere bei Umfragedaten wissen wir aber meist mehr über fehlende Werte. In Umfragen könnte ein Wert fehlen, weil der Befragte nicht geantwortet hat, er die Antwort nicht wusste oder die Frage auf Grund eines Fragebogen-Filters nicht gestellt wurde. Wenn all diese Möglichkeiten mit dem gleichen Zeichen vercodet werden, geht diese Information über die Ursache des Missings verloren. Sie sollten darum Codes vergeben, die über die Gründe des Fehlens informieren. In vielen Datensätzen wird 97 für „Weiß nicht“, 98 für „Angabe verweigert“ und 99 für „Trifft nicht zu“ verwendet. Diese Codie-
426 | 11 Daten lesen und schreiben rung ist dann nicht praktikabel, wenn die tatsächlichen Antworten solche Zahlen enthalten können. Gelöst wird dieses Problem meist dadurch, dass die MissingCodes immer eine Stelle mehr einnehmen als die Antwortkategorien (997, 998, 999 usw.). Diese Art der Codierung ist dann zwar eindeutig, hat aber den Nachteil, dass sie sich zwischen den Variablen unterscheidet. Eine mögliche Alternative sind negative Werte. In den meisten Fällen werden Sie keine negativen Werte als Antwortmöglichkeiten haben und können so zum Beispiel die Werte -1, -2 oder -3 als Missing-Codes für alle Variablen verwenden. Seit der Version 8.0 von Stata können Sie darüber hinaus 27 verschiedene Missing-Codes für unterschiedliche Missings vergeben. Der übliche Punkt . sowie die Missing-Codes .a, .b bis .z. 3. Bei der Eingabe von Text (etwa der Namen der Bundesländer im Beispiel mit den Bevölkerungszahlen oder der Namen von Kursteilnehmern oder Berufsbezeichnungen) haben Sie zwei Möglichkeiten. Sie können die Antworten entweder schon bei der Eingabe codieren oder den Text direkt in Stata eingeben. Für welche der beiden Möglichkeiten Sie sich entscheiden, hängt in erster Linie von dem einzugebenden Text selbst ab. Wenn die Menge der unterschiedlichen Texte begrenzt ist, können Sie für jeden neuen Text einfach eine neue Zahl eingeben. Das klappt aber nur, wenn Sie alleine für die Dateneingabe verantwortlich sind. Sobald mehrere Personen gleichzeitig Daten eingeben, müssen die Codes vorher festgelegt werden. Sollte der Antworttext jedoch eine unabsehbare Menge an Möglichkeiten bieten, wird die Erstellung einer Liste vor der Dateneingabe schwierig, wenn nicht unmöglich. In diesem Fall sollten Sie den Text direkt in Stata eingeben und Abschnitt 5.6 lesen. 4. Manche Datensätze enthalten Datumsangaben – nicht nur Jahre wie in den Temperaturdaten, sondern auch Angaben mit Tag, Monat und Jahr. Verwenden Sie hier bitte stets 4 Stellen für die Jahresangaben. Datensätze werden manchmal kombiniert und die Jahresangaben sollten auch dann noch eindeutig sein. 5. Variablen müssen disjunkt sein. In Umfragen werden manchmal Fragen gestellt, bei denen die Befragten alle „zutreffenden“ Antworten aus einer Liste von Antwortmöglichkeiten angeben können. In diesem Fall müssen alle Antwortmöglichkeiten in getrennten Variablen gespeichert werden, die jeweils zwei Ausprägungen haben, eine für „genannt“ und eine für „nicht genannt“. Aus den Variablennamen sollte dabei erkennbar sein, dass die Antworten derselben Frage entstammen – z.B. so wie bei den Variablen eqphea bis eqpnrj im Datensatz data1.dta. 6. Zur Fehlervermeidung ist es sinnvoll, Daten zweimal einzugeben. Danach kann man überprüfen, ob die beiden Datensätze übereinstimmen und so zuverlässig Eingabefehler aufdecken (Abschn. 11.4.2). Zeit- und Geldmangel wird der doppelten Eingabe aber oft entgegenstehen. In diesen Fällen können andere Strategien hilfreich werden. Wenn Sie z.B. Daten von einem Fragebogen übertragen, bei dem keine Codes hinter den Kästchen zum Ankreuzen sind, kopieren Sie den Fragebogen auf eine Folie und schreiben Sie die Codes auf die Folie hinter die Kästchen. Bei der Eingabe können Sie die Folie dann einfach über das ausgefüllte Fragebo-
11.4 Zusammenführung von Datensätzen
| 427
genblatt legen.¹² Widerstehen Sie auch dem Drang, Daten gleich bei der Eingabe zu verändern. Es gibt z.B. keinen Grund, die Temperaturdaten in Grad Fahrenheit bereits bei der Eingabe in Grad Celsius umzurechnen. Das kann man später, innerhalb von Stata, einfacher tun (vgl. Kap. 5).¹³
11.4 Zusammenführung von Datensätzen Nehmen Sie an, Sie wollen die Entwicklung der Lebenszufriedenheit im Zeitverlauf untersuchen und Ihnen stehen dazu Umfragen aus verschiedenen Jahren zur Verfügung. Oder Sie wollen die Lebenszufriedenheit von Deutschen und Amerikanern vergleichen, wozu Ihnen Umfragen aus beiden Ländern zur Verfügung stehen. Oder Sie wollen in Ihren Regressionsanalysen aus Kapitel 9 die Bevölkerungsdichte kontrollieren, wozu Sie die hier konstruierten Datensätze mit den Bevölkerungszahlen verwenden könnten. Bei jedem dieser Beispiele sind die Informationen, die Sie zur Bearbeitung Ihrer Fragestellung benötigen, in unterschiedliche Datensätze verteilt. Für die geplanten Analysen müssen die Daten daher zunächst zu einem einfachen RechteckFile kombiniert werden. Im Folgenden wollen wir solche Datenmanagement-Probleme anhand von Daten des Sozio-oekonomischen Panels (GSOEP) erläutern. Das GSOEP ist eine repräsentative Längsschnittuntersuchung, bei der jährlich über 28.000 Haushalte und annähernd 70.000 Personen befragt werden. Zum gegenwärtigen Zeitpunkt sind die Informationen des GSOEP auf 326 Dateien verteilt; es liefert uns daher ausgezeichnete Beispiele für einfache und schwierige Datenmanagement-Aufgaben.¹⁴ Um unseren Beispielen zu folgen, sollten Sie ein grobes Verständnis der Datei-Struktur des GSOEP haben. Wir geben deshalb zunächst einen kurzen Überblick über das GSOEP (Abschn. 11.4.1). Die Zusammenführung von Datensätzen erfolgt in Stata mit den Befehlen merge, append und joinby. Der Befehl joinby wird allerdings nur in seltenen Ausnahmefällen benötigt, so dass wir hier lediglich auf [R] joinby verweisen. Von allgemeinem Interesse sind nur die Befehle merge und append. Mit merge werden einem Datensatz weitere Variablen hinzugefügt; in unseren Beispielen werden wir mit ihm Daten von
12 Hinweise für die Gestaltung von Fragebögen gibt z.B. Fowler (1984). 13 Weitere Strategien zur Dateneingabe und zur Fehlersuche im Anschluss an die Dateneingabe finden Sie bei Schnell et al. (2011) und Biemer und Lyberg (2003). 14 Zwei nutzerdefinierte Programme erleichtern die Erstellung von GSOEP-Datensätzen. PanelWhiz von John Haisken-DeNew ist ein breit angelegtes Programm für das Daten-Management diverser Panel-Datensätze, einschließlich des GSOEP. Sie erhalten PanelWhiz unter http://www.panelwhiz. eu/ Das andere Programm ist soepuse von Ulrich Kohler. Das Programm hat einen viel kleineren Leistungsumfang als PanelWhiz, ist aber dafür einfacher zu bedienen. Mehr Informationen zu nutzerdefinierten Programmen erhalten Sie in Kap. 13.
428 | 11 Daten lesen und schreiben verschiedenen Zeitpunkten zusammenführen sowie Personendaten mit Haushaltsund Aggregatdaten verbinden (Abschn. 11.4.2). Der Befehl append ergänzt einen Datensatz um zusätzliche Beobachtungen (Zeilen). Im Abschnitt 11.4.3 verwenden wir diesen Befehl, um Daten des GSOEP mit denen der amerikanischen „Panel Study of Income Dynamics“ (PSID) zu verbinden.
11.4.1 Die Datenstruktur des GSOEP Die zentrale Eigenschaft von Panelstudien ist, dass dieselben Personen zu mehreren Zeitpunkten befragt werden. Es ist deshalb nicht überraschend, dass die Informationen über diese Personen in Dateien gespeichert werden, die jeweils alle Informationen eines Erhebungsjahres enthalten. Natürlich könnte man die Informationen der verschiedenen Erhebungsjahre auch in einem einzigen großen Datensatz speichern, dies würde aber zusätzliche Speicherkapazität erfordern. Das Erstellen eines Rechteck-Files aus den Datensätzen für die verschiedenen Erhebungsjahre wird eines der Probleme sein, denen wir uns weiter unten widmen. Das GSOEP ist ein Haushalts-Panel, d.h., es werden jeweils alle Personen im Alter von 16 Jahren und darüber aus zufällig ermittelten Haushalten befragt. Darüber hinaus werden nicht nur Informationen über die Haushaltsmitglieder, sondern auch Eigenschaften der Haushalte als Ganzes gesammelt („Haushaltsdaten“). Da diese Haushaltsdaten für alle Personen eines Haushalts jeweils dieselben sind, werden sie nicht zusammen mit den Personendaten, sondern in getrennten Dateien gespeichert. Es gibt deshalb Dateien, in denen die Beobachtungen Haushalte sind, und es gibt Dateien, in denen die Beobachtungen Personen sind. Haushaltsdaten und Personendaten können einander zugespielt werden, wann immer das erforderlich wird. In einem unserer Beispiele werden wir Daten auf der Haushaltsebene (das Bundesland, in dem der Haushalt lebt) den Personendaten zuspielen. Haushalts-Panel wie das GSOEP finden Sie in vielen Ländern der Welt. Eine der ältesten Studien dieser Art ist die amerikanische „Panel Study of Income Dynamics“ (PSID), die seit 1968 andauert. In jüngerer Zeit gibt es Bemühungen, die gesammelten Daten solcher Studien so vergleichbar zu machen, dass sie miteinander kombiniert werden können. Das GSOEP enthält darum eine Reihe von Variablen, die eigens zum Zweck der Kombination mit dem PSID gebildet wurden. Diese Variablen sind wiederum in getrennten Dateien gespeichert. Unser Datenpaket enthält 78 der insgesamt 326 Dateien des GSOEP.¹⁵ Einen ersten Eindruck über die Datenstruktur bekommen Sie, wenn Sie sich die Dateinamen 15 Die Dateien unseres Datenpaketes enthalten jeweils nur eine kleine Anzahl der Variablen der Originaldateien. Auch haben wir die Zahl der Beobachtungen verringert. Es handelt sich um eine 37.5 %-Stichprobe der Originaldaten. In Übereinstimmung mit deutschen Datenschutzbestimmungen haben wir die Informationen in den Datensätzen teilweise verfremdet.
11.4 Zusammenführung von Datensätzen
| 429
im Unterverzeichnis kksoep\ unseres Datenpaketes anschauen. Ausgehend vom Datenverzeichnis c:\data\kk geben Sie dazu folgenden Befehl ein: . dir kksoep/
21.5k 77.4k 161.8k 19.5k 70.4k 147.0k 18.3k 68.0k "
12/05/07 12/05/07 12/05/07 12/05/07 12/05/07 12/05/07 12/05/07 12/05/07 12/05/07 12/05/07
08:36 08:36 13:33 13:33 13:33 13:33 13:33 13:33 13:33 13:33
. .. ahbrutto.dta ap.dta apequiv.dta bhbrutto.dta bp.dta bpequiv.dta chbrutto.dta cp.dta
Die Daten der verschiedenen Erhebungsjahre (sog. „Wellen“) werden jeweils in getrennten Dateien gespeichert. Alle Informationen der ersten Welle (1984) finden sich in Dateien, die mit dem Buchstaben a anfangen. Informationen aus der zweiten Welle von 1985 sind in Dateien, deren Namen mit b beginnen, und nachfolgende Wellen tragen entsprechend nachfolgende Buchstaben im Alphabet; bis hin zur letzten Welle – bei uns: 2009 bzw. z. Für jede Welle finden Sie drei Dateitypen: hbrutto, p, and pequiv. Die Beobachtungen (Zeilen) der hbrutto-Dateien sind Haushalte. Sie erkennen diese am Buchstaben h auf der zweiten Stelle des Dateinamens. Bei unseren Dateien handelt es sich um Haushaltsinformationen, die bereits vor der eigentlichen Erhebung bekannt sind, wie z.B. das Bundesland, zu dem der Haushalt gehört. Andere Haushaltsdaten des GSOEP, die aber nicht Bestandteil unseres Datenpaketes sind, enthalten Informationen über die Wohnungsgrößen oder die Mietzahlungen. Allgemein werden alle Informationen, die für alle Personen eines Haushalts identisch sind, als Haushaltsdaten gespeichert. Das Speichern solcher Informationen für jede Person wäre redundant und damit Platzverschwendung. Die Beobachtungen (Zeilen) der beiden anderen Dateitypen sind Personen. Man erkennt dies am Buchstaben p im Dateinamen. Im Allgemeinen handelt es sich bei den Variablen in diesen Dateien um Antworten der Befragten auf die in der Umfrage gestellten Fragen. Es gibt aber auch Dateitypen auf der Personenebene mit Variablen, die aus den Antworten der Befragten konstruiert wurden. Ein Beispiel hierfür sind die pequiv-Dateien. Sie enthalten Variablen, die zu ähnlichen Variablen anderer PanelStudien vergleichbar gemacht wurden. Unser Datenpaket ist nur ein kleiner Ausschnitt aus dem Original-Datenpaket des GSOEP. Wir hoffen aber, dass Sie auf Grund unserer Erläuterungen eine Vorstellung von der Datenstruktur des GSOEP bekommen haben. Nur einen letzten Punkt wollen wir noch hinzufügen. Es ist ein unvermeidliches Problem von Panelstudien, dass nicht zu allen Zeitpunkten Daten von allen Befragten erhoben werden können. Manche Befragte sind nach einiger Zeit nicht mehr auffindbar, andere wollen nicht mehr an der Befragung teilnehmen und wieder andere sterben. Gleichzeitig tauchen neue Befragte
430 | 11 Daten lesen und schreiben
File 1 Key
File 2 Var 1
Key
1
1
2
2
3
3
4
4
5
5
etc.
Var 2
etc.
Abb. 11.3. Schematische Darstellung des 1:1-Match für rechteckige Daten Do-File: grmerge.do
auf. Ob und wie solche neuen Befragten auftreten, hängt von den jeweiligen Regeln der Panelstudien ab. Beim GSOEP gibt es z.B. die Regel, dass, falls nach einer Scheidung einer der beiden Partner in einen Haushalt mit anderen Personen zieht, auch alle Mitglieder dieses „neuen“ Haushalts befragt werden. In Panelstudien ist es auch üblich, von Zeit zu Zeit sog. Erneuerungs- oder Ergänzungs-Stichproben zu ziehen. Beim GSOEP wurde eine solche Ergänzungs-Stichprobe auf Grund der Wiedervereinigung gezogen sowie eine weitere in den Jahren 1993 und 1994 für Immigranten aus Osteuropa. Eine Erneuerungs-Stichprobe wurde 2002 gezogen. Naturgemäß führen all diese Mechanismen zu variierenden Fallzahlen der einzelnen Erhebungswellen.
11.4.2 Der Befehl merge Der Befehl merge wird verwendet, um einen bestehenden Datensatz durch Variablen eines anderen Datensatzes zu ergänzen. merge verknüpft dabei die Beobachtungen des Datensatzes, der momentan im Arbeitsspeicher geladen ist, mit den passenden Beobachtungen eines Datensatzes auf der Festplatte. Abbildung 11.3 zeigt den einfachsten Fall der Ergänzung eines Datensatzes durch zusätzliche Variablen. Diesen Fall werden wir im Folgenden als „1:1-Match mit rechteckigen Daten“ bezeichnen. Das Syntaxdiagramm von merge besteht im Kern aus dem Befehl selbst, einer optionalen Variablenliste und der Angabe des Namens der Datei bzw. der Dateien, die mit dem gerade geladenen Datensatz verbunden werden sollen: merge match_type varlist using filename …
Unsere Beschreibung des merge-Befehls erfolgt in vier Schritten. Wir beginnen mit dem einfachsten Fall, dem 1:1-Match mit rechteckigen Daten. Danach folgt der 1:1-Match mit nicht rechteckigen Daten; die zentrale Schwierigkeit ist dabei, die Übersicht über die Beobachtungen des neuen Datensatzes zu behalten. Beim dritten Schritt
11.4 Zusammenführung von Datensätzen
| 431
werden wir Serien von aufeinanderfolgenden 1:1-Matches durchführen. Am Ende zeigen wir durch die Verschmelzung von Individual- und Aggregatdaten Beispiele für die Match-Typen m:1 und 1:m. 11.4.2.1 1:1 Match mit rechteckigen Daten Nehmen Sie an, Sie wollen die GSOEP-Daten nutzen, um den Zusammenhang zwischen der Arbeitszeit und der Lebenszufriedenheit für das Jahr 2001 zu untersuchen. Die Lebenszufriedenheit ist Teil der regulären Personendaten, . describe using kksoep/rp Contains data obs: vars: size:
PPFAD: 09/10/10 10:14:13-634 DB09 12 Oct 2016 13:56
7,704 7 154,080
variable name hhnr persnr rhhnr rp111 rp112 rp113 rp13501
storage type
display format
long long long byte byte byte byte
%12.0g %12.0g %12.0g %20.0g %25.0g %20.0g %20.0g
value label
variable label
rp111 rp112 rp113 rp13501
Ursprungshaushaltsnummer Unveraenderliche Personennummer Haushaltsnummer 2001 Allg. Parteienpraeferenz Parteipraeferenz Parteipraeferenz-Intensitaet Lebenszufriedenh. gegenwaertig
Sorted by:
während die Anzahl der 2001 geleisteten Arbeitsstunden bei den für international vergleichende Studien aufbereiteten Daten zu finden sind (pequiv-Dateien): . describe using kksoep/rpequiv Contains data obs: vars: size:
7,704 12 292,752
variable name hhnr persnr rhhnr d1110401 d1110601 d1110701 d1110901 e1110101 e1110301 i1110101 i1110201 i1111001 Sorted by:
PPFAD: 09/10/10 10:14:13-634 DB09 12 Oct 2016 13:56
storage type long long long byte byte byte float int byte long long long
display format %12.0g %12.0g %12.0g %29.0g %8.0g %8.0g %9.0g %12.0g %20.0g %10.0g %10.0g %10.0g
value label
d1110401
e1110301
variable label Ursprungshaushaltsnummer Unveraenderliche Personennummer Haushaltsnummer 2001 Marital Status of Individual Number of Persons in HH Number of Children in HH Number of Years of Education Annual Work Hours of Individual Employment Level of Individual HH Pre-Government Income HH Post-Government Income Individual Labor Earnings
432 | 11 Daten lesen und schreiben Für die geplante Analyse müssen Sie diese beiden Datensätze so miteinander verschmelzen, dass die Informationen zu ein und demselben Befragten jeweils in genau einer Zeile des neuen Datensatzes steht. Um die Verschmelzung von Datensätzen zu verstehen, müssen wir uns mit dem Konzept einer „Schlüsselvariablen“ und dem Konzept des „Match-Typs“ befassen. Wir beginnen mit dem Match-Typ. In unserem Beispiel findet sich für jede Beobachtung (Zeile) des Datensatzes rp.dta genau eine Beobachtung im Datensatz rpequiv.dta, die demselben Befragten entspricht. Für jeden der 7.704 Befragten von rp.dta gibt es also einen korrespondierenden Befragten in Datei rpequiv.dta. Eine solche Situation bezeichnet man als 1:1-Match. Als Match-Typ von merge verwenden wir darum 1:1. Das Wissen darum, dass die beiden Dateien korrespondierende Beobachtungen enthalten, ist noch nicht ausreichend, um die beiden Dateien zu verschmelzen. Sie müssen zusätzlich auch wissen, welche Beobachtung der ersten Datei mit welcher Beobachtung der zweiten Datei korrespondiert. Diese Spezifikation dieser Zuordnungsregel erfolgt über eine sog. „Schlüsselvariable“. Eine Schlüsselvariable ist eine Variable, die in beiden Datensätzen enthalten ist und die jede Beobachtung eindeutig identifiziert. Im GSOEP ist die Variable persnr eine solche Schlüsselvariable. Jede Person, die in Kontakt mit der GSOEP-Stichprobe kommt, erhält eine persönliche Identifikationsnummer. Diese persönliche Identifikationsnummer verändert sich nicht über die Zeit und ist als Variable persnr in allen GSOEP-Personendatensätzen gespeichert. Die Variable persnr kann daher dazu verwendet werden, die Beobachtungen eines Datensatzes den Beobachtungen eines anderen Datensatzes zuzuordnen. Die Prozedur zum Zusammenführen von Datensätzen beginnt damit, einen der beiden Datensätze in den Arbeitsspeicher zu laden. Im Folgenden werden wir den Ausdruck „Master-Datei“ für diese Datei verwenden. Nach dem Laden der Master-Datei wird ihr die zweite Datei mit dem Befehl merge zugespielt. Dazu wird nach dem Befehl zunächst der Match-Typ genannt, dann der Name der Schlüsselvariablen, das Kennwort using, und dann der Name der Datei, die hinzugespielt werden soll, geschrieben. Wir nennen diese zweite Datei die „Using-Datei“. Lassen Sie uns das einmal versuchen. Laden Sie die Datei rp.dta in den Arbeitsspeicher und spielen Sie ihr die Datei rpequiv.dta unter Verwendung der Schlüsselvariablen persnr zu. Denken Sie dabei daran, dass sich beide Datensätze im Unterverzeichnis kksoep unseres Datenpaketes befinden. Sie müssen deshalb bei allen Dateinamen auch den Namen des jeweiligen Unterverzeichnisses angeben:¹⁶ . use kksoep/rp, clear . merge 1:1 persnr using kksoep/rpequiv
Schauen wir uns das Ergebnis gleich an:
16 Aus Abschn. 3.1.8 wissen Sie ja, dass es nicht notwendig ist, die Extension .dta hinter using anzugeben.
11.4 Zusammenführung von Datensätzen
| 433
. describe, short Contains data from kksoep/rp.dta obs: 7,704 PPFAD: 09/10/10 10:14:13-634 DB09 vars: 17 12 Oct 2016 13:56 size: 300,456 Sorted by: persnr Note: Dataset has changed since last saved. . describe, simple hhnr rp111 persnr rp112 rhhnr rp113
rp13501 d1110401 d1110601
d1110701 d1110901 e1110101
e1110301 i1110101 i1110201
i1111001 _merge
Der neue Datensatz hat wieder 7.704 Beobachtungen. Der ursprünglichen Datei rp.dta wurden neun Variablen (d1110401 to i1111001) hinzugefügt. Die Variablen hhnr und rhhnr gab es in beiden Datensätzen; sie wurden darum nicht in den MasterDatensatz übernommen. Grundsätzlich werden Variablen im Master-Datensatz nur dann mit Informationen aus gleichnamigen Variablen des Using-Datensatzes überschrieben, wenn dies explizit angefordert wird. Im neuen Datensatz findet sich außerdem die neue Variable _merge, die weder in rp.dta noch in rpequiv.dta vorhanden war. Diese Variable dient zur Überprüfung des Ergebnisses von merge. Beobachtungen mit dem Wert 3 auf der Variablen _merge wurden in beiden Datensätzen gefunden. Mit . tabulate _merge _merge
Freq.
Percent
Cum.
matched (3)
7,704
100.00
100.00
Total
7,704
100.00
können Sie sehen, dass in unserem Beispiel alle Beobachtungen in beiden Dateien vorhanden waren; wir nennen das eine rechteckige Datenstruktur. Die Variable _merge muss gelöscht werden, bevor ein weiterer merge-Befehl abgesetzt werden kann: . drop _merge
Bevor wir weitermachen, noch ein Wort zur Schlüsselvariablen: Die Schlüsselvariable dient dazu, für jede Beobachtung im Master-Datensatz die exakte Entsprechung im Using-Datensatz zu identifizieren. Dazu muss der Schlüssel die Beobachtungen eindeutig identifizieren. Allerdings muss der Schlüssel nicht zwangsläufig in nur einer Variablen gespeichert sein. Vielmehr können Sie auch eine Variablenliste verwenden, die – zusammengenommen – jede Beobachtung eindeutig identifiziert. Geben Sie dazu einfach an Stelle eines Variablennamens eine Variablenliste zwischen dem Match-Typ und dem Kennwort using an.
434 | 11 Daten lesen und schreiben
File 1 Key
File 2 Var 1
Key
1
1
2
4
4
5
5
6
6
8
7
9
8
10
11
11
12
13
etc.
etc.
Var 2
Abb. 11.4. Schematische Darstellung des 1:1-Match für nicht rechteckige Daten Do-File: grmerge1.do
11.4.2.2 1:1-Match mit nicht rechteckigen Daten Die Dateien, die wir im letzten Abschnitt zusammengeführt haben, hatten eine spezifische Eigenschaft. Sie enthielten exakt dieselben Beobachtungen und der resultierende Datensatz ist rechteckig. Ein wenig komplizierter ist die Zusammenführung von Datensätzen mit unterschiedlicher Zahl von Beobachtungen oder von Datensätzen mit Beobachtungen, die in der einen, nicht aber in der anderen Datei enthalten sind (vgl. Abb. 11.4). Es handelt sich also um nicht rechteckige Daten. Nicht rechteckige Daten sind bei Paneldaten die Regel. Befragte aus früheren Wellen verweigern die Teilnahme, während in späteren Wellen neue Befragte auftauchen. Wenn Sie Datensätze mit unterschiedlichen Beobachtungen zusammenführen, ist es wichtig, den Überblick über die Beobachtungen des entstehenden Datensatzes zu bewahren. Ein Beispiel mag das verdeutlichen. Nehmen Sie an, Sie wollen die Entwicklung der Lebenszufriedenheit untersuchen und deshalb die Lebenszufriedenheit von 2001 mit der von 1984 vergleichen. Die Daten für 1984 finden Sie in der Datei ap.dta. Durch . describe using kksoep/ap, short Contains data obs: vars: size: Sorted by:
4,648 7 92,960
PPFAD: 09/10/10 10:14:13-634 DB09 12 Oct 2016 13:56
erfahren wir, dass diese Datei 4.648 Befragte beinhaltet, während unsere Datei 7.704 Beobachtungen enthält. Was passiert, wenn wir diese Dateien zusammenführen? Technisch gibt es hierbei keinerlei Schwierigkeiten. Wir verwenden den Befehl merge genauso wie bisher: . merge 1:1 persnr using kksoep/ap
11.4 Zusammenführung von Datensätzen
| 435
Betrachten wir uns nun die Eigenschaften der neuen Datei. Erwartungsgemäß enthält die neue Datei Variablen aus beiden Dateien und wieder wurde die Variable _merge ergänzt: . describe, simple
Allerdings hat die kombinierte Datei 10.829 Beobachtungen, also weder 4.648 wie ap.dta noch 7.704 wie rp.dta: . describe, short Contains data from kksoep/rp.dta obs: 10,829 PPFAD: 09/10/10 10:14:13-634 DB09 vars: 22 12 Oct 2016 13:56 size: 508,963 Sorted by: Note: Dataset has changed since last saved.
Was ist passiert? Die Antwort darauf finden Sie in _merge: . tab _merge _merge
Freq.
Percent
Cum.
master only (1) using only (2) matched (3)
6,181 3,125 1,523
57.08 28.86 14.06
57.08 85.94 100.00
Total
10,829
100.00
Die Variable _merge hat drei Werte: 1, 2 und 3. Das bedeutet: Der neue Datensatz enthält drei Typen von Beobachtungen. Beobachtungen mit dem Wert 1 auf der Variablen _merge sind solche, die nur in der Master-Datei enthalten sind. Da bei unserem Vorgehen die Datei rp.dta die Master-Datei war, sind dies diejenigen 6.181 Befragten, die nur 2001, nicht aber 1984 interviewt wurden. Der Wert 2 von _merge steht für Beobachtungen, die nur in der Using-Datei vorhanden sind. In unserem Beispiel bedeutet das, dass im Jahr 1984 3.125 Personen befragt wurden, die 2001 nicht mehr befragt werden konnten. Der Wert 3 bezeichnet schließlich diejenigen Befragten, die sowohl 1984 als auch 2001 befragt wurden. Mit _merge können wir den neuen Datensatz unseren Bedürfnissen anpassen. Wollen wir alle Beobachtungen behalten oder nur diejenigen, die bei beiden Wellen befragt wurden? Hier wollen wir Letzteres tun. Auf diese Weise erhalten wir ein sog. „Balanced Panel“: . keep if _merge==3
436 | 11 Daten lesen und schreiben 11.4.2.3 Zusammenführen von mehr als zwei Dateien Angenommen Sie wollen die Variablen zur Lebenszufriedenheit aus allen Panelwellen zusammenführen. Sie verbinden also nicht nur zwei, sondern eine ganze Reihe von Datensätzen. Das Verschmelzen von mehreren Dateien erfolgt durch wiederholtes Durchführen der merge-Prozedur, und wenn Sie sehr viele Dateien verschmelzen wollen, werden Schleifen (Abschn. 3.2.2) hilfreich. Das zentrale Problem beim Zusammenfügen mehrerer nicht rechteckiger Daten ist nicht das technische Vorgehen als solches, sondern die Bewahrung der Übersicht über die Beobachtungen des dabei entstehenden Datensatzes. Im Folgenden zeigen wir Ihnen eine Vorgehensweise, die sich bei der Arbeit mit dem GSOEP und mit vielen anderen großen Paneldatensätzen bewährt hat. Große Datenbanken enthalten meistens Dateien zur Kontrolle der Beobachtungen eines Datensatzes. Beim GSOEP ist dies die Datei ppfad.dta. Diese Datei enthält allgemeine Informationen über alle Personen, von denen es im GSOEP mindestens eine Information gibt. Solche Meta-Daten gibt es üblicherweise für alle nicht rechteckigen Daten, die in relationalen Datenbanken gespeichert sind. Beim GSOEP sind vor allem die Variablen anetto bis znetto der Datei ppfad.dta von Interesse. Diese Variablen informieren darüber, ob eine bestimmte Person in einer bestimmten Welle befragt wurde oder nicht, und wenn nicht, warum nicht. Man kann mit ihnen sehr genau spezifizieren, welche Beobachtungen man verwenden möchte und welche nicht. Es ist deshalb allgemeine Praxis, zuerst die Beobachtungen, die man untersuchen möchte, mit Hilfe der Angaben in ppfad.dta abzugrenzen und diese Datei als Master-Datei zu verwenden. Beim Zuspielen der inhaltlichen Informationen wird dann die Option keep(3) verwendet, die dazu führt, dass nur Beobachtungen, die den Wert 3 auf der _merge-Variablen erhalten, aus der Using-Datei übernommen werden. In unserem Beispiel konstruieren wir zunächst die neue Variable nwaves, in der abgelegt wird, wie oft eine Person bislang befragt wurde. Dazu bedienen wir uns der Variablen anetto, bnetto usw. Diese enthalten Werte zwischen 10 und 19, wenn zumindest einige Informationen zur jeweiligen Befragungsperson erhoben werden konnten. Dann löschen wir alle Beobachtungen mit weniger als fünf Befragungsteilnahmen (das ist eine arbiträre Zahl; Sie können hier selbstverständlich eine Zahl verwenden, die für Ihre Fragestellung angemessen ist). Nachdem wir so die Fallbasis unserer Analysen festgelegt haben, beginnen wir damit, unseren Master-Daten Variablen der verschiedenen p-Dateien zuzuspielen. Dazu bedienen wir uns einer foreach-Schleife über alle Kleinbuchstaben von „a“ bis „z“. Innerhalb der Schleife verwenden wir merge mit den Optionen keep(3) und nogen. Ersteres verhindert, dass den Master-Daten neue Beobachtungen hinzugefügt werden und Letzteres dient dazu, die Generierung der Variablen _merge zu unterdrücken. . use kksoep/ppfad, clear . egen nwaves = anycount(?netto), values(10(1)19) . drop if nwaves < 5
11.4 Zusammenführung von Datensätzen
| 437
. foreach stub in a b c d e f g h i j k l m n o p q r s t u v w x y z { . merge 1:1 persnr using kksoep/`stub'p, keep(3) nogen . }
11.4.2.4 m:1- und 1:m-Match Bisher haben wir nur Datensätze zusammengeführt, deren Beobachtungen die gleiche physikalische Einheit repräsentieren. Anders formuliert: Alle Beobachtungen waren Personen. Alternativ gibt es Situationen, in denen Sie Datensätze mit Beobachtungen auf unterschiedlichen „Ebenen“ zusammenführen. Zum Beispiel könnten Sie Haushaltsdaten und Personendaten des GSOEP miteinander verknüpfen wollen. Während die physikalische Einheit in den Personendaten konkrete menschliche Individuen sind, sind es bei den Haushaltsdaten abstrakt definierte Haushalte. Der gleiche Fall liegt vor, wenn man die Daten mit den Bevölkerungszahlen aus Abschnitt 11.2.2 mit den Personendaten des GSOEP zusammenspielen möchte. Dann haben wir es mit Bundesländern auf der einen und Menschen auf der anderen Seite zu tun. Wenn man verschiedene physikalische Einheiten miteinander verknüpfen möchte, muss man sich erstens klarmachen, wie die beiden verschiedenen Einheiten miteinander verbunden sind. Das ist einigermaßen offensichtlich bei den Personen- und Haushaltsdaten des GSOEP: Die Personen der Personendaten leben in den Haushalten der Haushaltsdaten. Ähnlich bei den Personen und den Bundesländern: Die Personen leben in den Bundesländern. In beiden Fällen passen die Beobachtungen der beiden Datensätze also irgendwie zusammen. Zweitens muss man entscheiden, für welche Einheit die beabsichtigte Analyse durchgeführt werden soll. Soll eine Aussage über Personen, Haushalte oder Bundesländer getroffen werden? Von dieser Entscheidung hängt der ganze nachfolgende Prozess ab und die Antwort ergibt sich einzig und allein aus Ihrer Untersuchungsfrage. Wir werden im Folgenden zunächst Haushaltsund Bundesländerdaten mit den Personendaten verbinden und dabei die Personen als Analyseeinheit beibehalten. Anschließend machen wir es umgekehrt. Die Datei hbrutto.dta des GSOEP enthält Daten zu Haushalten. Wenn wir Haushaltsdaten mit Personendaten verbinden, sollte jede Person eines bestimmten Haushalts dieselbe Information aus dem Haushaltsdatensatz bekommen. Jeder einzelnen Beobachtung der Haushaltsdaten müssen darum mehrere Beobachtungen der Personendaten zugewiesen werden. Dies nennt man ein m:1-Match bzw. 1:m-Match, je nachdem welche der beiden Dateien die Master-Datei und welche die Using-Datei ist. Abbildung 11.5 zeigt einen m:1-Match, weil hier die Personendaten die Master-Daten sind und die Haushaltsdaten die Using-Daten. Zum Zusammenführen von Datensätzen, die einen m:1-Match bilden, verwenden wir den Match-Typ m:1. Da unser Haushaltsdatensatz die Variable persnr nicht enthält, kann diese Variable auch nicht als Schlüssel verwendet werden. Der Schlüssel für unser Vorhaben sind die Haushaltsnummern in den Haushaltsdaten. Alle hbrutto-Dateien enthalten die Haushaltsnummer der jeweiligen Welle, und diese Informa-
438 | 11 Daten lesen und schreiben
File 1 Key
File 2 Var 1
Key
1
1
1
2
1
3
2
etc.
Var 2
2 2 3 3 3 etc.
Abb. 11.5. Schematische Darstellung des m:1-Match Do-File: grmerge2.do
tion findet sich auch in den Personendaten. Um die Haushaltsinformationen von – sagen wir – 2009 (zhbrutto) mit den Personendaten derselben Erhebungswelle (zp) zusammenzuführen, verwenden wir folgenden Befehl: . . . .
use kksoep/zp, clear merge m:1 zhhnr using kksoep/zhbrutto, tab _merge drop _merge
Dabei macht es prinzipiell keinen Unterschied, welche der beiden Dateien Sie als Master-Datei bzw. Using-Datei verwenden. Wenn Sie in der anderen Reihenfolge vorgehen, müssen Sie nur den Match-Typ 1:m statt m:1 verwenden. Das gleiche Verfahren verwenden wir, um die Bevölkerungsziffern aus der Datei popst1.dta (vgl. Abschn. 11.2) mit unseren Daten zu verschmelzen. Allerdings gibt es hierbei ein Problem, wie es häufig auftritt, wenn man Aggregatdaten mit Individualdaten verschmelzen möchte. Mit . describe using popst1 Contains data obs: vars: size: variable name state_name area pop_total pop_male pop_female pop_dens
Population 2009 12 Oct 2016 13:56
16 6 992 storage type str22 double double double double float
Sorted by: state_name
display format %22s %8.0f %8.0f %8.0f %8.0f %8.0f
value label
variable label State (name) Area in km^2 Population Population (male) Population (female) Population density
11.4 Zusammenführung von Datensätzen
| 439
sehen wir, dass popst1.dta die String-Variable state_name enthält, die den Namen der Bundesländer enthält. Die uns gerade vorliegende Datei enthält dagegen die numerische Variable zbula, die aber ebenfalls die Namen der Bundesländer enthält. Leider unterscheiden sich die beiden Variablen gleich in einer ganzen Reihe von Merkmalen. Sie haben unterschiedliche Namen, unterschiedliche Speicherformate – string vs. numerisch –, und sie enthalten leicht unterschiedliche Informationen: state_name enthält den Namen jedes Bundeslandes, während zbula nicht zwischen RheinlandPfalz und Saarland unterscheidet. Außerdem enthält die Variable zbula im vorliegenden Datensatz drei Missings. Um die beiden Datensätze zu verschmelzen, benötigen wir eine Schlüsselvariable, die in beiden Datensätzen völlig identisch ist. Die Variable sollte den gleichen Namen tragen, das gleiche Speicherformat und insbesondere die gleichen Kategorien aufweisen. Da es nicht möglich ist, in der Variablen zbula die Unterscheidung zwischen Rheinland-Pfalz und Saarland wiederzubeleben, müssen wir diese beiden Bundesländer auch in der Datei popst1.dta zusammenfassen. Das wollen wir nun tun. Zuerst speichern wir den vorliegenden Datensatz, wobei wir die Missings zuvor entfernen: . drop if mi(zbula) . save tomerge, replace
Danach laden wir popst1.dta: . use popst1, replace
und verwenden encode zur Erzeugung einer numerischen Variablen zbula aus der String-Variablen state_name. Durch die Definition eines Value-Label-Behälters können wir steuern, welche numerischen Codes dabei den Bundesländern zugewiesen werden. . label define zbula 0 "Berlin" 1 "Schleswig-Holstein" 2 "Hamburg" > 3 "Niedersachsen" 4 "Bremen" 5 "Nordrhein-Westfalen" > 6 "Hessen" 7 "Rheinland-Pfalz" 8 "Baden-Wuerttemberg" > 9 "Bayern" 10 "Saarland" 12 "Mecklenburg-Vorpommern" > 13 "Brandenburg" 14 "Sachsen-Anhalt" 15 "Thueringen" > 16 "Sachsen" . encode state_name, gen(zbula) label(zbula)
Dadurch weisen wir jedem Bundesland genau den numerischen Code zu, wie in der Variable zbula. Für das Saarland verwenden wir den Code 10, da dieser in zbula nicht verwendet wird. Im nächsten Schritt vereinigen wir Rheinland-Pfalz mit dem Saarland . replace zbula = 7 if zbula == 10
und aggregieren die Bevölkerungsziffern und Gebietsgrößen mit collapse: . collapse (sum) area pop_total pop_male pop_female, by(zbula)
440 | 11 Daten lesen und schreiben Schließlich berechnen wir die Bevölkerungsdichte des von uns geschaffenen neuen entstandenen Süd-West-Landes: . gen pop_dens = pop_total/area
Diese Daten können wir nun mit dem oben gespeicherten Datensatz tomerge.dta verknüpfen. Diese Mal verschmelzen wir mehrere Beobachtungen des UsingDatensatzes mit je einer Beobachtung des Master-Datensatzes und spezifizieren darum 1:m als Match-Typ. Bitte speichern Sie Ihren gegenwärtigen Datensatz, bevor Sie den merge-Befehl absetzen – wir brauchen ihn gleich noch einmal. . save popst1V2 . merge 1:m zbula using tomerge, assert(3) nogen
Die Option assert(3) prüft gleich zur Laufzeit, ob alle Beobachtungen den Wert 3 auf der Variable _merge haben. Da dies der Fall ist, haben wir hier mit Option nogen auf die Generierung diese Variablen verzichtet. In unseren letzten beiden Beispielen bildeten stets die Befragten die Analyseeinheit. Jetzt machen wir es umgekehrt: Nehmen Sie an, Sie wollen Personen-, Haushaltsund Bundesländerdaten verbinden, aber am Ende Haushaltsdaten bzw. Bundesländerdaten bekommen. In einem solchen Fall müssen Sie sich entscheiden, wie die Informationen über die Personen zusammengefasst werden können. Nehmen wir die allgemeine Lebenszufriedenheit. Jede Person eines Haushalts hat eine eigene Lebenszufriedenheit. Wenn Sie daraus Haushaltsdaten machen wollen, müssen Sie entscheiden, wie die Informationen der verschiedenen Personen eines Haushalts zu einer einzigen Information des gesamten Haushalts zusammengefasst werden kann. Vielleicht macht es ja Sinn, die durchschnittliche Lebenszufriedenheit aller Personen des Haushalts zu verwenden. Oder wir verwenden die Lebenszufriedenheit der oder des Haushaltsvorsitzenden und spielen diese Information den Haushaltsdaten zu. Wie wir die Informationen zusammenfassen, hängt einmal mehr von Ihrer Untersuchungsfrage ab. Sobald Sie Ihre Entscheidung getroffen haben, müssen Sie die Personendaten entsprechend aggregieren und diese Aggregatdaten mit den Haushaltsdaten zusammenführen. Zum Aggregieren verwendet man den Befehl collapse. Der Befehl . collapse (mean) zp15701, by(zhhnr)
berechnet z.B. die durchschnittliche Lebenszufriedenheit innerhalb der Haushalte des Jahres 2009 (zhhnr). Das Ergebnis wird in einem neuen Datensatz gespeichert. Dieser Datensatz enthält keine Personendaten mehr, sondern Haushaltsdaten. Sie können ihn daher als 1:1-Match den Haushaltsdaten des GSOEP zuspielen: . merge zhhnr using kksoep/zhbrutto
Und natürlich gilt dasselbe, wenn wir Bundesländerdaten erstellen wollen: . collapse (mean) zp15701, by(zbula) . merge 1:1 zbula using popst1V2
11.4 Zusammenführung von Datensätzen
| 441
File 1 Var 1
Var 2
0
2002
1
1876
0
3000
0
2130
1
1000
etc.
etc.
File 2 Var 1
Var 2
Var 3
0
1238
7
1
1500
9
etc.
etc.
etc.
Abb. 11.6. Schematische Darstellung von append Do-File: grappend.do
11.4.3 Der Befehl append Das Anfügen von Beobachtungen zu einem existierenden Datensatz ist unkompliziert. Mit dem Befehl append wird ein neuer Datensatz unten an einen existierenden Datensatz angefügt. Die existierende Datenmatrix wird durch weitere Zeilen mit Beobachtungen ergänzt. Dabei werden Variablen, die in beiden Datensätzen vorhanden sind, untereinander geschrieben, während neue Variablen als neue Spalten erscheinen (vgl. Abb. 11.6). Die Struktur und Funktionsweise von append ist einfach. Die Syntax des Befehls lautet append using filename [ , nolabel ]
Hierzu ein Beispiel: Wir haben oben erwähnt, dass das GSOEP Dateien enthält, in denen Variablen für den internationalen Vergleich gespeichert sind. Dies sind die sog. PSID-Äquivalenz-Dateien, die Teil der am Cornell College of Human Ecology zusammengestellten „Cross-National Equivalent Files“ (CNEF) sind. Die CNEF enthalten Dateien mit vergleichbar gebildeten Variablen von Panelstudien aus den USA, Deutschland, Großbritannien, Kanada und anderen.¹⁷ Die Daten des CNEF sind wie die des GSOEP in verschiedene Dateien aufgeteilt: eine Datei für jedes Jahr und jedes Land. In
17 Bei den Paneldaten des CNEF handelt es sich um Daten der „Panel Study of Income Dynamics“ (PSID), des deutschen „Sozio-oekonomischen Panels“ (GSOEP), der britischen „Household Panel Study“ (BHPS) und des kanadischen „Survey of Labor and Income Dynamics“ (SLID). Eine vollständige Beschreibung des CNEF finden Sie unter https://cnef.ehe.osu.edu/.
442 | 11 Daten lesen und schreiben unserem Datenpaket finden Sie eine verkleinerte Version der Datei für das Jahr 2001. Der Name der Datei ist pequiv01.dta und mit . describe using pequiv07kk Contains data obs: 22,102 vars: 11 size: 906,182 variable name x11101ll x1110207 d1110407 d1110607 d1110707 d1110907 e1110107 e1110307 i1110107 i1110207 i1111007
storage type long int byte byte byte byte int byte double double double
12 Oct 2016 13:56
display format %12.0g %8.0g %8.0g %8.0g %8.0g %8.0g %8.0g %8.0g %10.0g %10.0g %10.0g
value label
variable label person identification number hh identification number marital status of individual number of persons in hh number of children in hh number of years of education annual work hours of individual employment level of individual hh pre-government income hh post-government income individual labor earnings
Sorted by: x11101ll
können Sie einen Blick auf die Daten werfen. Die Datei enthält im Großen und Ganzen dieselben Variablen wie die Datei xpequiv.dta des GSOEP. Alle Variablen haben in beiden Dateien denselben Namen. Der einzige Unterschied sind die Personenund Haushaltsnummern, die im GSOEP persnr und hhnr heißen, im PSID dagegen x11101ll und x1110207. Für einen internationalen Vergleich zwischen Deutschland und den USA müssen Sie die beiden Dateien zusammenführen. Begonnen wird dieser Prozess wieder damit, dass Sie einen der beiden Datensätze laden. Welchen ist egal. Wir beginnen mit pequiv07kk.dta: . use pequiv07kk, clear
Diese Datei wird von uns wiederum als „Master-Datei“ bezeichnet. Mit Hilfe von describe werden Sie feststellen, dass die Datei 22.102 Beobachtungen und 11 Variable enthält. Eine der Variablen ist e1110107, die in einem Jahr geleisteten Arbeitsstunden. Bevor Sie einen Datensatz an Ihre Master-Datei anhängen, empfiehlt es sich, die Variablennamen der beiden Datensätze anzugleichen . ren x11101ll persnr . ren x1110207 xhhnr
und eine Variable zu erzeugen, welche die Beobachtungen der Master-Datei identifiziert. Eine solche Variable erleichtert es Ihnen später, zwischen den amerikanischen und den deutschen Befragten zu unterscheiden. Wir erzeugen darum zunächst eine
11.4 Zusammenführung von Datensätzen
| 443
String-Variable mit dem Inhalt „United States“ für alle Beobachtungen der MasterDatei: . gen country = "United States"
Danach verwenden wir append zum Anhängen der GSOEP-Datei an pequiv07kk.dta. Beachten Sie wieder, dass die deutschen Daten im Unterverzeichnis kksoep gespeichert sind, weshalb der Befehl auf Unterverzeichnis und Dateinamen verweist: . append using kksoep/xpequiv
Der neue Datensatz hat 28.068 Beobachtungen: 22.102 aus den USA und 5.966 aus Deutschland. Variablen, die in beiden Datensätzen vorhanden sind, können für alle Beobachtungen gültige Werte haben. Dagegen bekommen Variablen, die nur in einem der beiden Datensätze vorhanden sind, einen Missing für alle Beobachtungen aus dem Datensatz, der diese Variable nicht enthält. Deshalb ist die Variable country für alle deutschen Befragten Missing. . d, s Contains data from pequiv07kk.dta obs: 28,068 vars: 13 12 Oct 2016 13:56 size: 1,656,012 Sorted by: Note: Dataset has changed since last saved. . tab country, mis country
Freq.
Percent
Cum.
United States
5,966 22,102
21.26 78.74
21.26 100.00
Total
28,068
100.00
Wenn man die Missings in country durch, sagen wir, „Germany“ ersetzt, steht dem gewünschten Vergleich nichts mehr im Wege: . replace country = "Germany" if mi(country) . histogram e1110107 if e1110107 > 0, by(country) United States
0
5.0e−04
Density
.001
.0015
Germany
0
2000
4000
6000
0
2000
annual work hours of individual Graphs by country
4000
6000
444 | 11 Daten lesen und schreiben Als Ergänzung bliebe noch zu sagen, dass eine Variable wie country auch mit der Option gen() des Befehls append hätte erzeugt werden können. Zudem sei erwähnt, dass man mit append Beobachtungen von gleich mehreren Dateien anfügen kann. Hierzu werden hinter dem Kennwort using einfach die entsprechenden Dateinamen aufgezählt.
11.5 Datensätze speichern und exportieren Sie haben sich nun viel Mühe gegeben, einen Datensatz zu konstruieren, mit dem Sie und Ihre Kollegen angenehm arbeiten können. Das Speichern dieses Datensatzes ist dagegen unkompliziert: Mit save Dateiname speichern Sie den Datensatz als SystemFile in das momentane Arbeitsverzeichnis. Mit der Option replace können Sie eine Vorgängerversion desselben Datensatzes überschreiben. Das Abspeichern birgt also keine besonderen Schwierigkeiten. Unmittelbar vor dem Abspeichern sollten Sie sich jedoch noch über drei Punkte Gedanken machen: 1. Wenn nichts anderes angegeben wird, werden Variablen als „Float-Variablen“ erzeugt (vgl. Abschn. 5.8). Diese Variablen benötigen meist mehr Speicherplatz als notwendig. Mit dem Befehl compress werden alle Variablen hinsichtlich ihres Speicherbedarfs optimiert, ohne dass dabei Informationen verlorengehen. Sie sollten darum vor jedem Abspeichern compress verwenden. 2. Das Arbeiten mit einem Datensatz ist oft sehr viel angenehmer, wenn die Variablen in einer gewissen Ordnung sind. Logische Variablennamen sollten in der Regel alphabetisch geordnet sein, sprechende Variablennamen dagegen inhaltlich. Zur alphabetischen Sortierung können Sie aorder verwenden. Mit den Befehlen order und move können Sie andere Variablenreihenfolgen bestimmen (vgl. help order). 3. Neben den Variablen und Werten kann auch der Datensatz mit einem Label versehen werden. Der Befehl hierzu lautet label data. Das Datenlabel wird bei der Ausgabe von describe oben rechts angezeigt. In data1.dta lautet es z.B.: „SOEPˊ2009 (Kohler/Kreuter)“. Bisher haben wir stets darüber gesprochen, welche Möglichkeiten es gibt, Daten aus anderen Formaten in Stata einzulesen. Es soll jedoch auch Leute geben, die das Gegenteil wollen: einen Stata-Datensatz in ein anderes Programm einlesen. Natürlich lässt sich auch dieses Problem mit den in Abschnitt 11.2.1 beschriebenen Softwareprogrammen lösen. Darüber hinaus verfügt Stata über Export-Filter für Excel (export excel, putexcel) und SAS XPORT-Transportdateien (export sasxport). Da jedoch praktisch alle Datenanalysepakete Textdateien lesen können, bietet sich der Weg über diese an. Sie können mit Stata Textdateien im Spreadsheet-Format und im freien Format abspeichern. Zum Abspeichern im Spreadsheet-Format dient der Befehl export deli-
11.6 Zum Umgang mit großen Datensätze
| 445
mited, zum Abspeichern im freien oder festen Format outfile. Beide Befehle funktionieren praktisch identisch: Nach dem Befehl kann eine Variablenliste angegeben werden, danach steht zwingend das Kennwort using, dem die Eingabe des Dateinamens folgt. Bei beiden Befehlen werden String-Variablen durch Anführungszeichen eingeschlossen. Sollte dies nicht erwünscht sein, so kann die Option noquote verwendet werden. Wichtig: Variablen mit Wertelabels werden als String-Variablen gespeichert. Durch die Option nolabel wird dies vermieden.
11.6 Zum Umgang mit großen Datensätze Stata lädt stets den gesamten Datensatz in den Arbeitsspeicher. Auf modernen Computern sollte dies normalerweise nicht zu Problemen führen und Stata ist ziemlich effizient bei der Verwaltung des ihm zur Verfügung stehenden Arbeitsspeichers. Von Fall zu Fall werden Sie aber die Fehlermeldung „no room to add more variables“ sehen. In diesen Fällen ist es gut, ein wenig über den Arbeitsspeicher und die Stata-Befehle memory und query memory zu wissen. Das erste Kommando beschreibt die derzeitige Speicherverwaltung, das zweite zeigt Wege zum Ändern der Speicherverwaltung.
11.6.1 Regeln zum Umgang mit dem Arbeitsspeicher Der Arbeitsspeicher gehört zur Hardwareausstattung Ihres Computers. Er besteht aus zwei Teilen, dem physikalischen und dem virtuellen Arbeitsspeicher. Der physikalische Arbeitsspeicher besteht aus speziellen Chips (RAM), die sich schnell etwas merken und das Gemerkte wieder abrufen können. Der virtuelle Arbeitsspeicher ist eine Datei auf der Festplatte („Swap-File“), die im Prinzip wie der Arbeitsspeicher funktioniert – nur viel langsamer. Stata lädt seine Daten also in den Arbeitsspeicher. Ob die Daten dann in den Speicherchips oder dem Swap-File landen, entscheidet das Betriebssystem. Klar ist: Landen die Daten im Arbeitsspeicher, kann der Prozessor schnell darauf zugreifen, landen sie im Swap-File, dauert es lange. Den Zugriff auf den Swap-File können Sie sogar hören, da in diesem Fall sehr viele Schreib- und Lesevorgänge auf der Festplatte stattfinden. Um sinnvoll mit Stata arbeiten zu können, müssen die Datensätze nach Möglichkeit in den Speicherchips gehalten werden. Als Regel kann man davon ausgehen, dass der Swap-File nur verwendet wird, wenn die Speicherchips voll sind. Angefüllt werden die Speicherchips aber nicht nur durch Stata-Daten. Zuallererst benötigt das Betriebssystem einen Teil des Arbeitsspeichers für sich selbst. Darüber hinaus wird jedes aufgerufene Programm Platz im Arbeitsspeicher benötigen, das eine mehr, das andere
446 | 11 Daten lesen und schreiben weniger. Daraus folgt als Regel: Schließen Sie alle Anwendungen, die Sie nicht unbedingt benötigen. Als arbeitsspeicherintensiv gelten Internet-Browser sowie die verschiedenen Office-Pakete. Dasselbe gilt für Rechtschreibhilfen, die den Text bei der Eingabe korrigieren. Das Schließen von Anwendungen ändert aber nichts an der Fehlermeldung „no room to add more variables“. Diese Fehlermeldung tritt auf, wenn der Arbeitsspeicher zu klein ist, um sich noch eine weitere Variable merken zu können. Viele StataProzeduren bilden temporäre Variablen. Deshalb kann die Fehlermeldung auch dann auftreten, wenn Sie gar keine neue Variable bilden oder einlesen wollen. Informationen darüber, wie viel Arbeitsspeicher Ihnen zur Verfügung steht, erhalten Sie durch . query memory
Wenn Sie mit großen Datensätzen auf einem PC mit viel Speicher arbeiten, kann es sinnvoll sein, die Segmentgröße zu vergrößern. Entsprechende Empfehlungen finden Sie unter help memory.
11.6.2 Die Verwendung zu großer Datensätze Im Idealfall ist die Menge an reserviertem Arbeitsspeicher so groß, dass der jeweilige Datensatz gut hineinpasst, und so klein, dass die Verwendung des Swap-Files unwahrscheinlich ist. Bei bestimmten Datensätzen ist die Einhaltung dieser Regeln nicht möglich, d.h., um den Datensatz einlesen zu können, benötigen Sie so viel Arbeitsspeicher, dass stets der Swap-File genutzt wird. Wenn Sie oft mit solchen Datensätzen arbeiten, haben wir nur einen Rat: Kaufen Sie sich mehr physikalischen Arbeitsspeicher. Handelt es sich um eine Ausnahmesituation, haben wir folgende Vorschläge: – Benötigen Sie alle Variablen des Datensatzes? Wenn nicht, lesen Sie nur diejenigen Variablen ein, die Sie benötigen: . use persnr hhnr income emp using data1, clear
–
Benötigen Sie alle Fälle des Datensatzes? Wenn nicht, lesen Sie nur diejenigen Fälle ein, die Sie benötigen: . use data1 if state = 100
1. 3. 4.
stadt
fläche
höhe
Eichstätt Meißen München
47.78 30.9 310.74
393 106 519
18 Falls Sie vorab nicht wissen, welche Variablen oder wie viele Fälle in Ihrem Datensatz zu finden sind, betrachten Sie den Datensatz mit describe using data1. Auch wenn ein Datensatz nicht in den Arbeitsspeicher eingelesen wird, können Sie den describe-Befehl anwenden. Wichtig ist nur, dass Sie using in die Befehlskette einfügen, sonst glaubt das Programm, Sie wünschen eine Beschreibung der Variablen data1 des Datensatzes im Arbeitsspeicher. 19 Bei den Beispielen handelt es sich um unseren Versuch, das Wort „Stata“ mit griechischen, kyrillischen und hebräischen Zeichen lautmalerisch zu formen. Der hebräische String ist von rechts nach links zu lesen. Sollten die entstandenen Worte beleidigend sein, bitten wir dies zu entschuldigen.
448 | 11 Daten lesen und schreiben eingeben. Unter Stata 13 wären die Variablennamen höhe und fläche wegen der darin enthaltenen Umlaute nicht zulässig gewesen. Auch wären die Städtenamen (möglicherweise) wegen der darin enthaltenen Umlaute auf unterschiedlichen Plattformen (Windows, UNIX/Linux, MacOS) und in anderen Ländern jeweils anders, und oft unleserlich, dargestellt worden. Diese Zeiten sind – jedenfalls was Stata 14 betrifft – vorüber. Umlaute werden aus Anwenderspektive wie „normale“ Buchstaben behandelt. Allgemein kann man sagen, dass Unicode die Lösung für viele Probleme im Austausch von Informationen zwischen verschiedenen Computern sein könnte. Aus heutiger Sicht schafft die Verwendung von Unicode aber auch zwei typische neue Probleme. Erstens macht Unicode die grundlegenden Probleme des Datenaustausches auf Computern häufiger sichtbar, indem es die Schwächen der bisherigen Lösungen offen legt. Zweitens zwingen uns die neuen Möglichkeiten dazu, uns im Rahmen der Datenanalyse mit einigen formalen Aspekten von Sprachen zu befassen, die bislang nur für Sprachwissenschaftler von Interesse waren. Bevor wir auf die beiden Probleme im Einzelnen eingehen, müssen wir einige technische Vorbemerkungen machen. Dabei haben wir ausdrücklich technisch weniger versierte Leser im Blick. Wenn Ihnen Begriffe wie Codetabellen, erweiterte ASCIICodierung, oder Binärcode geläufig sind, sollten Sie den Abschnitt überspringen – Sie würden sich vermutlich an unserer ungenauen Verwendung von Fachbegriffen nur stören.
11.7.1 Datencodierungen Sicher kennen Sie die Morsezeichen? Mit Hilfe von Morsezeichen werden Informationen zwischen einem Sender und einem Rezipienten mit Hilfe von drei unterschiedlichen Signalen weitergegeben: ein kurzes Signal, ein langes Signal und eine Pause. Einigen wir uns einmal darauf, kurze Signale mit einem Punkt zu symbolisieren, lange Signale mit einem Strich und die Pause mit einem Leerzeichen. Was bedeutet dann folgender Code?
S T A T A Wenn Sie sich in Ihrer Kindheit mit Ihren Geschwistern im Dunkeln über Morsezeichen und einer Taschenlampe verständigt haben, dürfte Ihnen die Lösung leicht gefallen sein: „Stata“. Alle anderen benötigen zur Lösung eine Tabelle, die den Signalen der Morsezeichen einen Buchstaben zuweist. Solche Tabellen finden Sie im Internet.²⁰ Man nennt sie „Codetabellen“. Glücklicherweise sind die Codetabellen für Morsezeichen international einheitlich, sonst gäbe es ein großes Durcheinander.
20 https://de.wikipedia.org/wiki/Morsezeichen
11.7 Unicode
| 449
Der Austausch von Informationen auf dem Computer funktioniert ähnlich wie die Morsezeichen. Die Signale sind hier aber nicht Lichter, Töne oder Funksignale, sondern „Strom fließt“ (1) oder „Strom fließt nicht“ (0). Auch werden auf dem Computer nur zwei Signale verwendet und nicht drei, wie bei den Morsezeichen. Man spricht darum von einem „Binärcode“. Die Information ob zu einem bestimmten Zeitpunkt Strom fließt oder nicht wird als „Bit“ bezeichnet. Komplexere Informationen werden dadurch codiert, dass eine vorher definierte Sequenz von Bits gesendet wird. Lange Zeit war es üblich, dass Buchstaben und Zahlen als Sequenz von genau sieben Bits codiert wurden. Dabei hatte man sich auf eine Codetabelle geeinigt, bei der z.B. der Buchstabe „S“ mit dem Code 01010011 kodiert wurde. Die Codetabelle, auf die man sich geeinigt hatte, hieß „American Standard Code for Information Interchange“, oder kurz ASCII-Tabelle. Entsprechend heißt die auf ihr beruhende Codierung von Buchstaben und Zahlen „ASCIICodierung“.²¹ Die ASCII-Tabelle hat für den Computer eine ähnliche Funktion wie der gesprächige goldene Droide aus dem Film Krieg der Sterne: Wenn ein Computer einem Menschen eine Sequenz von Bits präsentiert, übersetzt die ASCII-Tabelle den Binärcode in Buchstaben und Zahlen. Deswegen sehen wir an Stelle der Bit-Sequenz 0101001101110100011000010111010001100001 das Wort „Stata“ auf dem Bildschirm. Andersherum versteht der Computer 01010011, wenn wir „S“ in die Tastatur eingeben. Mit Hilfe einer Sequenz von 7 Bits lassen sich genau . display 2^7 128
Zeichen festlegen. In der ASCII-Tabelle werden, vereinfacht gesagt, alle auf einer amerikanischen Schreibmaschine um 1965 befindlichen Zeichen einem Binärcode zugewiesen: die 26 Groß- und 26 Kleinbuchstaben des lateinischen Alphabets, die 10 arabischen Ziffern (0-9), die Satzzeichen, die Rechenzeichen, Klammern und einige geläufige Zeichen wie Paragraph, Dollar, oder das @-Symbol. Diese so festgelegten 128 Zeichen werden als „ASCII-Zeichen“ bezeichnet. Die ASCII-Codierung hat einen entscheidenden Nachteil: sie ist etwas begrenzt. Die insgesamt recht zahlreichen speziellen Zeichen der verschiedenen europäischen Sprachen sind da nicht vorgesehen und erst recht nicht die ca. 87.000 chinesischen Schriftzeichen. Erste Abhilfe schafft die Erweiterung der 7-Bit-Codierung auf 8 Bit 21 Eine Codetabelle der ASCII-Codierung mit der Angaben des Binärcodes finden Sie unter https: //blog.nerdmind.de/page/ascii-tabelle/. Üblicherweise wird die ASCII-Tabelle in einem Format präsentiert, in der die 128 Zeichen von 0-127 durchnummeriert werden. Eine solche Übersicht finden Sie unter https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange
450 | 11 Daten lesen und schreiben (sog. „erweiterte ASCII-Codierung“). Durch das zusätzliche Bit erhöht sich die Anzahl codierbarer Zeichen um das Doppelte auf insgesamt 256. Die neu geschaffenen 128 zusätzlichen Zeichen waren (und sind) ausreichend, um die meisten gebräuchlichen Zeichen der westeuropäischen Sprachen zu codieren. Allerdings sind auch hier Kompromisse nötig. Der weit verbreiteten Codetabelle ISO 8859-1 („Latin 1“) fehlt z.B. das Eurozeichen und einige französische Zeichen (z.B. Œ, Ž und Ÿ). Deshalb wird oft die Codetabelle ISO 8859-15 („Latin 15“) verwendet, der wiederum u.a. die Zeichen ¼,½ und ¾ fehlen. In Skandinavien wird in der Regel die Codetabelle ISO 8859-4 verwendet, welche z.B. bestimmte in Island gebräuchliche Zeichen berücksichtigt, dafür aber andere Zeichen einspart. Die russische Codetabelle ISO 8859-5 enthält Groß- und Kleinbuchstaben des kyrillischen Alphabets verzichtet aber auf viele westeuropäische Zeichen. Letztlich findet sich für jede (europäische) Sprache eine Codetabelle, so dass für den typischen Benutzer in einem Kulturkreis keine Probleme sichtbar werden. Ein Problem kann aber beim Datenaustausch entstehen. Der Datenaustauch funktioniert nur, wenn sich Sender und Rezipient darauf geeinigt haben, die gleiche Codetabelle zu verwenden. Wenn nicht, gibt es ein großes Durcheinander: Wenn Sie das Zeichen ¼ eingeben und Ihre Software die Codetabelle ISO 8859-1 zum Speichern verwendet, wird Ihr französischer Kollege, der die Datei mit der Codetabelle ISO 8859-15 öffnet, an Stelle von ¼ das Zeichen Œ erhalten, und Ihr russischer Kollege wahrscheinlich das М. Dabei ist das Problem nicht auf den Austauch von Informationen zwischen Kollegen aus unterschiedlichen Ländern begrenzt. Es kann Sie auch auf Ihrem eigenen Computer treffen, wenn Sie eine Datei mit einer Software in ISO 8859-1 abspeichern und mit einer anderen Software mit ISO 8859-4 öffnen.²² Da die 8-BitCodierung nicht genügend Zeichen zulässt um alle Zeichen abzubilden, lässt sich das Durcheinander mit der erweiterten ASCII-Codierung leider nicht ganz vermeiden. Nur bei den ASCII-Zeichen können sich darauf verlassen, dass alle Nutzer das Zeichen sehen, dass Sie eingegeben haben. Echte Abhilfe verspricht Unicode. Unicode ist nichts weniger als eine große Codetabelle, die für alle „sinntragenden Schriftzeichen der uns bekannten Schriftkulturen“ (Wikipedia) einen binären Code festlegt. Zur Codierung von Zeichen stehen in Unicode 16 Bit zur Verfügung, welche zudem in 17 Ebenen organisiert sind, so dass insgesamt . display 17*2^16 1114112
verschiedene Zeichen kodiert werden können. Nach derzeitigem Kenntnisstand wird diese Anzahl wohl ausreichen. Wenn sich die Software-Hersteller darauf einigen, zukünftig Daten in Unicode auszutauschen, können deutsche Umlaute, chinesische Schriftzeichen und alt-ägyptische Hieroglyphen zukünftig genauso selbstverständ-
22 Kopieren Sie z.B. einmal einen Text mit Umlauten aus einem Windows-Text-Editor in das „DOSFenster“ von Windows.
11.7 Unicode
| 451
lich auf dem Computer verwendet werden, wie der Buchstabe O, die Zahl 4 oder das Symbol @. Als Stata 14 User sind Sie hierauf bestens vorbereitet. Soviel zu den technischen Hintergründen. Kommen wir nun zu den beiden eingangs erwähnten Problemen.
11.7.2 Kompatibilitätsprobleme Das erste Problem ist ein Kompatibilitätsproblem. Ein Kompatibilitätsproblem kann nur entstehen wenn Daten – „Unicode-Zeichen“ enthalten, d.h. Zeichen, die keine ASCII-Zeichen sind und – mit einer anderen Codetabelle gelesen werden als beim Speichern verwendet wurde. Selbst wenn beide Bedingungen erfüllt sind, muss das Problem nicht zwangsläufig auftreten. Die deutschen Umlaute sind z.B. in 10 der 16 Varianten der ISO 8859 Codetabellen dem gleichen Binärcode zugewiesen, weshalb es in der westlichen Welt selten geworden ist, dass Umlaute nicht als solche dargestellt werden. Wenn Sie aber ISO 8859 kodierte Daten mit der Unicode-Tabelle lesen wollen, werden Sie die Kompatibilitätsprobleme sehen. Als Beispiel enthält unser Dateipaket die Datei iso8859.txt, welche ISO 8859-1 codiert ist und die deutsche Umlaute enthält. Wenn Sie die Datei mit Stata 14 anzeigen sehen Sie, dass die Umlaute nicht korrekt angezeigt werden:²³ . type iso8859.txt
Die Datei iso8859.txt ist eine Textdatei. Das Kompatibilitätsproblem ist aber nicht auf Textdateien beschränkt. Die Datei iso8859.dta ist ein Stata-Datensatz mit zwei String-Variablen, sign und meaning, die mit der ISO 8859-1-Codierung erstellt wurde. Auch hier zeigt sich das Kompatibilitätsproblem:²⁴ . use iso8859, clear . list
Das Problem lässt sich durch Übersetzung der Daten in die Unicode Codierung lösen. Für Textdateien kann es reichen, die Datei mit dem Stata Do-File-Editor zu öffnen. Der Stata-Do-File Editor erkennt es, wenn eine Textdatei nicht Unicode-codiert ist und
23 Wir können das Problem aus technischen Gründen hier nicht wiedergeben. Das liegt daran, dass wir bei der Erstellung dieses Textes mit der Unicode-Codierung arbeiten, und die ISO 8859-1 codierten eine Fehlermeldung bei der Erstellung der Druckvorlagen hervorrufen. 24 Fußnote 23 gilt entsprechend.
452 | 11 Daten lesen und schreiben überträgt deren Inhalt automatisch in Unicode.²⁵ Sobald die Datei abgespeichert wird ist sie Unicode-codiert (mit dem Nebeneffekt, dass die Umlaute bei Verwendung der ISO 8859-Codierung nicht mehr korrekt dargestellt werden). Eleganter ist die Verwendung der unicode-Werkzeuge. Für unsere Zwecke sind drei dieser Werkzeuge wichtig: unicode analyze dient zur Prüfung, ob eine Datei eine Übersetzung in Unicode benötigt. Das ist nur dann der Fall, wenn in der Datei Zeichen enthalten sind, die nicht zu den 128 ASCII-Zeichen gehören. unicode encoding dient zur Festlegung der Codetabelle mit der die Datei, die übertragen werden soll, codiert wurde. unicode translate führt die eigentliche Übersetzung durch. Nachfolgend werden wir diese Werkzeuge nutzen um alle Dateien in unserem UserVerzeichnis, die einer Übersetzung bedürfen, in Unicode zu übertragen. Beginnen wir damit, alle Dateien im Verzeichnis darauf zu überprüfen, ob sie eine Übersetzung benötigen. Hierzu benötigen wir einen leeren Arbeitsspeicher: . clear
Danach können wir mit unicode analyze * alle Dateien im aktuellen Arbeitsverzeichnis daraufhin überprüfen, ob einzelne Dateien einer Übersetzung bedürfen. Im Folgenden geben wir dem Befehl jedoch den Hinweis, dass nur diejenigen Dateien untersucht werden sollen, in deren Namen der String „iso“ vorkommt: . unicode analyze *iso* (Directory ./bak.stunicode created; please do not delete) File summary (before starting): 3 file(s) specified 3 file(s) to be examined ... File criso8859.do (text file) 17 lines in file 10 lines ASCII 7 lines need translation File needs translation.
Use unicode translate on this file.
File iso8859.dta (Stata dataset) 1 str# variable needs translation File needs translation. File iso8859.txt 13 5 8
(text lines lines lines
Use unicode translate on this file.
file) in file ASCII need translation
File needs translation.
Use unicode translate on this file.
25 Gute Texteditoren erkennen die Codierung einer Textdatei selbständig. Anders als der Stata DoFile-Editor wird die Codierung aber nicht automatisch geändert. Vielmehr wird die Datei in derjenigen Codierung geöffnet und gespeichert, in der die Datei ursprünglich angelegt wurde.
11.7 Unicode
| 453
Files matching *iso* that need translation: criso8859.do iso8859.dta iso8859.txt File summary: all files need translation
Stata schlägt vor, alle untersuchten Dateien mit unicode translate zu übersetzten. Wir folgen diesem Rat. Dazu müssen wir zunächst festlegen, in welcher Codierung die Datei vorliegt. Das ist theoretisch der schwierigste Teil, weil in der Computerwelt unzählige Codetabellen im Einsatz sind, und ein und dieselbe Codetabellen darüber hinaus unterschiedliche Namen hat. Der Befehl . unicode encoding list
zeigt die Namen und Aliase aller in Stata implementierten Codetabellen an. Der Befehl . unicode encoding list *latin*
schränkt die Liste auf diejenigen Codetabellen ein, die im sog. „westlichen Kulturkreis“ am häufigsten in Benutzung sind. Wenn Ihnen die Codierung einer Datei völlig unbekannt ist und die Datei nicht aus dem mittleren oder fernen Osten stammt, sollten Sie es zunächst mit der ISO-8859-1-Codierung versuchen. Diese auch „Latin 1“-Codierung genannte Codetabelle ist bei uns sehr verbreitet und für viele Zeichen mit anderen gebräuchlichen Codetabellen deckungsgleich. Probieren wir es also damit: . unicode encoding set latin1 (default encoding now latin1)
Danach können wir mit dem Übersetzen beginnen. Dabei ist es möglich gleich alle einschlägigen Dateien zu übersetzen: . unicode translate *iso* (using latin1 encoding) File summary (before starting): 3 file(s) specified 3 file(s) to be examined ... File criso8859.do (text file) 17 lines in file 10 lines ASCII 7 lines translated File successfully translated File iso8859.dta (Stata dataset) all variable names okay, ASCII all data labels okay, ASCII all variable labels okay, ASCII 1 str# variable okay, ASCII 0 str# variables okay, already UTF-8 1 str# variable translated
454 | 11 Daten lesen und schreiben
File successfully translated File iso8859.txt 13 5 8
(text lines lines lines
file) in file ASCII translated
File successfully translated File summary: all files successfully translated
Das scheint geklappt zu haben. Wenn einzelne Zeichen nicht übersetzt werden könnten, würde Stata eine Fehlermeldung ausgeben und die betroffene Datei nicht übersetzen. unicode translate mit der Option invalid würde die Fehlermeldung ignorieren und einfach so viele Zeichen wie möglich übersetzen. Wenn gar keine Fehlermeldung erfolgt, spricht viel dafür, dass der Vorgang erfolgreich war. Vergewissern wir uns: . type iso8859.txt Dies ist eine ISO 8859-1 codierte Textdatei. Umlaute und Sonderzeichen werden nicht korrekt angezeigt, wenn Sie die Datei mit Unicode öffnen. Beispiele --------Ä Ö Ü ä ö ü ß
-> -> -> -> -> -> ->
A-Umlaut O-Umlaut U-Umlaut a-Umlaut o-Umlaut u-Umlaut Esszet
. use iso8859, clear . list ybirth
sign
meaning
1. 2. 3. 4. 5.
1901 1902 1904 1904 1905
Ä Ö Ü ä ö
A-Umlaut O-Umlaut U-Umlaut a-Umlaut o-Umlaut
6. 7. 8. 9. 10.
1906 1906 1906 1906 1907
ü ß
u-Umlaut Esszet
Sehr gut! Sollte das Ergebnis einmal nicht sehr gut ausfallen, verwenden Sie unicode restore um den Originalzustand wiederherzustellen. Das sollten Sie hier aber auch deshalb tun, um diesen Abschnitt bei Bedarf nochmals durcharbeiten zu können:
11.7 Unicode
| 455
. clear . unicode restore *iso* restoring criso8859.do restoring iso8859.dta restoring iso8859.txt
11.7.3 Babylon Die Arbeit mit Datensätzen, in denen Unicode-Zeichen enthalten sind, kann manchmal sehr verwirrend sein. Einige Ursachen für dies Verwirrung sollen in diesem Abschnitt kurz Erwähnung finden, weshalb wir ihn in Anspielung auf die „Sprachverwirrung“ beim Turmbau zu Babel mit „Babylon“ überschrieben haben. Die hier behandelten Themen sind sehr speziell und werden darum nur kurz angesprochen. Für eine ausführliche Darstellung verweisen wir auf [D] unicode und [U] 12.4.2. Handling Unicode strings. Das erste Problem betrifft die Sortierung von Strings mit Unicode-Zeichen. Zum besseren Verständnis bitten wir sie folgenden Datensatz zu erstellen: . clear . input str12 ort 1. 2. 3. 4. 5.
ort Mundelfingen München Murnau Straßburg end
Nehmen Sie an, sie möchten auf Basis dieses Datensatzes eine alphabetische Liste der Ortschaften erstellen. Naheliegend ist, den Datensatz nach ort zu sortieren und dann aufzulisten: . sort ort . list ort 1. 2. 3. 4.
Mundelfingen Murnau München Straßburg
Hätten Sie die gleiche Sortierung gewählt? Vermutlich nicht. Die deutsche Industrienorm (DIN) 5007 schreibt vor, die Umlaute Ä, Ö, und Ü entweder wie die Buchstaben A, O und U zu behandeln oder aber wie AE, OE und UE. In beiden Fällen kommt „München“ vor Mundelfingen und „Murnau“. Aber das sind deutsche Vorschriften, die nicht in allen Ländern gültig sind.
456 | 11 Daten lesen und schreiben Allgemein gilt: Um Strings mit Unicode-Zeichen „korrekt“ zu sortieren müssen die regional unterschiedlichen Regeln dafür festgelegt werden, was unter „korrekt“ zu verstehen ist. Die Definition dieser Regeln wird als „Lokalisierung“ bezeichnet. Unicode-Unterstützung erfordert String-Funktionen, die eine solche Lokalisierung erlauben. In Stata 14 gibt es darum ein Reihe von neuen Funktionen, die diese Möglichkeit bieten. Eine solche Funktion ist ustrsortkey(varname,locale), Sie weißt Strings mit beliebigen Unicode-Zeichen einen Sortierwert zu, bei dem eine Lokalisierung berücksichtigt wird. Erstellt man mit dieser Funktion eine Variable, kann nach dieser sortiert werden. Im Folgenden zeigen wir ein Beispiel mit der Lokalisierung de_DE, welche die in Deutschland gültigen Regeln für die Sprache deutsch implementiert: . gen index = ustrsortkey(ort,"de_DE") . sort index . list ort ort 1. 2. 3. 4.
München Mundelfingen Murnau Straßburg
Andere Lokalisierungen führen gegebenenfalls zu anderen Reihenfolgen. Die Liste der möglichen Lokalisierungen erhalten Sie mit . unicode locale list
Das zweite Problem besteht darin, dass zahlreiche Stata-Funktionen für Strings mit Unicode-Zeichen eine Bedeutungsveränderung erfahren. Nehmen Sie als Beispiel die Funktion upper(), welche Kleinbuchstaben in Großbuchstaben verwandelt, oder aber die Funktion length(), welche die „Länge“ von Strings ermittelt: . gen ort2 = upper(ort) . gen length = length(ort) . list ort ort2 length
1. 2. 3. 4.
ort
ort2
length
München Mundelfingen Murnau Straßburg
MüNCHEN MUNDELFINGEN MURNAU STRAßBURG
8 12 6 10
Schauen Sie sich zunächst die Ergebnisse der upper()-Funktion an. In der Variable ort2 sind weder das Esszet noch das Umlaut „ü“ in Großbuchstaben umgesetzt – wobei ohnehin fraglich ist, wie das Zeichen „ß“ in Großbuchstaben aussieht. Allge-
11.7 Unicode
| 457
mein unterscheiden sich Regeln zur Großschreibung von Sonderzeichen zwischen Ländern, so dass wieder ein Funktion benötigt wird, die Lokalisierung zulässt. Für upper() ist das ustrupper(): . replace ort2 = ustrupper(ort,"de_DE") (2 real changes made) . list ort ort2 length
1. 2. 3. 4.
ort
ort2
length
München Mundelfingen Murnau Straßburg
MÜNCHEN MUNDELFINGEN MURNAU STRASSBURG
8 12 6 10
Nun zur Länge. Stata hat für den String „Murnau“ eine Länge von 6 Zeichen errechnet. Das ist korrekt. Erstaunlicherweise ermittelt Stata aber für den String „München“ die Länge 8, obwohl München nur 7 Buchstaben lang ist. Der Grund hierfür ist, dass das Konzept der Länge eines Strings unter Unicode verschiedene Bedeutungen annehmen kann: – Länge kann die Anzahl der sichtbaren Zeichen sein. Dieses Verständnis der Länge würde in unserem Beispiel das Ergebnis 7 für München und 9 für Straßburg implizieren. – Länge kann die physische Breite der Strings bezeichnen. Diese wäre in unserem Beispiel identisch zur Anzahl der Zeichen. Im Fall von chinesischer Schriftzeichen kann ein einzelnes Zeichen jedoch auch die doppelte oder sogar dreifache Breite eines lateinischen Buchstabens ausmachen. In solchen Fällen unterscheiden sich die Konzepte voneinander. – Länge kann die Byte-Länge eines Strings bezeichnen. Jedes ASCII-Zeichen hat eine Länge von einem Byte (8 Bit).²⁶ Unicode-Zeichen benötigen dagegen 2 Byte (16 Bit). Jedes Unicode-Zeichen verlängert daher die Byte-Länge eines Strings gegenüber der Zeichenzahl um Eins. Die Aufzählung macht deutlich, dass die Funktion length() offenbar die Byte-Länge eines Strings ermittelt. Solange ein String nur ASCII-Zeichen enthält, entspricht die Byte-Länge der Anzahl der Zeichen. Sobald aber Unicode-Zeichen auftreten, streben die Ergebnisse auseinander. Zur Ermittlung der Anzahl von Zeichen in Strings die Unicode-Zeichen enthalten gibt es die Funktion ustrlen(), für die Breite der Strings in Einheiten der Bildschirmspalten udstrlen(): . gen length2 = ustrlen(ort)
26 Für die ASCII-Zeichen werden zwar nur 7 Bit benötigt, jedoch wurde ein Reservebit zugeschlagen, der später für die erweiterte ASCII-Codierung genutzt wurde.
458 | 11 Daten lesen und schreiben . gen length3 = udstrlen(ort) . list ort length*
1. 2. 3. 4.
ort
length
length2
length3
München Mundelfingen Murnau Straßburg
8 12 6 10
7 12 6 9
7 12 6 9
Zu weiteren Funktionen, die speziell für Strings mit Unicode-Codierung programmiert wurden siehe [U] 12.4.2. Handling Unicode strings. Nun zum dritten Problem. Bitte geben Sie folgende Daten ein: . clear . input str10 letters letters 1. a 2. Ð 3. Ø 4. Å 5. end
Fraglich ist hier, wie die Zeichen, die nicht auf der Tastatur zu finden sind eingegeben werden können. Die Betriebssysteme stellen für die Eingaben von Unicode-Zeichen unterschiedliche Mechanismen zur Verfügung: Windows Drücken Sie Windows + R und geben Sie dann „charmap“ gefolgt von der Eingabetaste ein. Danach erscheint ein Fenster, in dem Sie die Zeichen suchen könnnen. Das Zeichen wählen Sie aus und kopieren es dann in das StataEingabefenster. MacOS Drücken Sie Command + Ctrl + Space. Danach erscheint ein Übersicht in der sie das Zeichen auswählen können. UNIX/Linux Drücken Sie Ctrl + Shift + U und geben Sie die Hex-Repräsentation des Zeichens ein, welches Sie eingeben wollen.²⁷
27 Die Hex-Repräsentation der Unicode-Zeichen finden Sie z.B. unter http://unicode-table.com/de/.
11.8 Übungen
| 459
11.8 Übungen –
Aggregatdaten 1. Besuchen Sie die interaktive Datenbank zur Lebensqualität der „European Foundation for the Improvement of Working and Living Conditions“²⁸. Suchen Sie auf dieser Website die Tabellen mit dem Prozentwerten für Personen, die „sehr übergewichtig“ sind. Erstellen Sie einen Stata-Datensatz, der diese Daten enthält. 2. Fügen Sie diesem Datensatz die Informationen über den Anteil der Personen mit starkem Untergewicht hinzu (Daten auf derselben Website). Verwenden Sie hierzu den merge-Befehl. Speichern Sie den Datensatz für die weitere Benutzung. 3. Laden Sie die Daten „National Health and Nutrition Examination Study“ (NHANES): . webuse nhanes2, clear
–
4. Erstellen Sie einen aggregierten Datensatz mit dem Anteil der Personen, die innerhalb einer Region starkes Übergewicht und starkes Untergewicht haben. Verwenden Sie hierzu die Definitionen der „European Foundation“ (und ignorieren Sie die Unterschiede im Alter der Beobachtungen). 5. Erstellen Sie einen integrierten Datensatz mit den amerikanischen und europäischen Werten. Individualdaten 1. Fügen sie die Dateien ap.dta und apeqiv.dta des Unterverzeichnisses kksoep des Dateipakets dieses Buches mit dem merge-Befehl zusammen. 2. Erstellen Sie einen Datensatz, der die Variable „HH-Post-Government Income“ aus allen GSOEP-Äquivalenz-Files (kksoep/*pequiv.dta) enthält. Benutzen Sie dazu nur die Beobachtungen, die zu allen Erhebungszeitpunkten befragt wurden (balanced Panel). 3. Erstellen Sie denselben Datensatz wie zuvor, aber benutzen Sie dieses Mal alle Befragten, die mindestens 10-mal befragt wurden. 4. Fügen Sie die Dateien ahbrutto.dta und ap.dta mit dem merge-Befehl zusammen. Finden Sie heraus, ob es einen Unterschied macht, wenn Sie die Reihenfolge verändern, mit der Sie die beiden Dateien zusammenfügen. 5. Erstellen Sie einen Haushaltsdatensatz aus dem Individualdatensatz ap.dta. Fügen Sie ahbrutto.dta zu dieser Datei hinzu.
28 http://www.eurofound.europa.eu/areas/qualityoflife/eurlife/index.php
12 Do-Files für Fortgeschrittene und eigene Programme Bei einer umfangreichen Datenanalyse wird es häufig vorkommen, dass Sie bestimmte Befehlssequenzen immer wieder verwenden müssen. Zum Beispiel dann, wenn Sie eine Analyse wiederholen oder mit anderen Daten replizieren wollen; wenn Ihr Datensatz eine Reihe ähnlicher Variablen enthält, die gleich behandelt werden sollen, oder wenn Sie im Rahmen Ihrer Analysen immer wieder bestimmte Maßzahlen berechnen oder Grafiken zeichnen, für die es in Stata keine vorgefertigten Befehle gibt. In all diesen Situationen können Sie sich viel Arbeit sparen, wenn Sie sich ein wenig mit dem Handwerkszeug der Programmierung befassen, das wir Ihnen in diesem Kapitel vorstellen. Wir wollen hier vier solcher Programmierwerkzeuge unterscheiden: lokale Makros, Do-Files, Programme und Ado-Files. Diese werden wir in Abschnitt 12.2 ausführlich erläutern. Im Abschnitt 12.3 dieses Kapitels zeigen wir Ihnen, wie Sie lokale Makros und Programme verwenden können, um eigene Stata-Befehle zu schreiben, zu letzteren dann mehr in Abschnitt 12.3. Zuvor wollen wir Ihr Interesse an Programmierung jedoch anhand zweier Beispiele wecken.
12.1 Zwei Anwendungsbeispiele Anwendungsfall 1 Angenommen Sie arbeiten mit dem Panel-Datensatz progex.dta aus unserem Dateipaket. Dieser Datensatz enthält Informationen zur Lebenszufriedenheit von 506 Befragten, die bei allen Erhebungen seit 1984 teilgenommen haben. Der Datensatz ist so organisiert, dass die Antworten aus jeder Erhebungswelle in einer anderen Variablen stehen. Sie können die Struktur des Datensatzes mit folgendem Befehl ansehen:¹ . use progex, clear . describe . list in 1
Die Variable zur Lebenszufriedenheit finden Sie 26-mal im Datensatz. Sie finden die Antworten aus dem Jahr 1984 in der Variablen ap6801, die Antworten von 1985 in bp9301, die Antworten von 1986 in cp9601 und so weiter (vgl. Abschn. 11.4.1 für eine Erklärung der Daten- und Variablenstruktur des GSOEP). Stellen Sie sich nun vor, Sie wollen Variablen generieren, die jeweils zwischen den Befragten mit einer Lebenszufriedenheit über bzw. unter dem jährlichen Durchschnitt 1 Bitte versichern Sie sich, dass Ihr Arbeitsverzeichnis c:\data\kk lautet (vgl. S. 12).
12.1 Zwei Anwendungsbeispiele
| 461
unterscheiden. In diesem Fall müssten Sie Befehle wie die Folgenden für jedes Jahr eingeben: . . . . .
label define lsat .a "No answer" 0 "below avarage" 1 "above avarage" summarize ap6801 if ap6801 > -1 generate lsat1984:lsat = ap6801 > r(mean) if ap6801 > -1 replace lsat1984 = .a if ap6801 == -1 label variable lsat1984 "Life satisfaction above average (1984)"
Nun müssen Sie diese Befehlssequenz (mit Ausnahme der ersten Zeile) für die Antworten von 1985, 1986 und so weiter wiederholen. Nach 104 Befehlen haben Sie die neuen Variablen gebildet und beschriftet. Selbst wenn Sie diese Befehle nicht alle interaktiv eingeben, sondern den obigen Block in einen Do-File schreiben, 26-mal kopieren und lediglich die Jahreszahlen ändern, ist dies immer noch sehr viel Arbeit und vor allem fehleranfällig. Was wäre, wenn Sie sich danach überlegen, dass Sie lieber den Median anstatt des Mittelwerts zur Trennung der Befragten verwenden wollen? Oder wenn Sie der Missing-Kategorie −1 lieber den Wert 3 für „Andere“ zuweisen würden. Oder wenn Sie die Befragten mit einer Lebenszufriedenheit von 0 oder 10 separat ausweisen wollen? Sie ahnen wahrscheinlich, worauf wir hinaus wollen. Das Ganze würde ziemlich umständlich. Eine Lösung für dieses Problem finden Sie in dem Do-File crlsat.do unseres Datenpaketes. In diesem Do-File verwenden wir eine foreach-Schleife (vgl. Abschn. 3.2.2) zusammen mit einigen zusätzlichen Tricks, die wir in diesem Kapitel erklären werden. Anwendungsfall 2 Stellen Sie sich vor, Sie berechnen logistische Regressionen und wollen an Stelle des von Stata ausgewiesenen McFadden-Pseudo-R2 (McFadden 1973) das Pseudo-R2 von Aldrich und Nelson (1984: 57) ausweisen. Dazu könnten Sie im Anschluss an die logistische Regression folgende Befehlssequenz verwenden: . gen satisfied1984 = ap6801==10 . logit satisfied1984 ybirth . display "p2 = " e(chi2)/(e(chi2) + e(N))
Statt diesen Befehl jedes Mal nachzuschlagen und „von Hand“ zu berechnen, könnte es sich lohnen, einen kleinen Ado-File zu schreiben, der diese Aufgabe erfüllt. Wenn Sie diesen Ado-File an einer geeigneten Stelle auf Ihrer Festplatte speichern, können Sie zukünftig nach jeder logistischen Regression den Namen dieses Ado-Files eingeben und bekommen dann das Pseudo-R2 nach Aldrich und Nelson angezeigt. Unsere Version dieses Ado-Files können Sie so installieren:² . net install p2, from(http://www.stata-press.com/data/kk4)
2 Hinweise zur Installation von Ado-Files finden Sie in Kap. 13.
462 | 12 Do-Files für Fortgeschrittene und eigene Programme Bitte laden Sie nun unseren Beispieldatensatz data1.dta: . use data1, clear
12.2 Vier Programmierwerkzeuge In diesem Abschnitt wollen wir Ihnen vier Werkzeuge von Stata vorstellen, die Sie nach einiger Übung wahrscheinlich sehr nützlich finden werden. Beginnen wollen wir mit lokalen Makros, in denen Sie Ergebnisse, Worte und Zahlen speichern können. Danach stellen wir Ihnen Do-Files, Programme und Ado-Files vor. 12.2.1 Makros Lokale Makros haben wir bereits in Kapitel 4 angesprochen und an verschiedenen Stellen dieses Buches zum längerfristigen Aufbewahren interner Resultate angewandt. In diesem Abschnitt wollen wir lokale Makros als ein allgemeineres Programmierwerkzeug vorstellen. In ein lokales Makro werden Zeichenketten gespeichert. Durch die Definition eines lokalen Makros vergeben Sie für eine beliebige Zeichenkette einen Namen. Nach der Definition können Sie an Stelle der Zeichen den Makronamen eingeben. Die Definition eines lokalen Makros erfolgt mit dem Befehl local. Lassen Sie uns diesen Befehl nutzen, um das folgende lokale Makro mit dem Namen a zu definieren: . local a income yedu ybirth
Hiermit wird die Zeichenkette inc yedu ybirth dem Makronamen a zugewiesen. Wenn Sie den Inhalt des lokalen Makros a verwenden wollen, müssen Sie Stata mitteilen, dass es sich bei a um den Namen eines lokalen Makros handelt und nicht etwa um den Namen einer Variablen. Zu diesem Zweck wird vor den Namen des lokalen Makros das Zeichen ` (ein französischer Accent grave) und nach dem lokalen Makro das Zeichen ' (ein einfaches Anführungszeichen) gesetzt. Auf deutschen Tastaturen finden Sie den Accent grave in der oberen rechten Ecke der Tastatur. Bevor das Zeichen angezeigt wird, müssen Sie die Leertaste drücken. Das einfache Anführungzeichen liegt rechts neben dem ä auf der Taste mit dem #. Wenn Stata auf ein lokales Makro trifft, wird das Makro augenblicklich durch seinen Inhalt ersetzt. Immer wenn Sie im Folgenden inc yedu ybirth tippen müssen, können Sie stattdessen einfach den Makronamen angeben, also z.B. . summarize `a' Variable
Obs
Mean
income yedu ybirth
4,779 5,039 5,411
20540.6 11.80419 1959.493
Std. Dev.
Min
Max
37422.49 2.676028 18.12642
0 8.7 1909
897756 18 1992
12.2 Vier Programmierwerkzeuge
| 463
Bei diesem Befehl liest Stata summarize inc yedu ybirth und reagiert mit der entsprechenden Ausgabe. Wenn nicht, haben Sie wahrscheinlich die falschen Zeichen zur Kennzeichnung des lokalen Makros verwendet. Vergewissern Sie sich, dass Sie den französischen Accent grave und das einfache Anführungszeichen verwendet haben. Durch lokale Makros lässt sich oft sehr viel Schreibarbeit sparen. Allerdings sollten Sie drei Dinge wissen, wenn Sie lokale Makros zu diesem Zweck verwenden: 1. Der Name eines lokalen Makros darf höchstens 31 Zeichen lang sein. 2. Die Zeichenkette eines lokalen Makros kann nur in einer Zeile stehen, die jedoch bis zu 67.784 Zeichen lang sein kann. Dieser Wert gilt für Intercooled Stata. In Small Stata sind es 8.681 Zeichen und in Stata/SE 1.081.511. 3. Lokale Makros gelten nur innerhalb der Umgebung, in der sie definiert werden. Wenn Sie ein lokales Makro in einem Do-File definieren, steht das Makro nur solange zur Verfügung, wie der Do-File läuft. Ist der Do-File zu Ende, wird das Makro nicht länger gespeichert. Wenn Sie interaktiv ein lokales Makro definieren, erkennt Stata das Makro, solange Sie interaktiv arbeiten. Sobald Sie einen Do-File starten, kann das interaktiv definierte Makro nicht verwendet werden. Erst wenn der Do-File zu Ende ist und Sie wieder interaktiv arbeiten, kann das interaktiv definierte Makro wieder verwendet werden. Auf Grund dieser lokalen Gültigkeit können Sie in unterschiedlichen Kontexten die gleichen Makronamen verwenden ohne Verwechslungen befürchten zu müssen.
Rechnen mit lokalen Makros Neben dem Sparen von Schreibarbeit kann mit lokalen Makros auch gerechnet werden. Hierzu stehen zwei Varianten zur Verfügung: . local m1 2+2 . local m2 = 2+2
Die Befehle unterscheiden sich durch das Gleichheitszeichen. Beide Befehle funktionieren und beide führen scheinbar zum gleichen Ergebnis: . display `m1' 4 . display `m2' 4
Aber es gibt einen Unterschied. Sie sehen diesen Unterschied, wenn Sie den Makronamen im display-Befehl mit Anführungszeichen einschließen. Mit den Anführungszeichen wird display aufgefordert, einen Text anzuzeigen, ohne Anführungszeichen zeigt display dagegen das Ergebnis eines Ausdrucks (S. 60). Oben wurde daher mit display zunächst das Ergebnis der in den lokalen Makros gespeicherten Rechenaufgaben angezeigt. Das Ergebnis war beide Male 4. Lässt man sich den Inhalt
464 | 12 Do-Files für Fortgeschrittene und eigene Programme der lokalen Makros dagegen als Text anzeigen, so zeigt sich, dass das erste Makro die Aufgabe, das zweite das Ergebnis enthält.³ . display "`m1'" 2+2 . display "`m2'" 4
Beachten Sie den Unterschied, wenn Sie multiplizieren: . display 2*`m1' 6
wird zu 2 × 2 + 2 = 6 und . display 2*`m2' 8
zu 2 × 4 = 8.
Lokale Makros kombinieren Man kann lokale Makros untereinander kombinieren. Hier einige Beispiele zur Illustration. Achten Sie, bevor Sie diese Befehlszeilen eingeben, darauf, dass Ihr aktuelles Arbeitsverzeichnis unsere Do-Files und Datensätze enthält: . . . . . . . .
local a local b local c `a'`b' `a'`c' local b display `b'
dir *. dta do `a'`b' "`b'"
Verändern von lokalen Makros Nehmen Sie nun an, Sie wollen zum bereits bestehenden Makro `i', das die Zahl 5 enthält, die Zahl 1 hinzuaddieren. Der Befehl lautet: . local i 5 . local i = `i' + 1
In diesem Befehl muss das Makro `i' auf der rechten Seite der Gleichung stehen und in die Zeichen ` und ' eingeschlossen werden. Der Grund hierfür ist, dass `i' 3 Darüber hinaus lassen sich auf die erste Weise bis zu 18.623 Zeichen speichern, auf die zweite Weise dagegen nur 80.
12.2 Vier Programmierwerkzeuge
| 465
durch die Zahl 5 ersetzt wird, der Befehl wird also umgesetzt in local i = 5+1. Wenn Sie i auf der linken Seite zwischen einfache Anführungszeichen gesetzt hätten, würde der Befehl local 5 = 5+1 lauten, d.h., man würde ein Makro mit dem Namen „5“ erzeugen. Davon abgesehen, ist das Ändern lokaler Makros relativ einfach. Hier sind einige Beispiele: . local i 1 . local i = `i' + 10 . di `i' 11 . local i = `i' + `i' . di `i' 22 . local i "i is `i'" . di "`i'" i is 22
Sie können Makros jederzeit mit Ausdrücken, Zeichen oder sogenannten erweiterten Makrofunktionen verändern (vgl. Abschn. 12.3.8). Zusätzlich möchten wir auf die Makro-Erweiterungsoperatoren hinweisen. Diese Operatoren dienen zur Addition oder Subtraktion der Zahl 1 zu oder von einem Makro, entweder bevor Stata das Makro erweitert oder danach. Dies wird durch ein Beispiel deutlich . local i 1 . di `i++' 1 . di `i' 2
Hier wird zunächst das lokale Makro i definiert. Danach zeigen wir das Makro i mit dem Erweiterungsoperator (++) an. Hierdurch wird das Makro, nachdem es angezeigt wurde, um 1 erhöht. Nach dem display-Befehl enthält das Makro deshalb die Zahl 2. Wird der Erweiterungsoperator vor das Makro geschrieben, wird der Inhalt um 1 erhöht, bevor das Makro von Stata erweitert wird. Das gleiche Prinzip gilt für --: . di `++i' 3 . di `i--' 3 . di `--i' 1
466 | 12 Do-Files für Fortgeschrittene und eigene Programme 12.2.2 Do-Files Nehmen Sie einmal an, Sie hätten den Wunsch, dass Ihr Computer von Zeit zu Zeit die Worte hello, world ausgibt. Dazu können Sie folgenden Befehl verwenden: . display "hello, world" hello, world
Allerdings müssten Sie diesen Befehl jedes Mal wiederholen, wenn Sie erneut die Ausgabe von hello, world wünschen. Das ist – wir geben es zu – nicht weiter schlimm, denn allzu lang ist der Befehl ja nicht. Aber der Befehl könnte ja auch länger sein und darum sollte man sich fragen, ob man nicht doch etwas Arbeit sparen könnte. Schreiben Sie nun bitte folgenden Do-File und speichern Sie ihn unter dem Namen hello.do in Ihrem Arbeitsverzeichnis ab. Schreiben Sie dabei aber nur die StataBefehle. Die Linien und die Zeilennummern verweisen lediglich darauf, dass es sich um Befehle in einer Datei handelt. 1: 2:
display "hello, again" exit
begin hello.do end hello.do
Wenn Sie damit fertig sind, können Sie hello.do ausführen: . do hello
Wir erreichen damit das gleiche Ergebnis wie durch display "hello, world", sparen uns aber die Eingabe einiger Zeichen. Und natürlich enthält ein Do-File typischerweise mehr als nur einen Befehl.
12.2.3 Programme Neben Do-Files bietet Ihnen der Befehl program eine zweite Möglichkeit, mehrere Befehlszeilen gemeinsam zu speichern und abzurufen. Die Wirkungsweise von program lässt sich am besten durch ein Beispiel verdeutlichen. Bitte geben Sie dazu Folgendes ein: . program hello 1. display "Hello, world" 2. end
Bei diesen Befehlen beginnt die erste Zeile die Definition eines Programms mit dem Namen hello, wobei Sie einen beliebigen anderen Namen mit weniger als 31 Zeichen verwenden können. Nach der Eingabe des ersten Befehls zeigt Stata 1. am Bild-
12.2 Vier Programmierwerkzeuge
| 467
schirm an. Dies ist die Eingabeaufforderung für den ersten Befehl Ihres Programms (die zweite Zeile der Befehle). Bitte geben Sie den Befehl ohne die Nummer ein. Danach erscheint die Eingabeaufforderung für den zweiten Befehl, den das Programm ausführen soll. In unserem Beispiel wollen wir das Programm beenden und geben deshalb end in das Eingabefenster ein. Danach erhalten Sie wieder den üblichen Punkt als Eingabeaufforderung. Nun haben wir das Programm hello definiert und Sie können jetzt hello in die Kommandozeile eingeben: . hello Hello, world
Sie geben hello ein und Stata antwortet mit Hello, world. Mit dem Befehl program werden Programme definiert. Anders als Do-Files werden diese Programme jedoch im Arbeitsspeicher des Computers gespeichert und nicht in einer Datei auf der Festplatte. Wenn man etwas in das Stata-Eingabefenster schreibt, sucht Stata im Arbeitsspeicher nach einem Programm, das so heißt, wie das, was eingegeben wurde. Wenn wir also hello in das Eingabefenster eingeben, durchsucht Stata den Arbeitsspeicher nach einem Programm mit dem Namen hello und findet darin das zuvor mit program dort abgespeicherte Programm hello. Danach werden die zwischen program und end stehenden Stata-Befehle ausgeführt. Die Programme ähneln in vielem den bereits bekannten Do-Files. Es gibt jedoch Unterschiede: – Do-Files werden in einer Datei auf der Festplatte des Computers gespeichert, Programme dagegen im Arbeitsspeicher. – Do-Files bleiben erhalten, wenn Stata beendet oder der Computer ausgeschaltet wird, Programme gehen spätestens dann verloren, wenn Stata beendet wird. – Ein Do-File wird durch Eingabe von do Dateiname aufgerufen, ein Programm durch Eingabe des Programmnamens. – Stata sucht Programme im Arbeitsspeicher. Deshalb müssen Programme in den Arbeitsspeicher geladen werden, bevor sie aufgerufen werden können. Do-Files müssen am angegebenen Ort auf der Festplatte gespeichert sein. – Bei Do-Files werden die Ergebnisse der aufgeführten Stata-Befehle und die StataBefehle angezeigt, bei Programmen werden nur die Ergebnisse angezeigt. Betrachtet man sich die Liste der Unterschiede zwischen Do-Files und Programmen, so besteht der wichtigste Unterschied darin, dass Do-Files langfristig zur Verfügung stehen, Programme dagegen nur während einer Stata-Sitzung. Im folgenden Abschnitt werden wir uns daher mit Möglichkeiten befassen, Programme über einen längeren Zeitraum aufzubewahren. Zuvor ist es jedoch notwendig, sich mit einigen typischen Problemen zu befassen, die sich beim Speichern und Aufrufen von Programmen ergeben können.
468 | 12 Do-Files für Fortgeschrittene und eigene Programme Das Problem der Neudefinition Nehmen Sie einmal an, der Computer soll „Hi, back“ statt „Hello, world“ anzeigen: . program hello hello already defined r(110);
Stata kennt die Namen der Programme im Arbeitsspeicher und lässt nicht zu, dass diese überschrieben werden. Man muss darum zunächst die alte Version aus dem Arbeitsspeicher löschen, bevor man die neue erstellt: . program drop hello . program hello 1. display "Hi, back" 2. end . hello Hi, back
Das Problem der Benennung Das Programm soll nicht hello sondern q heißen: . . . .
program q display "Hello, world" end q
Überraschenderweise zeigt Stata nun nicht „Hello, world“, sondern seine Systemeinstellungen an. Das liegt daran, dass q die Abkürzung für das „interne“ StataKommando query ist. Stata sucht nur dann nach Programmen, wenn es kein internes Stata-Kommando mit entsprechendem Namen gibt. Aus diesem Grund sollten Sie für Ihre Programme keine Namen von internen Kommandos verwenden. Um herauszufinden, ob es bereits ein Kommando mit einem bestimmten Namen in Stata gibt, geben Sie which commandname ein. Wenn Stata mit „command not found as either build-in or ado-file“ antwortet, können Sie den Namen verwenden. Das Problem der Fehlerkontrolle Stata kontrolliert die Syntax eines Programms erst, wenn es ausgeführt wird: . program hello2 1. displai "Hello, world" 2. end
Hier wurde displai statt display geschrieben. Stata wird diesen Fehler aber erst bei der Ausführung des Programms erkennen: . hello2 unrecognized command: r(199);
displai
12.2 Vier Programmierwerkzeuge
| 469
Da die einzelnen Befehle bei der Ausführung eines Programms nicht wie bei DoFiles am Bildschirm wiederholt werden, ist es bei längeren Programmen oft schwer, einen falsch eingegebenen Befehl zu finden. Mit dem Befehl set trace on kann man Stata jedoch anweisen, auch die Befehle eines Programms anzuzeigen. Damit lässt sich die Ausführung des Programms Befehl für Befehl verfolgen und so der fehlerhafte Befehl leichter aufspüren. Der Trace produziert bei längeren Programmen allerdings eine enorme Menge an Output. Vergessen Sie daher nie, den Trace wieder auszuschalten, wenn Sie den Fehler in einem Programm gefunden haben: set trace off. Mehr hierzu unter [P] trace oder help trace.
12.2.4 Ado-Files Im vorangegangenen Abschnitt haben wir Programme interaktiv, d.h. durch Eingabe der entsprechenden Befehle im Eingabefenster des Arbeitsspeichers gespeichert. Einer der Nachteile dieses Verfahrens war, dass die so gespeicherten Programme spätestens mit dem Ende der Stata-Sitzung verlorengehen. Ein anderer Nachteil ist, dass es Ihnen kaum gelingen wird, ein längeres Programm ohne jeden Tippfehler einzugeben. Solche Tippfehler werden in der Regel erst bemerkt, wenn das Programm ausgeführt wird. Zur Korrektur des Tippfehlers muss das gesamte Programm erneut geschrieben werden. Beide Nachteile können Sie umgehen, wenn Sie die Definition des Programms in einen Do-File schreiben. Um das Prinzip der Definition von Programmen in Do-Files kennenzulernen, sollten Sie einmal Ihre oben auf Seite 466 erstellte Datei hello.do wie folgt umschreiben: 1: 2: 3: 4:
program hello display "hello, again" end exit
begin hello.do
end hello.do
Dieser Do-File enthält eine neue Variante des Programms hello aus dem vorangegangenen Abschnitt. Die Variante besteht darin, dass unser Programm nun hello, again anzeigen soll. Wichtiger ist aber, dass wir die Definition des Programms nun in einen Do-File geschrieben haben. Die Liste der Befehle zwischen program und end haben wir dabei etwas eingerückt. Dies hilft uns, den Anfang und das Ende der Programmdefinition zu finden, spielt für Stata aber keine Rolle. Nun, da das Program in den Do-File geschrieben ist, müssen wir die Definition des Programms nicht mehr jedes Mal neu schreiben, wenn wir Stata verlassen haben, sondern es reicht, einfach den Do-File auszuführen. Lassen Sie uns das ausprobieren. Bitte speichern Sie den Do-File ab und führen Sie ihn aus. Wenn Sie alle Schritte aus Abschnitt 12.2.3 nachvollzogen haben, werden Sie dadurch eine Fehlermeldung erhalten.
470 | 12 Do-Files für Fortgeschrittene und eigene Programme . do hello . program hello hello already defined r(110);
Stata kennt die Namen der in den Arbeitsspeicher geladenen Programme und lässt nicht zu, dass diese überschrieben werden. Da wir oben das Programm hello interaktiv definiert haben, befindet sich dieses bereits im Arbeitsspeicher. Um eine Fehlermeldung zu vermeiden, müssen Sie diese ältere Version zunächst aus dem Arbeitsspeicher löschen, bevor Sie die neue erstellen können. Am besten geschieht dies direkt im Do-file durch die Zeile capture program drop hello. Durch program drop hello wird das Programm hello aus dem Arbeitsspeicher gelöscht und durch capture (vgl. Abschn. 2.2.3) wird sichergestellt, dass keine Fehlermeldung erfolgt, wenn es gar kein derartiges Programm gibt. Bitte ändern Sie hello.do deshalb in 1: 2: 3: 4: 5:
capture program drop hello program hello display "hello, again" end exit
begin hello.do
end hello.do
Speichern Sie diese Änderungen und versuchen Sie es noch einmal: . do hello
Beachten Sie, dass das Programm hello nicht ausgeführt wurde. Das Programm wurde durch die Befehle im Do-File ja nur in den Arbeitsspeicher gespeichert. Wir können das Programm jetzt aber interaktiv ausführen: . hello hello, again
Natürlich können wir den Aufruf des Programms auch direkt in den Do-File schreiben. Das sieht dann so aus: 1: 2: 3: 4: 5: 6:
begin hello.do capture program drop hello program hello display "hello, again" end hello //